Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/famicom-dumper.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kirichenko <aakirichenko@gmail.com>2018-03-06 18:30:13 +0300
committerAlexander Kirichenko <aakirichenko@gmail.com>2018-03-06 18:30:13 +0300
commit26d5be0c537e71e9e3da9b1f961838dddc7ddebc (patch)
tree6bf6cd49be5cf8bc0f92aeaa5cc31ad7ef909d87
parent499887f2683365e1ac38d3d71acd70297d7dec7b (diff)
parent0a582653b2b6024f47487a25ccefe73c5c3fd3fb (diff)
Merge remote-tracking branch 'ClusterM/master'
Conflicts: board2/BoardOutline.gbr board2/Bottom.gbr board2/BottomMask.gbr board2/BottomSilk.gbr board2/Through.drl board2/Top.gbr board2/TopMask.gbr board2/TopSilk.gbr Conflicted files was just replaced by it's new versions.
-rw-r--r--Makefile2
-rw-r--r--README.md142
-rw-r--r--board/famicom_dumper.drl478
-rw-r--r--board/famicom_dumper_board_outline.gbr112
-rw-r--r--board/famicom_dumper_copper_bottom.gbr3966
-rw-r--r--board/famicom_dumper_copper_top.gbr7166
-rw-r--r--board/famicom_dumper_silkscreen_top.gbr3070
-rw-r--r--board/famicom_dumper_soldermask_bottom.gbr544
-rw-r--r--board/famicom_dumper_soldermask_top.gbr1706
-rw-r--r--bootloader/main.c242
-rw-r--r--bootloader/main.hex132
-rw-r--r--bootloader/mega64.h78
-rw-r--r--bootloader/readme.txt534
-rw-r--r--comm.c284
-rw-r--r--comm.h110
-rw-r--r--defines.h24
-rw-r--r--dumper.c1870
-rw-r--r--famicom-dumper.hex753
-rw-r--r--jtag.c350
-rw-r--r--jtag.h32
-rw-r--r--jtag_commands.h14
-rw-r--r--usart.c106
-rw-r--r--usart.h20
23 files changed, 10890 insertions, 10845 deletions
diff --git a/Makefile b/Makefile
index 0d92c1b..5dcd763 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
#HFUSE = DD
MCU_PROGRAMMER = m64
PROGRAMMER_TYPE ?= avr109
-PROGRAMMER_PORT ?= com14
+PROGRAMMER_PORT ?= com6
PRG = famicom-dumper
OBJ = dumper.o usart.o comm.o jtag.o
diff --git a/README.md b/README.md
index 2898099..d8a1d7b 100644
--- a/README.md
+++ b/README.md
@@ -1,71 +1,71 @@
-# Famicom Dumper/Programmer
-
-
-## Overview
-
-This is simple dumper/programmer for Famicom cartridges.
-
-![Dumper](images/dumper.jpg)
-
-You can use it to:
-* Dump cartridges, so you can play copy of your cartridge on emulator
-* Read/write battery backed saves, so you can continue your saved game on emulator/console
-* Write spetial cartridges like [COOLGIRL](https://github.com/ClusterM/coolgirl-famicom-multicard)
-* Rewrite ultracheap chinese COOLBOY cartridges. Soldering required but it's very simple.
-* Test your cartridges
-* Some reverse engineering
-* Anything else that requires Famicom bus simulation
-
-
-## Schematics and parts list
-
-![Schematics](schematics/famicom_dumper.png)
-
-You need:
-* ATMEGA64
-* FT232RL
-* 60-pin edge socket
-* Printed circuit board, you can order one using files it "board" or "board2" folders.
-* Some capacitors
-* Maybe some leds
-
-That's all!
-
-
-## How to compile firmware
-
-All you need is [WinAVR](http://winavr.sourceforge.net/). Just type "make hex" in command line to compile firmware or bootloader.
-
-
-## How to build it
-
-You need to flash ATMEGA64 microcontroll using any AVR programmer. It's recommended to program bootloader first, so you can flash/update firmware via USB. I'm using bootloader by Martin Thomas, you can use already configured one in bootloader folder. There are fuses for it:
-* LFUSE = E4
-* HFUSE = DC
-* EFUSE = FF
-
-You can program it using command like "**make program PROGRAMMER_TYPE=avrisp2 PROGRAMMER_PORT=usb**" from *bootloader* folder. Don't forget to replace *avrisp2* and *usb* with you programmer type and port.
-
-Connect device to USB and PC will detect it as virtual serial port. First 8 seconds after power up bootloader is active (all leds are on), so you can program main firmware.
-
-You can use command "**make program PROGRAMMER_PORT=COM10**" to program main firmware. Replace *COM10* with port assigned to your dumper (you can use Windows device manager to see it).
-
-Also it's recommended to reprogram FT232 chip using [FT_PROG util](http://www.ftdichip.com/Support/Utilities.htm#FT_PROG) to change device name to "Famicom Dumper/Programmer", so it can be detected automatically by software.
-
-That's all! You can use it now.
-
-
-## How to use it
-
-Now you need PC-side client to use it: https://github.com/ClusterM/famicom-dumper-client
-
-
-## How to rewrite COOLBOY cartridges
-
-There are ultracheap chinese COOLBOY cartridges like "400 in 1" or "198 in 1". You can buy them on eBay or Aliexpress. And yes, there is flash memory, so you can rewrite it.
-
-But you need to unsolder pins /OE and /WE and connect them to TCK and TDO pins on JTAG connector:
-
-![COOLBOY](images/coolboy.jpg)
-
-Don't forget to solder pins back before using cartridge.
+# Famicom Dumper/Programmer
+
+
+## Overview
+
+This is simple dumper/programmer for Famicom cartridges.
+
+![Dumper](images/dumper.jpg)
+
+You can use it to:
+* Dump cartridges, so you can play copy of your cartridge on emulator
+* Read/write battery backed saves, so you can continue your saved game on emulator/console
+* Write spetial cartridges like [COOLGIRL](https://github.com/ClusterM/coolgirl-famicom-multicard)
+* Rewrite ultracheap chinese COOLBOY cartridges. Soldering required but it's very simple.
+* Test your cartridges
+* Some reverse engineering
+* Anything else that requires Famicom bus simulation
+
+
+## Schematics and parts list
+
+![Schematics](schematics/famicom_dumper.png)
+
+You need:
+* ATMEGA64
+* FT232RL
+* 60-pin edge socket
+* Printed circuit board, you can order one using files it "board" or "board2" folders.
+* Some capacitors
+* Maybe some leds
+
+That's all!
+
+
+## How to compile firmware
+
+All you need is [WinAVR](http://winavr.sourceforge.net/). Just type "make hex" in command line to compile firmware or bootloader.
+
+
+## How to build it
+
+You need to flash ATMEGA64 microcontroll using any AVR programmer. It's recommended to program bootloader first, so you can flash/update firmware via USB. I'm using bootloader by Martin Thomas, you can use already configured one in bootloader folder. There are fuses for it:
+* LFUSE = E4
+* HFUSE = DC
+* EFUSE = FF
+
+You can program it using command like "**make program PROGRAMMER_TYPE=avrisp2 PROGRAMMER_PORT=usb**" from *bootloader* folder. Don't forget to replace *avrisp2* and *usb* with you programmer type and port.
+
+Connect device to USB and PC will detect it as virtual serial port. First 8 seconds after power up bootloader is active (all leds are on), so you can program main firmware.
+
+You can use command "**make program PROGRAMMER_PORT=COM10**" to program main firmware. Replace *COM10* with port assigned to your dumper (you can use Windows device manager to see it).
+
+Also it's recommended to reprogram FT232 chip using [FT_PROG util](http://www.ftdichip.com/Support/Utilities.htm#FT_PROG) to change device name to "Famicom Dumper/Programmer", so it can be detected automatically by software.
+
+That's all! You can use it now.
+
+
+## How to use it
+
+Now you need PC-side client to use it: https://github.com/ClusterM/famicom-dumper-client
+
+
+## How to rewrite COOLBOY cartridges
+
+There are ultracheap chinese COOLBOY cartridges like "400 in 1" or "198 in 1". You can buy them on eBay or Aliexpress. And yes, there is flash memory, so you can rewrite it.
+
+But you need to unsolder pins /OE and /WE and connect them to TCK and TDO pins on JTAG connector:
+
+![COOLBOY](images/coolboy.jpg)
+
+Don't forget to solder pins back before using cartridge.
diff --git a/board/famicom_dumper.drl b/board/famicom_dumper.drl
index 5e81c49..0c84fe8 100644
--- a/board/famicom_dumper.drl
+++ b/board/famicom_dumper.drl
@@ -1,239 +1,239 @@
-; Drill file
-; Format: 2.4 (00.0000)
-M48
-INCH
-T01C0.0118
-T02C0.0283
-T03C0.0394
-T04C0.0433
-T05C0.0472
-T06C0.1181
-%
-G05
-G90
-T01
-X000830Y-020440
-X000830Y-018440
-X002830Y-018440
-X004830Y-018440
-X004830Y-020440
-X002830Y-020440
-X010210Y-015270
-X011220Y-015590
-X012220Y-015900
-X013190Y-016220
-X013040Y-017070
-X014200Y-016530
-X015190Y-016860
-X016190Y-017200
-X016500Y-018010
-X017200Y-017490
-X018200Y-017800
-X018150Y-018890
-X020180Y-018100
-X021160Y-018440
-X021460Y-019900
-X023460Y-019900
-X025460Y-019900
-X027460Y-019900
-X029460Y-019900
-X031460Y-019900
-X033460Y-019900
-X035460Y-019900
-X028160Y-017200
-X027160Y-016860
-X026170Y-016530
-X025160Y-016220
-X024190Y-015900
-X023180Y-015590
-X022180Y-015270
-X023170Y-009770
-X022600Y-007960
-X021440Y-007250
-X021120Y-006930
-X020810Y-006620
-X020490Y-006300
-X020180Y-005990
-X019860Y-005670
-X019550Y-005360
-X019230Y-005040
-X019550Y-003470
-X020180Y-002630
-X020490Y-001260
-X019900Y-000330
-X022060Y-001840
-X023460Y-001840
-X024550Y-002480
-X025790Y-002500
-X026420Y-002200
-X027050Y-002200
-X027780Y-001900
-X028410Y-000330
-X029780Y-001900
-X027050Y-004410
-X026420Y-003780
-X025220Y-003850
-X025160Y-004410
-X023960Y-004730
-X023640Y-004410
-X023330Y-004100
-X023010Y-003780
-X022740Y-000330
-X025570Y-000330
-X031460Y-005270
-X033460Y-007270
-X035460Y-007270
-X035460Y-005270
-X037240Y-002500
-X035460Y-001270
-X033460Y-001270
-X028600Y-007960
-X026600Y-007960
-X024600Y-007960
-X028780Y-010270
-X029620Y-011170
-X036800Y-011250
-X036800Y-009270
-X020170Y-009770
-X019230Y-008920
-X018920Y-009300
-X018600Y-009660
-X018280Y-009280
-X017970Y-009670
-X017660Y-009280
-X016670Y-009280
-X016670Y-009770
-X016670Y-010250
-X016670Y-010720
-X016670Y-011190
-X016670Y-011660
-X016670Y-008510
-X015710Y-008060
-X014700Y-008060
-X013710Y-008070
-X012730Y-008060
-X011690Y-008060
-X010690Y-008060
-X009700Y-008060
-X009170Y-007260
-X008510Y-008080
-X006700Y-007630
-X005030Y-007640
-X003440Y-009210
-X002240Y-010800
-X001460Y-007270
-X001460Y-005270
-X001460Y-003270
-X001460Y-001270
-X003460Y-001270
-X005460Y-001270
-X005460Y-003270
-X003460Y-003270
-X003460Y-005270
-X007120Y-005540
-X008790Y-005530
-X010600Y-005960
-X011190Y-006630
-X012170Y-006330
-X013200Y-005990
-X014170Y-005700
-X014590Y-005350
-X015140Y-005040
-X013600Y-004960
-X013640Y-003060
-X012170Y-003060
-X011300Y-002260
-X011300Y-001590
-X010690Y-003060
-X011220Y-003800
-X009880Y-003620
-X010190Y-006940
-X015030Y-002260
-X015030Y-001590
-X017180Y-002630
-X016860Y-004310
-X014610Y-018010
-T02
-X033880Y-006620
-X033880Y-005640
-T03
-X035920Y-003260
-X035920Y-001530
-T04
-X006070Y-019430
-X007070Y-019430
-X008070Y-019430
-X009070Y-019430
-X009070Y-018430
-X008070Y-018430
-X007070Y-018430
-X006070Y-018430
-X010070Y-018430
-X010070Y-019430
-T05
-X004180Y-014440
-X005180Y-014440
-X006180Y-014440
-X007180Y-014440
-X008180Y-014440
-X009180Y-014440
-X010180Y-014440
-X011180Y-014440
-X012180Y-014440
-X013180Y-014440
-X014180Y-014440
-X015180Y-014440
-X016180Y-014440
-X017180Y-014440
-X018180Y-014440
-X019180Y-014440
-X020180Y-014440
-X021180Y-014440
-X022180Y-014440
-X023180Y-014440
-X024180Y-014440
-X025180Y-014440
-X026180Y-014440
-X027180Y-014440
-X028180Y-014440
-X029180Y-014440
-X030180Y-014440
-X031180Y-014440
-X032180Y-014440
-X033180Y-014440
-X033180Y-012440
-X032180Y-012440
-X031180Y-012440
-X030180Y-012440
-X029180Y-012440
-X028180Y-012440
-X027180Y-012440
-X026180Y-012440
-X025180Y-012440
-X024180Y-012440
-X023180Y-012440
-X022180Y-012440
-X021180Y-012440
-X020180Y-012440
-X019180Y-012440
-X018180Y-012440
-X017180Y-012440
-X016180Y-012440
-X015180Y-012440
-X014180Y-012440
-X013180Y-012440
-X012180Y-012440
-X011180Y-012440
-X010180Y-012440
-X009180Y-012440
-X008180Y-012440
-X007180Y-012440
-X006180Y-012440
-X005180Y-012440
-X004180Y-012440
-T06
-X001260Y-019530
-X001260Y-006300
-X036220Y-006300
-X036220Y-019530
-M30
+; Drill file
+; Format: 2.4 (00.0000)
+M48
+INCH
+T01C0.0118
+T02C0.0283
+T03C0.0394
+T04C0.0433
+T05C0.0472
+T06C0.1181
+%
+G05
+G90
+T01
+X000830Y-020440
+X000830Y-018440
+X002830Y-018440
+X004830Y-018440
+X004830Y-020440
+X002830Y-020440
+X010210Y-015270
+X011220Y-015590
+X012220Y-015900
+X013190Y-016220
+X013040Y-017070
+X014200Y-016530
+X015190Y-016860
+X016190Y-017200
+X016500Y-018010
+X017200Y-017490
+X018200Y-017800
+X018150Y-018890
+X020180Y-018100
+X021160Y-018440
+X021460Y-019900
+X023460Y-019900
+X025460Y-019900
+X027460Y-019900
+X029460Y-019900
+X031460Y-019900
+X033460Y-019900
+X035460Y-019900
+X028160Y-017200
+X027160Y-016860
+X026170Y-016530
+X025160Y-016220
+X024190Y-015900
+X023180Y-015590
+X022180Y-015270
+X023170Y-009770
+X022600Y-007960
+X021440Y-007250
+X021120Y-006930
+X020810Y-006620
+X020490Y-006300
+X020180Y-005990
+X019860Y-005670
+X019550Y-005360
+X019230Y-005040
+X019550Y-003470
+X020180Y-002630
+X020490Y-001260
+X019900Y-000330
+X022060Y-001840
+X023460Y-001840
+X024550Y-002480
+X025790Y-002500
+X026420Y-002200
+X027050Y-002200
+X027780Y-001900
+X028410Y-000330
+X029780Y-001900
+X027050Y-004410
+X026420Y-003780
+X025220Y-003850
+X025160Y-004410
+X023960Y-004730
+X023640Y-004410
+X023330Y-004100
+X023010Y-003780
+X022740Y-000330
+X025570Y-000330
+X031460Y-005270
+X033460Y-007270
+X035460Y-007270
+X035460Y-005270
+X037240Y-002500
+X035460Y-001270
+X033460Y-001270
+X028600Y-007960
+X026600Y-007960
+X024600Y-007960
+X028780Y-010270
+X029620Y-011170
+X036800Y-011250
+X036800Y-009270
+X020170Y-009770
+X019230Y-008920
+X018920Y-009300
+X018600Y-009660
+X018280Y-009280
+X017970Y-009670
+X017660Y-009280
+X016670Y-009280
+X016670Y-009770
+X016670Y-010250
+X016670Y-010720
+X016670Y-011190
+X016670Y-011660
+X016670Y-008510
+X015710Y-008060
+X014700Y-008060
+X013710Y-008070
+X012730Y-008060
+X011690Y-008060
+X010690Y-008060
+X009700Y-008060
+X009170Y-007260
+X008510Y-008080
+X006700Y-007630
+X005030Y-007640
+X003440Y-009210
+X002240Y-010800
+X001460Y-007270
+X001460Y-005270
+X001460Y-003270
+X001460Y-001270
+X003460Y-001270
+X005460Y-001270
+X005460Y-003270
+X003460Y-003270
+X003460Y-005270
+X007120Y-005540
+X008790Y-005530
+X010600Y-005960
+X011190Y-006630
+X012170Y-006330
+X013200Y-005990
+X014170Y-005700
+X014590Y-005350
+X015140Y-005040
+X013600Y-004960
+X013640Y-003060
+X012170Y-003060
+X011300Y-002260
+X011300Y-001590
+X010690Y-003060
+X011220Y-003800
+X009880Y-003620
+X010190Y-006940
+X015030Y-002260
+X015030Y-001590
+X017180Y-002630
+X016860Y-004310
+X014610Y-018010
+T02
+X033880Y-006620
+X033880Y-005640
+T03
+X035920Y-003260
+X035920Y-001530
+T04
+X006070Y-019430
+X007070Y-019430
+X008070Y-019430
+X009070Y-019430
+X009070Y-018430
+X008070Y-018430
+X007070Y-018430
+X006070Y-018430
+X010070Y-018430
+X010070Y-019430
+T05
+X004180Y-014440
+X005180Y-014440
+X006180Y-014440
+X007180Y-014440
+X008180Y-014440
+X009180Y-014440
+X010180Y-014440
+X011180Y-014440
+X012180Y-014440
+X013180Y-014440
+X014180Y-014440
+X015180Y-014440
+X016180Y-014440
+X017180Y-014440
+X018180Y-014440
+X019180Y-014440
+X020180Y-014440
+X021180Y-014440
+X022180Y-014440
+X023180Y-014440
+X024180Y-014440
+X025180Y-014440
+X026180Y-014440
+X027180Y-014440
+X028180Y-014440
+X029180Y-014440
+X030180Y-014440
+X031180Y-014440
+X032180Y-014440
+X033180Y-014440
+X033180Y-012440
+X032180Y-012440
+X031180Y-012440
+X030180Y-012440
+X029180Y-012440
+X028180Y-012440
+X027180Y-012440
+X026180Y-012440
+X025180Y-012440
+X024180Y-012440
+X023180Y-012440
+X022180Y-012440
+X021180Y-012440
+X020180Y-012440
+X019180Y-012440
+X018180Y-012440
+X017180Y-012440
+X016180Y-012440
+X015180Y-012440
+X014180Y-012440
+X013180Y-012440
+X012180Y-012440
+X011180Y-012440
+X010180Y-012440
+X009180Y-012440
+X008180Y-012440
+X007180Y-012440
+X006180Y-012440
+X005180Y-012440
+X004180Y-012440
+T06
+X001260Y-019530
+X001260Y-006300
+X036220Y-006300
+X036220Y-019530
+M30
diff --git a/board/famicom_dumper_board_outline.gbr b/board/famicom_dumper_board_outline.gbr
index 5bb4b06..eafe975 100644
--- a/board/famicom_dumper_board_outline.gbr
+++ b/board/famicom_dumper_board_outline.gbr
@@ -1,56 +1,56 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNCOPPER_TOP*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11R, 1.10X2.10*%
-%ADD12R, 0.30X1.30*%
-%ADD13C, 0.40*%
-%ADD14C, 1.10*%
-%ADD15C, 1.20*%
-%ADD16C, 0.30*%
-%ADD17R, 2.50X2.00*%
-%ADD18R, 2.30X0.40*%
-%ADD19R, 3.10X1.20*%
-%ADD20C, 1.80*%
-%ADD21C, 0.80*%
-%ADD22R, 2.20X1.80*%
-%ADD23R, 1.60X2.00*%
-%ADD24C, 1.00*%
-%ADD25R, 1.50X0.40*%
-%ADD26C, 6.10*%
-%ADD27C, 1.50*%
-%ADD28C, 2.50*%
-%ADD29R, 1.20X2.30*%
-%ADD30R, 2.30X1.20*%
-%ADD31R, 3.20X4.30*%
-%ADD32C, 2.80*%
-%ADD33C, 7.70*%
-%ADD34C, 1.80*%
-%ADD35C, 1.60*%
-%ADD36C, 4.70*%
-%ADD37C, 1.40*%
-%ADD38C, 2.40*%
-%ADD39C, 3.00*%
-%ADD40C, 2.20*%
-%ADD41C, 4.40*%
-%ADD42R, 2.00X1.60*%
-%ADD43C, 0.70*%
-%ADD44C, 0.20*%
-%ADD45C, 3.00*%
-%ADD46C, 1.64*%
-%ADD47C, 2.44*%
-%ADD48C, 1.50*%
-%ADD49R, 1.20X0.80*%
-%ADD50R, 0.80X1.20*%
-%ADD51C, 2.10*%
-%ADD52R, 0.40X1.50*%
-%ADD53C, 0.50*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
+%FSLAX34Y34*%
+%MOMM*%
+%LNCOPPER_TOP*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11R, 1.10X2.10*%
+%ADD12R, 0.30X1.30*%
+%ADD13C, 0.40*%
+%ADD14C, 1.10*%
+%ADD15C, 1.20*%
+%ADD16C, 0.30*%
+%ADD17R, 2.50X2.00*%
+%ADD18R, 2.30X0.40*%
+%ADD19R, 3.10X1.20*%
+%ADD20C, 1.80*%
+%ADD21C, 0.80*%
+%ADD22R, 2.20X1.80*%
+%ADD23R, 1.60X2.00*%
+%ADD24C, 1.00*%
+%ADD25R, 1.50X0.40*%
+%ADD26C, 6.10*%
+%ADD27C, 1.50*%
+%ADD28C, 2.50*%
+%ADD29R, 1.20X2.30*%
+%ADD30R, 2.30X1.20*%
+%ADD31R, 3.20X4.30*%
+%ADD32C, 2.80*%
+%ADD33C, 7.70*%
+%ADD34C, 1.80*%
+%ADD35C, 1.60*%
+%ADD36C, 4.70*%
+%ADD37C, 1.40*%
+%ADD38C, 2.40*%
+%ADD39C, 3.00*%
+%ADD40C, 2.20*%
+%ADD41C, 4.40*%
+%ADD42R, 2.00X1.60*%
+%ADD43C, 0.70*%
+%ADD44C, 0.20*%
+%ADD45C, 3.00*%
+%ADD46C, 1.64*%
+%ADD47C, 2.44*%
+%ADD48C, 1.50*%
+%ADD49R, 1.20X0.80*%
+%ADD50R, 0.80X1.20*%
+%ADD51C, 2.10*%
+%ADD52R, 0.40X1.50*%
+%ADD53C, 0.50*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
diff --git a/board/famicom_dumper_copper_bottom.gbr b/board/famicom_dumper_copper_bottom.gbr
index 7052ab3..a10be24 100644
--- a/board/famicom_dumper_copper_bottom.gbr
+++ b/board/famicom_dumper_copper_bottom.gbr
@@ -1,1983 +1,1983 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNSILK_TOP*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11C, 6.10*%
-%ADD12C, 1.50*%
-%ADD13C, 1.00*%
-%ADD14C, 1.60*%
-%ADD15C, 2.80*%
-%ADD16C, 2.50*%
-%ADD17C, 7.70*%
-%ADD18C, 4.70*%
-%ADD19C, 1.40*%
-%ADD20C, 3.00*%
-%ADD21C, 1.80*%
-%ADD22C, 2.60*%
-%ADD23C, 1.20*%
-%ADD24C, 0.40*%
-%ADD25C, 0.70*%
-%ADD26C, 3.00*%
-%ADD27C, 0.80*%
-%ADD28C, 1.64*%
-%ADD29C, 2.44*%
-%ADD30C, 2.10*%
-%ADD31C, 0.20*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-G36*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-G37*
-%LPC*%
-X842848Y-366888D02*
-G54D11*
-D03*
-X817448Y-366888D02*
-G54D11*
-D03*
-X792048Y-366888D02*
-G54D11*
-D03*
-X766648Y-366888D02*
-G54D11*
-D03*
-X741248Y-366888D02*
-G54D11*
-D03*
-X715848Y-366888D02*
-G54D11*
-D03*
-X690448Y-366888D02*
-G54D11*
-D03*
-X665048Y-366888D02*
-G54D11*
-D03*
-X639648Y-366888D02*
-G54D11*
-D03*
-X614248Y-366888D02*
-G54D11*
-D03*
-X588848Y-366888D02*
-G54D11*
-D03*
-X563448Y-366888D02*
-G54D11*
-D03*
-X538048Y-366888D02*
-G54D11*
-D03*
-X512648Y-366888D02*
-G54D11*
-D03*
-X487248Y-366888D02*
-G54D11*
-D03*
-X461848Y-366888D02*
-G54D11*
-D03*
-X436448Y-366888D02*
-G54D11*
-D03*
-X411048Y-366888D02*
-G54D11*
-D03*
-X385648Y-366888D02*
-G54D11*
-D03*
-X360248Y-366888D02*
-G54D11*
-D03*
-X334848Y-366888D02*
-G54D11*
-D03*
-X309448Y-366888D02*
-G54D11*
-D03*
-X284048Y-366888D02*
-G54D11*
-D03*
-X258648Y-366888D02*
-G54D11*
-D03*
-X233248Y-366888D02*
-G54D11*
-D03*
-X207848Y-366888D02*
-G54D11*
-D03*
-X182448Y-366888D02*
-G54D11*
-D03*
-X157047Y-366888D02*
-G54D11*
-D03*
-X131647Y-366888D02*
-G54D11*
-D03*
-X106247Y-366888D02*
-G54D11*
-D03*
-X842848Y-316089D02*
-G54D11*
-D03*
-X817448Y-316089D02*
-G54D11*
-D03*
-X792048Y-316089D02*
-G54D11*
-D03*
-X766648Y-316089D02*
-G54D11*
-D03*
-X741248Y-316089D02*
-G54D11*
-D03*
-X715848Y-316089D02*
-G54D11*
-D03*
-X690448Y-316089D02*
-G54D11*
-D03*
-X665048Y-316089D02*
-G54D11*
-D03*
-X639648Y-316089D02*
-G54D11*
-D03*
-X614248Y-316089D02*
-G54D11*
-D03*
-X588848Y-316089D02*
-G54D11*
-D03*
-X563448Y-316089D02*
-G54D11*
-D03*
-X538048Y-316089D02*
-G54D11*
-D03*
-X512648Y-316089D02*
-G54D11*
-D03*
-X436448Y-316089D02*
-G54D11*
-D03*
-X411048Y-316089D02*
-G54D11*
-D03*
-X385648Y-316089D02*
-G54D11*
-D03*
-X360248Y-316089D02*
-G54D11*
-D03*
-X334848Y-316089D02*
-G54D11*
-D03*
-X309448Y-316089D02*
-G54D11*
-D03*
-X284048Y-316089D02*
-G54D11*
-D03*
-X258648Y-316089D02*
-G54D11*
-D03*
-X233248Y-316089D02*
-G54D11*
-D03*
-X207848Y-316089D02*
-G54D11*
-D03*
-X182448Y-316089D02*
-G54D11*
-D03*
-X157047Y-316089D02*
-G54D11*
-D03*
-X131647Y-316089D02*
-G54D11*
-D03*
-X106247Y-316089D02*
-G54D11*
-D03*
-X258928Y-176158D02*
-G54D12*
-D03*
-X284328Y-168404D02*
-G54D12*
-D03*
-X309192Y-160765D02*
-G54D12*
-D03*
-X335343Y-152229D02*
-G54D12*
-D03*
-X359916Y-144674D02*
-G54D12*
-D03*
-X370598Y-135809D02*
-G54D12*
-D03*
-X384523Y-128033D02*
-G54D12*
-D03*
-G54D13*
-X258648Y-316089D02*
-X258648Y-176438D01*
-X258928Y-176158D01*
-G54D13*
-X284048Y-316089D02*
-X284048Y-168684D01*
-X284328Y-168404D01*
-G54D13*
-X309448Y-316089D02*
-X308912Y-161045D01*
-X309192Y-160765D01*
-G54D13*
-X334848Y-316089D02*
-X335063Y-152509D01*
-X335343Y-152229D01*
-G54D13*
-X360248Y-316089D02*
-X360248Y-147726D01*
-X359635Y-144955D01*
-X359916Y-144674D01*
-G54D13*
-X385648Y-316089D02*
-X385648Y-151419D01*
-X370317Y-136089D01*
-X370598Y-135809D01*
-G54D14*
-X411048Y-316089D02*
-X411048Y-155118D01*
-X384243Y-128313D01*
-X384523Y-128033D01*
-X232958Y-184439D02*
-G54D12*
-D03*
-G54D15*
-X766648Y-316089D02*
-X766648Y-191648D01*
-X759000Y-184000D01*
-X544523Y-184033D01*
-G54D15*
-X792048Y-316089D02*
-X792048Y-209048D01*
-X759000Y-176000D01*
-X536523Y-176033D01*
-G54D15*
-X817448Y-316089D02*
-X817448Y-226448D01*
-X759000Y-168000D01*
-X528523Y-168033D01*
-G54D15*
-X842848Y-316089D02*
-X842848Y-243848D01*
-X759000Y-160000D01*
-X520523Y-160033D01*
-G54D15*
-X817448Y-366888D02*
-X817448Y-387500D01*
-X863000Y-387500D01*
-X863000Y-256000D01*
-X759000Y-152000D01*
-X512523Y-152033D01*
-G54D13*
-X792048Y-366888D02*
-X792048Y-394800D01*
-X871000Y-394800D01*
-X871000Y-256000D01*
-X759000Y-144000D01*
-X504523Y-144033D01*
-G54D15*
-X766648Y-362888D02*
-X766648Y-401600D01*
-X879000Y-401600D01*
-X879000Y-252000D01*
-X763033Y-136033D01*
-X496523Y-136033D01*
-G54D15*
-X741248Y-366888D02*
-X741247Y-407954D01*
-X887000Y-407954D01*
-X887000Y-252000D01*
-X763033Y-128033D01*
-X488523Y-128033D01*
-G54D13*
-X233248Y-316089D02*
-X232958Y-184439D01*
-X488523Y-128033D02*
-G54D16*
-D03*
-X496523Y-136033D02*
-G54D16*
-D03*
-X504523Y-144033D02*
-G54D16*
-D03*
-X512523Y-152033D02*
-G54D16*
-D03*
-X520523Y-160033D02*
-G54D16*
-D03*
-X528523Y-168033D02*
-G54D16*
-D03*
-X536523Y-176033D02*
-G54D16*
-D03*
-X544523Y-184033D02*
-G54D16*
-D03*
-X461848Y-316088D02*
-G54D11*
-D03*
-X487248Y-316088D02*
-G54D11*
-D03*
-X512380Y-248105D02*
-G54D17*
-D03*
-G54D13*
-X588523Y-248033D02*
-X588848Y-316089D01*
-X588883Y-395935D02*
-G54D12*
-D03*
-X614329Y-403866D02*
-G54D12*
-D03*
-X639119Y-412048D02*
-G54D12*
-D03*
-X664764Y-419771D02*
-G54D12*
-D03*
-X689920Y-428156D02*
-G54D12*
-D03*
-X715320Y-436855D02*
-G54D12*
-D03*
-G54D13*
-X588848Y-366888D02*
-X588883Y-395935D01*
-G54D13*
-X614248Y-366888D02*
-X614329Y-403866D01*
-G54D13*
-X639119Y-412048D02*
-X639120Y-367416D01*
-X639648Y-366888D01*
-G54D13*
-X664764Y-419771D02*
-X664520Y-367416D01*
-X665048Y-366888D01*
-G54D13*
-X689920Y-428156D02*
-X689920Y-367416D01*
-X690448Y-366888D01*
-G54D13*
-X715320Y-436855D02*
-X715320Y-367416D01*
-X715848Y-366888D01*
-X563317Y-387953D02*
-G54D12*
-D03*
-G54D13*
-X563448Y-366888D02*
-X563317Y-387953D01*
-X284883Y-395935D02*
-G54D12*
-D03*
-X310329Y-403866D02*
-G54D12*
-D03*
-X335119Y-412048D02*
-G54D12*
-D03*
-X360764Y-419771D02*
-G54D12*
-D03*
-X385920Y-428156D02*
-G54D12*
-D03*
-X411320Y-436855D02*
-G54D12*
-D03*
-G54D13*
-X284848Y-366888D02*
-X284883Y-395935D01*
-G54D13*
-X310248Y-366888D02*
-X310329Y-403866D01*
-G54D13*
-X335119Y-412048D02*
-X335120Y-367416D01*
-X335648Y-366888D01*
-G54D13*
-X360764Y-419771D02*
-X360520Y-367416D01*
-X361048Y-366888D01*
-G54D13*
-X385920Y-428156D02*
-X385920Y-367416D01*
-X386448Y-366888D01*
-G54D13*
-X411320Y-436855D02*
-X411320Y-367416D01*
-X411848Y-366888D01*
-X259317Y-387953D02*
-G54D12*
-D03*
-G54D13*
-X259448Y-366888D02*
-X259317Y-387953D01*
-X423343Y-216229D02*
-G54D12*
-D03*
-X423343Y-235754D02*
-G54D12*
-D03*
-X423343Y-248229D02*
-G54D12*
-D03*
-X423343Y-260229D02*
-G54D12*
-D03*
-X423343Y-272229D02*
-G54D18*
-D03*
-X423343Y-284229D02*
-G54D18*
-D03*
-X480580Y-236146D02*
-G54D12*
-D03*
-X488372Y-226628D02*
-G54D17*
-D03*
-X423343Y-296229D02*
-G54D12*
-D03*
-G54D19*
-X488372Y-226628D02*
-X488372Y-255200D01*
-X447343Y-296229D01*
-X423343Y-296229D01*
-G54D19*
-X480580Y-236146D02*
-X480580Y-254420D01*
-X450771Y-284229D01*
-X423343Y-284229D01*
-X472372Y-245372D02*
-G54D12*
-D03*
-X464244Y-235786D02*
-G54D12*
-D03*
-X456366Y-245512D02*
-G54D12*
-D03*
-X448439Y-235634D02*
-G54D12*
-D03*
-G54D19*
-X472372Y-245372D02*
-X472372Y-254628D01*
-X455000Y-272000D01*
-X423572Y-272000D01*
-X423343Y-272229D01*
-G54D19*
-X464244Y-235786D02*
-X464244Y-254756D01*
-X459000Y-260000D01*
-X423572Y-260000D01*
-X423343Y-260229D01*
-G54D19*
-X456366Y-245512D02*
-X456366Y-248000D01*
-X423572Y-248000D01*
-X423343Y-248229D01*
-G54D20*
-X448439Y-235634D02*
-X423572Y-235525D01*
-X423343Y-235754D01*
-G54D13*
-X512380Y-248105D02*
-X512380Y-225380D01*
-X503000Y-216000D01*
-X447572Y-216000D01*
-X423343Y-216229D01*
-X588523Y-248033D02*
-G54D12*
-D03*
-X496523Y-88033D02*
-G54D12*
-D03*
-X584523Y-96033D02*
-G54D12*
-D03*
-G54D13*
-X131647Y-316089D02*
-X131647Y-267353D01*
-X311000Y-88000D01*
-X496490Y-88000D01*
-X496523Y-88033D01*
-X592523Y-104033D02*
-G54D12*
-D03*
-X600523Y-112033D02*
-G54D12*
-D03*
-G54D21*
-X436448Y-316089D02*
-X436448Y-314552D01*
-X436448Y-316089D01*
-X472536Y-280000D01*
-X495000Y-280000D01*
-X519000Y-256000D01*
-X519000Y-216000D01*
-X455000Y-152000D01*
-X455000Y-120000D01*
-X479000Y-96000D01*
-X584490Y-96000D01*
-X584523Y-96033D01*
-G54D15*
-X512648Y-316089D02*
-X512648Y-286352D01*
-X527000Y-272000D01*
-X527000Y-216000D01*
-X463000Y-152000D01*
-X463000Y-120000D01*
-X479000Y-104000D01*
-X592490Y-104000D01*
-X592523Y-104033D01*
-G54D22*
-X538048Y-316089D02*
-X538048Y-219048D01*
-X471000Y-152000D01*
-X471000Y-120000D01*
-X479000Y-112000D01*
-X600490Y-112000D01*
-X600523Y-112033D01*
-X608523Y-120033D02*
-G54D12*
-D03*
-G54D22*
-X563448Y-316089D02*
-X563448Y-236448D01*
-X479000Y-152000D01*
-X479000Y-120000D01*
-X608490Y-120000D01*
-X608523Y-120033D01*
-X436905Y-444162D02*
-G54D12*
-D03*
-G54D13*
-X436905Y-444162D02*
-X436448Y-366888D01*
-X462267Y-452066D02*
-G54D12*
-D03*
-G54D13*
-X462267Y-452066D02*
-X461848Y-366888D01*
-X512531Y-459715D02*
-G54D12*
-D03*
-G54D13*
-X512531Y-459715D02*
-X512648Y-366888D01*
-X537443Y-468361D02*
-G54D12*
-D03*
-G54D13*
-X537443Y-468361D02*
-X538048Y-366888D01*
-X520523Y-32033D02*
-G54D12*
-D03*
-X639000Y-112000D02*
-G54D12*
-D03*
-G54D13*
-X520523Y-32033D02*
-X559033Y-32033D01*
-X639000Y-112000D01*
-X671000Y-56000D02*
-G54D12*
-D03*
-X671000Y-96000D02*
-G54D12*
-D03*
-X687000Y-112000D02*
-G54D12*
-D03*
-X687000Y-56000D02*
-G54D12*
-D03*
-G54D13*
-X671000Y-56000D02*
-X671000Y-96000D01*
-G54D13*
-X687000Y-56000D02*
-X687000Y-112000D01*
-X284958Y-96439D02*
-G54D12*
-D03*
-G54D23*
-X106247Y-316089D02*
-X106247Y-275150D01*
-X284958Y-96439D01*
-G54D23*
-X842848Y-366887D02*
-X842848Y-358887D01*
-X826848Y-342887D01*
-X122999Y-342887D01*
-X107000Y-326888D01*
-X107000Y-316841D01*
-G54D24*
-X487248Y-366888D02*
-X487000Y-480000D01*
-X291141Y-481166D01*
-X291141Y-412199D01*
-X106113Y-412199D01*
-X106113Y-367023D01*
-X106247Y-366888D01*
-G54D24*
-X487000Y-480000D02*
-X891000Y-480000D01*
-X900741Y-470259D01*
-X900730Y-233400D01*
-G36*
-X216900Y-506900D02*
-X216900Y-479900D01*
-X243900Y-479900D01*
-X243900Y-506900D01*
-X216900Y-506900D01*
-G37*
-G36*
-X191500Y-506900D02*
-X191500Y-479900D01*
-X218500Y-479900D01*
-X218500Y-506900D01*
-X191500Y-506900D01*
-G37*
-G36*
-X166100Y-506900D02*
-X166100Y-479900D01*
-X193100Y-479900D01*
-X193100Y-506900D01*
-X166100Y-506900D01*
-G37*
-G36*
-X166100Y-481500D02*
-X166100Y-454500D01*
-X193100Y-454500D01*
-X193100Y-481500D01*
-X166100Y-481500D01*
-G37*
-G36*
-X191500Y-481500D02*
-X191500Y-454500D01*
-X218500Y-454500D01*
-X218500Y-481500D01*
-X191500Y-481500D01*
-G37*
-G36*
-X216900Y-481500D02*
-X216900Y-454500D01*
-X243900Y-454500D01*
-X243900Y-481500D01*
-X216900Y-481500D01*
-G37*
-G36*
-X246300Y-502900D02*
-X246300Y-483900D01*
-X265300Y-483900D01*
-X265300Y-502900D01*
-X246300Y-502900D01*
-G37*
-G36*
-X242300Y-481500D02*
-X242300Y-454500D01*
-X269300Y-454500D01*
-X269300Y-481500D01*
-X242300Y-481500D01*
-G37*
-G36*
-X144700Y-502900D02*
-X144700Y-483900D01*
-X163700Y-483900D01*
-X163700Y-502900D01*
-X144700Y-502900D01*
-G37*
-G36*
-X140700Y-481500D02*
-X140700Y-454500D01*
-X167700Y-454500D01*
-X167700Y-481500D01*
-X140700Y-481500D01*
-G37*
-X461122Y-479902D02*
-G54D25*
-D03*
-G54D24*
-X154200Y-493400D02*
-X154200Y-512000D01*
-X291141Y-512000D01*
-X291141Y-481166D01*
-G54D24*
-X255800Y-493400D02*
-X255720Y-511917D01*
-X251000Y-91883D02*
-G54D25*
-D03*
-G54D24*
-X106247Y-366888D02*
-X72112Y-366888D01*
-X71000Y-368000D01*
-X71000Y-271883D01*
-X251000Y-91883D01*
-X945803Y-63465D02*
-G54D25*
-D03*
-X900741Y-32318D02*
-G54D25*
-D03*
-X849941Y-32318D02*
-G54D25*
-D03*
-X756341Y-48318D02*
-G54D25*
-D03*
-X705541Y-48318D02*
-G54D25*
-D03*
-X138741Y-32318D02*
-G54D25*
-D03*
-X87941Y-32318D02*
-G54D25*
-D03*
-X37141Y-32318D02*
-G54D25*
-D03*
-X37141Y-83118D02*
-G54D25*
-D03*
-X87941Y-83118D02*
-G54D25*
-D03*
-X138741Y-83118D02*
-G54D25*
-D03*
-X37141Y-133918D02*
-G54D25*
-D03*
-X87941Y-133918D02*
-G54D25*
-D03*
-X37141Y-184718D02*
-G54D25*
-D03*
-X934841Y-235518D02*
-G54D25*
-D03*
-X934817Y-285708D02*
-G54D25*
-D03*
-X752386Y-283636D02*
-G54D25*
-D03*
-X730941Y-260918D02*
-G54D25*
-D03*
-X726420Y-202290D02*
-G54D25*
-D03*
-X675620Y-202290D02*
-G54D25*
-D03*
-X624820Y-202290D02*
-G54D25*
-D03*
-X574020Y-202290D02*
-G54D25*
-D03*
-X269220Y-151490D02*
-G54D25*
-D03*
-X345420Y-126090D02*
-G54D25*
-D03*
-X428134Y-109358D02*
-G54D25*
-D03*
-X436362Y-66756D02*
-G54D25*
-D03*
-X512501Y-66756D02*
-G54D25*
-D03*
-X560268Y-46690D02*
-G54D25*
-D03*
-X595808Y-46690D02*
-G54D25*
-D03*
-X623683Y-63066D02*
-G54D25*
-D03*
-X655042Y-63415D02*
-G54D25*
-D03*
-X381670Y-40483D02*
-G54D25*
-D03*
-X287032Y-40483D02*
-G54D25*
-D03*
-X381670Y-57373D02*
-G54D25*
-D03*
-X287032Y-57373D02*
-G54D25*
-D03*
-X271418Y-77700D02*
-G54D25*
-D03*
-X309049Y-77700D02*
-G54D25*
-D03*
-X346331Y-77700D02*
-G54D25*
-D03*
-X180902Y-140736D02*
-G54D25*
-D03*
-X223261Y-140467D02*
-G54D25*
-D03*
-X127783Y-194102D02*
-G54D25*
-D03*
-X170142Y-193834D02*
-G54D25*
-D03*
-X87289Y-234021D02*
-G54D25*
-D03*
-X56856Y-274392D02*
-G54D25*
-D03*
-X799141Y-133918D02*
-G54D25*
-D03*
-X640665Y-97738D02*
-G54D25*
-D03*
-X545141Y-505518D02*
-G54D25*
-D03*
-X595941Y-505518D02*
-G54D25*
-D03*
-X646741Y-505518D02*
-G54D25*
-D03*
-X697541Y-505518D02*
-G54D25*
-D03*
-X748341Y-505518D02*
-G54D25*
-D03*
-X799141Y-505518D02*
-G54D25*
-D03*
-X849941Y-505518D02*
-G54D25*
-D03*
-X900741Y-505518D02*
-G54D25*
-D03*
-X216163Y-205341D02*
-G54D25*
-D03*
-X246430Y-204748D02*
-G54D25*
-D03*
-X271653Y-204748D02*
-G54D25*
-D03*
-X296875Y-204748D02*
-G54D25*
-D03*
-X323285Y-204748D02*
-G54D25*
-D03*
-X348211Y-205044D02*
-G54D25*
-D03*
-X373433Y-204748D02*
-G54D25*
-D03*
-X398952Y-204748D02*
-G54D25*
-D03*
-X331141Y-433518D02*
-G54D25*
-D03*
-X371141Y-457518D02*
-G54D25*
-D03*
-X419141Y-457518D02*
-G54D25*
-D03*
-X849941Y-184718D02*
-G54D25*
-D03*
-X900741Y-184718D02*
-G54D25*
-D03*
-X122741Y-468318D02*
-G54D25*
-D03*
-X71941Y-468318D02*
-G54D25*
-D03*
-X21141Y-468318D02*
-G54D25*
-D03*
-X21141Y-519118D02*
-G54D25*
-D03*
-X71941Y-519118D02*
-G54D25*
-D03*
-X122741Y-519118D02*
-G54D25*
-D03*
-X505541Y-8318D02*
-G54D25*
-D03*
-X577541Y-8318D02*
-G54D25*
-D03*
-X649541Y-8318D02*
-G54D25*
-D03*
-X721541Y-8318D02*
-G54D25*
-D03*
-X32000Y-496000D02*
-G54D26*
-D03*
-X32000Y-160000D02*
-G54D26*
-D03*
-X920000Y-496000D02*
-G54D26*
-D03*
-X920000Y-160000D02*
-G54D26*
-D03*
-G36*
-X128000Y-256000D02*
-X128000Y-288000D01*
-X104000Y-288000D01*
-X104000Y-277398D01*
-X106247Y-275150D01*
-X108850Y-275150D01*
-X128000Y-256000D01*
-G37*
-G54D27*
-X128000Y-256000D02*
-X128000Y-288000D01*
-X104000Y-288000D01*
-X104000Y-277398D01*
-X106247Y-275150D01*
-X108850Y-275150D01*
-X128000Y-256000D01*
-X860630Y-168070D02*
-G54D28*
-D03*
-X860630Y-143170D02*
-G54D29*
-D03*
-X900741Y-133918D02*
-G54D25*
-D03*
-%LPD*%
-X842848Y-366888D02*
-G54D30*
-D03*
-X817448Y-366888D02*
-G54D30*
-D03*
-X792048Y-366888D02*
-G54D30*
-D03*
-X766648Y-366888D02*
-G54D30*
-D03*
-X741248Y-366888D02*
-G54D30*
-D03*
-X715848Y-366888D02*
-G54D30*
-D03*
-X690448Y-366888D02*
-G54D30*
-D03*
-X665048Y-366888D02*
-G54D30*
-D03*
-X639648Y-366888D02*
-G54D30*
-D03*
-X614248Y-366888D02*
-G54D30*
-D03*
-X588848Y-366888D02*
-G54D30*
-D03*
-X563448Y-366888D02*
-G54D30*
-D03*
-X538048Y-366888D02*
-G54D30*
-D03*
-X512648Y-366888D02*
-G54D30*
-D03*
-X487248Y-366888D02*
-G54D30*
-D03*
-X461848Y-366888D02*
-G54D30*
-D03*
-X436448Y-366888D02*
-G54D30*
-D03*
-X411048Y-366888D02*
-G54D30*
-D03*
-X385648Y-366888D02*
-G54D30*
-D03*
-X360248Y-366888D02*
-G54D30*
-D03*
-X334848Y-366888D02*
-G54D30*
-D03*
-X309448Y-366888D02*
-G54D30*
-D03*
-X284048Y-366888D02*
-G54D30*
-D03*
-X258648Y-366888D02*
-G54D30*
-D03*
-X233248Y-366888D02*
-G54D30*
-D03*
-X207848Y-366888D02*
-G54D30*
-D03*
-X182448Y-366888D02*
-G54D30*
-D03*
-X157047Y-366888D02*
-G54D30*
-D03*
-X131647Y-366888D02*
-G54D30*
-D03*
-X106247Y-366888D02*
-G54D30*
-D03*
-X842848Y-316089D02*
-G54D30*
-D03*
-X817448Y-316089D02*
-G54D30*
-D03*
-X792048Y-316089D02*
-G54D30*
-D03*
-X766648Y-316089D02*
-G54D30*
-D03*
-X741248Y-316089D02*
-G54D30*
-D03*
-X715848Y-316089D02*
-G54D30*
-D03*
-X690448Y-316089D02*
-G54D30*
-D03*
-X665048Y-316089D02*
-G54D30*
-D03*
-X639648Y-316089D02*
-G54D30*
-D03*
-X614248Y-316089D02*
-G54D30*
-D03*
-X588848Y-316089D02*
-G54D30*
-D03*
-X563448Y-316089D02*
-G54D30*
-D03*
-X538048Y-316089D02*
-G54D30*
-D03*
-X512648Y-316089D02*
-G54D30*
-D03*
-X436448Y-316089D02*
-G54D30*
-D03*
-X411048Y-316089D02*
-G54D30*
-D03*
-X385648Y-316089D02*
-G54D30*
-D03*
-X360248Y-316089D02*
-G54D30*
-D03*
-X334848Y-316089D02*
-G54D30*
-D03*
-X309448Y-316089D02*
-G54D30*
-D03*
-X284048Y-316089D02*
-G54D30*
-D03*
-X258648Y-316089D02*
-G54D30*
-D03*
-X233248Y-316089D02*
-G54D30*
-D03*
-X207848Y-316089D02*
-G54D30*
-D03*
-X182448Y-316089D02*
-G54D30*
-D03*
-X157047Y-316089D02*
-G54D30*
-D03*
-X131647Y-316089D02*
-G54D30*
-D03*
-X106247Y-316089D02*
-G54D30*
-D03*
-X258928Y-176158D02*
-G54D25*
-D03*
-X284328Y-168404D02*
-G54D25*
-D03*
-X309192Y-160765D02*
-G54D25*
-D03*
-X335343Y-152229D02*
-G54D25*
-D03*
-X359916Y-144674D02*
-G54D25*
-D03*
-X370598Y-135809D02*
-G54D25*
-D03*
-X384523Y-128033D02*
-G54D25*
-D03*
-G54D31*
-X258648Y-316089D02*
-X258648Y-176438D01*
-X258928Y-176158D01*
-G54D31*
-X284048Y-316089D02*
-X284048Y-168684D01*
-X284328Y-168404D01*
-G54D31*
-X309448Y-316089D02*
-X308912Y-161045D01*
-X309192Y-160765D01*
-G54D31*
-X334848Y-316089D02*
-X335063Y-152509D01*
-X335343Y-152229D01*
-G54D31*
-X360248Y-316089D02*
-X360248Y-147726D01*
-X359635Y-144955D01*
-X359916Y-144674D01*
-G54D31*
-X385648Y-316089D02*
-X385648Y-151419D01*
-X370317Y-136089D01*
-X370598Y-135809D01*
-G54D31*
-X411048Y-316089D02*
-X411048Y-155118D01*
-X384243Y-128313D01*
-X384523Y-128033D01*
-X232958Y-184439D02*
-G54D25*
-D03*
-G54D31*
-X766648Y-316089D02*
-X766648Y-191648D01*
-X759000Y-184000D01*
-X544523Y-184033D01*
-G54D31*
-X792048Y-316089D02*
-X792048Y-209048D01*
-X759000Y-176000D01*
-X536523Y-176033D01*
-G54D31*
-X817448Y-316089D02*
-X817448Y-226448D01*
-X759000Y-168000D01*
-X528523Y-168033D01*
-G54D31*
-X842848Y-316089D02*
-X842848Y-243848D01*
-X759000Y-160000D01*
-X520523Y-160033D01*
-G54D31*
-X817448Y-366888D02*
-X817448Y-387500D01*
-X863000Y-387500D01*
-X863000Y-256000D01*
-X759000Y-152000D01*
-X512523Y-152033D01*
-G54D31*
-X792048Y-366888D02*
-X792048Y-394800D01*
-X871000Y-394800D01*
-X871000Y-256000D01*
-X759000Y-144000D01*
-X504523Y-144033D01*
-G54D31*
-X766648Y-362888D02*
-X766648Y-401600D01*
-X879000Y-401600D01*
-X879000Y-252000D01*
-X763033Y-136033D01*
-X496523Y-136033D01*
-G54D31*
-X741248Y-366888D02*
-X741247Y-407954D01*
-X887000Y-407954D01*
-X887000Y-252000D01*
-X763033Y-128033D01*
-X488523Y-128033D01*
-G54D31*
-X233248Y-316089D02*
-X232958Y-184439D01*
-X488523Y-128033D02*
-G54D25*
-D03*
-X496523Y-136033D02*
-G54D25*
-D03*
-X504523Y-144033D02*
-G54D25*
-D03*
-X512523Y-152033D02*
-G54D25*
-D03*
-X520523Y-160033D02*
-G54D25*
-D03*
-X528523Y-168033D02*
-G54D25*
-D03*
-X536523Y-176033D02*
-G54D25*
-D03*
-X544523Y-184033D02*
-G54D25*
-D03*
-X461848Y-316088D02*
-G54D30*
-D03*
-X487248Y-316088D02*
-G54D30*
-D03*
-X512380Y-248105D02*
-G54D25*
-D03*
-G54D31*
-X588523Y-248033D02*
-X588848Y-316089D01*
-X588883Y-395935D02*
-G54D25*
-D03*
-X614329Y-403866D02*
-G54D25*
-D03*
-X639119Y-412048D02*
-G54D25*
-D03*
-X664764Y-419771D02*
-G54D25*
-D03*
-X689920Y-428156D02*
-G54D25*
-D03*
-X715320Y-436855D02*
-G54D25*
-D03*
-G54D31*
-X588848Y-366888D02*
-X588883Y-395935D01*
-G54D31*
-X614248Y-366888D02*
-X614329Y-403866D01*
-G54D31*
-X639119Y-412048D02*
-X639120Y-367416D01*
-X639648Y-366888D01*
-G54D31*
-X664764Y-419771D02*
-X664520Y-367416D01*
-X665048Y-366888D01*
-G54D31*
-X689920Y-428156D02*
-X689920Y-367416D01*
-X690448Y-366888D01*
-G54D31*
-X715320Y-436855D02*
-X715320Y-367416D01*
-X715848Y-366888D01*
-X563317Y-387953D02*
-G54D25*
-D03*
-G54D31*
-X563448Y-366888D02*
-X563317Y-387953D01*
-X284883Y-395935D02*
-G54D25*
-D03*
-X310329Y-403866D02*
-G54D25*
-D03*
-X335119Y-412048D02*
-G54D25*
-D03*
-X360764Y-419771D02*
-G54D25*
-D03*
-X385920Y-428156D02*
-G54D25*
-D03*
-X411320Y-436855D02*
-G54D25*
-D03*
-G54D31*
-X284848Y-366888D02*
-X284883Y-395935D01*
-G54D31*
-X310248Y-366888D02*
-X310329Y-403866D01*
-G54D31*
-X335119Y-412048D02*
-X335120Y-367416D01*
-X335648Y-366888D01*
-G54D31*
-X360764Y-419771D02*
-X360520Y-367416D01*
-X361048Y-366888D01*
-G54D31*
-X385920Y-428156D02*
-X385920Y-367416D01*
-X386448Y-366888D01*
-G54D31*
-X411320Y-436855D02*
-X411320Y-367416D01*
-X411848Y-366888D01*
-X259317Y-387953D02*
-G54D25*
-D03*
-G54D31*
-X259448Y-366888D02*
-X259317Y-387953D01*
-X423343Y-216229D02*
-G54D25*
-D03*
-X423343Y-235754D02*
-G54D25*
-D03*
-X423343Y-248229D02*
-G54D25*
-D03*
-X423343Y-260229D02*
-G54D25*
-D03*
-X423343Y-272229D02*
-G54D25*
-D03*
-X423343Y-284229D02*
-G54D25*
-D03*
-X480580Y-236146D02*
-G54D25*
-D03*
-X488372Y-226628D02*
-G54D25*
-D03*
-X423343Y-296229D02*
-G54D25*
-D03*
-G54D31*
-X488372Y-226628D02*
-X488372Y-255200D01*
-X447343Y-296229D01*
-X423343Y-296229D01*
-G54D31*
-X480580Y-236146D02*
-X480580Y-254420D01*
-X450771Y-284229D01*
-X423343Y-284229D01*
-X472372Y-245372D02*
-G54D25*
-D03*
-X464244Y-235786D02*
-G54D25*
-D03*
-X456366Y-245512D02*
-G54D25*
-D03*
-X448439Y-235634D02*
-G54D25*
-D03*
-G54D31*
-X472372Y-245372D02*
-X472372Y-254628D01*
-X455000Y-272000D01*
-X423572Y-272000D01*
-X423343Y-272229D01*
-G54D31*
-X464244Y-235786D02*
-X464244Y-254756D01*
-X459000Y-260000D01*
-X423572Y-260000D01*
-X423343Y-260229D01*
-G54D31*
-X456366Y-245512D02*
-X456366Y-248000D01*
-X423572Y-248000D01*
-X423343Y-248229D01*
-G54D31*
-X448439Y-235634D02*
-X423572Y-235525D01*
-X423343Y-235754D01*
-G54D31*
-X512380Y-248105D02*
-X512380Y-225380D01*
-X503000Y-216000D01*
-X447572Y-216000D01*
-X423343Y-216229D01*
-X588523Y-248033D02*
-G54D25*
-D03*
-X496523Y-88033D02*
-G54D25*
-D03*
-X584523Y-96033D02*
-G54D25*
-D03*
-G54D31*
-X131647Y-316089D02*
-X131647Y-267353D01*
-X311000Y-88000D01*
-X496490Y-88000D01*
-X496523Y-88033D01*
-X592523Y-104033D02*
-G54D25*
-D03*
-X600523Y-112033D02*
-G54D25*
-D03*
-G54D31*
-X436448Y-316089D02*
-X436448Y-314552D01*
-X436448Y-316089D01*
-X472536Y-280000D01*
-X495000Y-280000D01*
-X519000Y-256000D01*
-X519000Y-216000D01*
-X455000Y-152000D01*
-X455000Y-120000D01*
-X479000Y-96000D01*
-X584490Y-96000D01*
-X584523Y-96033D01*
-G54D31*
-X512648Y-316089D02*
-X512648Y-286352D01*
-X527000Y-272000D01*
-X527000Y-216000D01*
-X463000Y-152000D01*
-X463000Y-120000D01*
-X479000Y-104000D01*
-X592490Y-104000D01*
-X592523Y-104033D01*
-G54D31*
-X538048Y-316089D02*
-X538048Y-219048D01*
-X471000Y-152000D01*
-X471000Y-120000D01*
-X479000Y-112000D01*
-X600490Y-112000D01*
-X600523Y-112033D01*
-X608523Y-120033D02*
-G54D25*
-D03*
-G54D31*
-X563448Y-316089D02*
-X563448Y-236448D01*
-X479000Y-152000D01*
-X479000Y-120000D01*
-X608490Y-120000D01*
-X608523Y-120033D01*
-X436905Y-444162D02*
-G54D25*
-D03*
-G54D31*
-X436905Y-444162D02*
-X436448Y-366888D01*
-X462267Y-452066D02*
-G54D25*
-D03*
-G54D31*
-X462267Y-452066D02*
-X461848Y-366888D01*
-X512531Y-459715D02*
-G54D25*
-D03*
-G54D31*
-X512531Y-459715D02*
-X512648Y-366888D01*
-X537443Y-468361D02*
-G54D25*
-D03*
-G54D31*
-X537443Y-468361D02*
-X538048Y-366888D01*
-X520523Y-32033D02*
-G54D25*
-D03*
-X639000Y-112000D02*
-G54D25*
-D03*
-G54D31*
-X520523Y-32033D02*
-X559033Y-32033D01*
-X639000Y-112000D01*
-X671000Y-56000D02*
-G54D25*
-D03*
-X671000Y-96000D02*
-G54D25*
-D03*
-X687000Y-112000D02*
-G54D25*
-D03*
-X687000Y-56000D02*
-G54D25*
-D03*
-G54D31*
-X671000Y-56000D02*
-X671000Y-96000D01*
-G54D31*
-X687000Y-56000D02*
-X687000Y-112000D01*
-X284958Y-96439D02*
-G54D25*
-D03*
-G54D24*
-X106247Y-316089D02*
-X106247Y-275150D01*
-X284958Y-96439D01*
-G54D24*
-X842848Y-366887D02*
-X842848Y-358887D01*
-X826848Y-342887D01*
-X122999Y-342887D01*
-X107000Y-326888D01*
-X107000Y-316841D01*
-G54D24*
-X487248Y-366888D02*
-X487000Y-480000D01*
-X291141Y-481166D01*
-X291141Y-412199D01*
-X106113Y-412199D01*
-X106113Y-367023D01*
-X106247Y-366888D01*
-G54D24*
-X487000Y-480000D02*
-X891000Y-480000D01*
-X900741Y-470259D01*
-X900730Y-233400D01*
-G36*
-X220900Y-502900D02*
-X220900Y-483900D01*
-X239900Y-483900D01*
-X239900Y-502900D01*
-X220900Y-502900D01*
-G37*
-G36*
-X195500Y-502900D02*
-X195500Y-483900D01*
-X214500Y-483900D01*
-X214500Y-502900D01*
-X195500Y-502900D01*
-G37*
-G36*
-X170100Y-502900D02*
-X170100Y-483900D01*
-X189100Y-483900D01*
-X189100Y-502900D01*
-X170100Y-502900D01*
-G37*
-G36*
-X170100Y-477500D02*
-X170100Y-458500D01*
-X189100Y-458500D01*
-X189100Y-477500D01*
-X170100Y-477500D01*
-G37*
-G36*
-X195500Y-477500D02*
-X195500Y-458500D01*
-X214500Y-458500D01*
-X214500Y-477500D01*
-X195500Y-477500D01*
-G37*
-G36*
-X220900Y-477500D02*
-X220900Y-458500D01*
-X239900Y-458500D01*
-X239900Y-477500D01*
-X220900Y-477500D01*
-G37*
-G36*
-X246300Y-502900D02*
-X246300Y-483900D01*
-X265300Y-483900D01*
-X265300Y-502900D01*
-X246300Y-502900D01*
-G37*
-G36*
-X246300Y-477500D02*
-X246300Y-458500D01*
-X265300Y-458500D01*
-X265300Y-477500D01*
-X246300Y-477500D01*
-G37*
-G36*
-X144700Y-502900D02*
-X144700Y-483900D01*
-X163700Y-483900D01*
-X163700Y-502900D01*
-X144700Y-502900D01*
-G37*
-G36*
-X144700Y-477500D02*
-X144700Y-458500D01*
-X163700Y-458500D01*
-X163700Y-477500D01*
-X144700Y-477500D01*
-G37*
-X461122Y-479902D02*
-G54D25*
-D03*
-G54D24*
-X154200Y-493400D02*
-X154200Y-512000D01*
-X291141Y-512000D01*
-X291141Y-481166D01*
-G54D24*
-X255800Y-493400D02*
-X255720Y-511917D01*
-X251000Y-91883D02*
-G54D25*
-D03*
-G54D24*
-X106247Y-366888D02*
-X72112Y-366888D01*
-X71000Y-368000D01*
-X71000Y-271883D01*
-X251000Y-91883D01*
-X945803Y-63465D02*
-G54D25*
-D03*
-X900741Y-32318D02*
-G54D25*
-D03*
-X849941Y-32318D02*
-G54D25*
-D03*
-X756341Y-48318D02*
-G54D25*
-D03*
-X705541Y-48318D02*
-G54D25*
-D03*
-X138741Y-32318D02*
-G54D25*
-D03*
-X87941Y-32318D02*
-G54D25*
-D03*
-X37141Y-32318D02*
-G54D25*
-D03*
-X37141Y-83118D02*
-G54D25*
-D03*
-X87941Y-83118D02*
-G54D25*
-D03*
-X138741Y-83118D02*
-G54D25*
-D03*
-X37141Y-133918D02*
-G54D25*
-D03*
-X87941Y-133918D02*
-G54D25*
-D03*
-X37141Y-184718D02*
-G54D25*
-D03*
-X934841Y-235518D02*
-G54D25*
-D03*
-X934817Y-285708D02*
-G54D25*
-D03*
-X752386Y-283636D02*
-G54D25*
-D03*
-X730941Y-260918D02*
-G54D25*
-D03*
-X726420Y-202290D02*
-G54D25*
-D03*
-X675620Y-202290D02*
-G54D25*
-D03*
-X624820Y-202290D02*
-G54D25*
-D03*
-X574020Y-202290D02*
-G54D25*
-D03*
-X269220Y-151490D02*
-G54D25*
-D03*
-X345420Y-126090D02*
-G54D25*
-D03*
-X428134Y-109358D02*
-G54D25*
-D03*
-X436362Y-66756D02*
-G54D25*
-D03*
-X512501Y-66756D02*
-G54D25*
-D03*
-X560268Y-46690D02*
-G54D25*
-D03*
-X595808Y-46690D02*
-G54D25*
-D03*
-X623683Y-63066D02*
-G54D25*
-D03*
-X655042Y-63415D02*
-G54D25*
-D03*
-X381670Y-40483D02*
-G54D25*
-D03*
-X287032Y-40483D02*
-G54D25*
-D03*
-X381670Y-57373D02*
-G54D25*
-D03*
-X287032Y-57373D02*
-G54D25*
-D03*
-X271418Y-77700D02*
-G54D25*
-D03*
-X309049Y-77700D02*
-G54D25*
-D03*
-X346331Y-77700D02*
-G54D25*
-D03*
-X180902Y-140736D02*
-G54D25*
-D03*
-X223261Y-140467D02*
-G54D25*
-D03*
-X127783Y-194102D02*
-G54D25*
-D03*
-X170142Y-193834D02*
-G54D25*
-D03*
-X87289Y-234021D02*
-G54D25*
-D03*
-X56856Y-274392D02*
-G54D25*
-D03*
-X799141Y-133918D02*
-G54D25*
-D03*
-X640665Y-97738D02*
-G54D25*
-D03*
-X545141Y-505518D02*
-G54D25*
-D03*
-X595941Y-505518D02*
-G54D25*
-D03*
-X646741Y-505518D02*
-G54D25*
-D03*
-X697541Y-505518D02*
-G54D25*
-D03*
-X748341Y-505518D02*
-G54D25*
-D03*
-X799141Y-505518D02*
-G54D25*
-D03*
-X849941Y-505518D02*
-G54D25*
-D03*
-X900741Y-505518D02*
-G54D25*
-D03*
-X216163Y-205341D02*
-G54D25*
-D03*
-X246430Y-204748D02*
-G54D25*
-D03*
-X271653Y-204748D02*
-G54D25*
-D03*
-X296875Y-204748D02*
-G54D25*
-D03*
-X323285Y-204748D02*
-G54D25*
-D03*
-X348211Y-205044D02*
-G54D25*
-D03*
-X373433Y-204748D02*
-G54D25*
-D03*
-X398952Y-204748D02*
-G54D25*
-D03*
-X331141Y-433518D02*
-G54D25*
-D03*
-X371141Y-457518D02*
-G54D25*
-D03*
-X419141Y-457518D02*
-G54D25*
-D03*
-X849941Y-184718D02*
-G54D25*
-D03*
-X900741Y-184718D02*
-G54D25*
-D03*
-X122741Y-468318D02*
-G54D25*
-D03*
-X71941Y-468318D02*
-G54D25*
-D03*
-X21141Y-468318D02*
-G54D25*
-D03*
-X21141Y-519118D02*
-G54D25*
-D03*
-X71941Y-519118D02*
-G54D25*
-D03*
-X122741Y-519118D02*
-G54D25*
-D03*
-X505541Y-8318D02*
-G54D25*
-D03*
-X577541Y-8318D02*
-G54D25*
-D03*
-X649541Y-8318D02*
-G54D25*
-D03*
-X721541Y-8318D02*
-G54D25*
-D03*
-X860630Y-168070D02*
-G54D28*
-D03*
-X860630Y-143170D02*
-G54D28*
-D03*
-X900741Y-133918D02*
-G54D25*
-D03*
-M02*
+%FSLAX34Y34*%
+%MOMM*%
+%LNSILK_TOP*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11C, 6.10*%
+%ADD12C, 1.50*%
+%ADD13C, 1.00*%
+%ADD14C, 1.60*%
+%ADD15C, 2.80*%
+%ADD16C, 2.50*%
+%ADD17C, 7.70*%
+%ADD18C, 4.70*%
+%ADD19C, 1.40*%
+%ADD20C, 3.00*%
+%ADD21C, 1.80*%
+%ADD22C, 2.60*%
+%ADD23C, 1.20*%
+%ADD24C, 0.40*%
+%ADD25C, 0.70*%
+%ADD26C, 3.00*%
+%ADD27C, 0.80*%
+%ADD28C, 1.64*%
+%ADD29C, 2.44*%
+%ADD30C, 2.10*%
+%ADD31C, 0.20*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+G36*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+G37*
+%LPC*%
+X842848Y-366888D02*
+G54D11*
+D03*
+X817448Y-366888D02*
+G54D11*
+D03*
+X792048Y-366888D02*
+G54D11*
+D03*
+X766648Y-366888D02*
+G54D11*
+D03*
+X741248Y-366888D02*
+G54D11*
+D03*
+X715848Y-366888D02*
+G54D11*
+D03*
+X690448Y-366888D02*
+G54D11*
+D03*
+X665048Y-366888D02*
+G54D11*
+D03*
+X639648Y-366888D02*
+G54D11*
+D03*
+X614248Y-366888D02*
+G54D11*
+D03*
+X588848Y-366888D02*
+G54D11*
+D03*
+X563448Y-366888D02*
+G54D11*
+D03*
+X538048Y-366888D02*
+G54D11*
+D03*
+X512648Y-366888D02*
+G54D11*
+D03*
+X487248Y-366888D02*
+G54D11*
+D03*
+X461848Y-366888D02*
+G54D11*
+D03*
+X436448Y-366888D02*
+G54D11*
+D03*
+X411048Y-366888D02*
+G54D11*
+D03*
+X385648Y-366888D02*
+G54D11*
+D03*
+X360248Y-366888D02*
+G54D11*
+D03*
+X334848Y-366888D02*
+G54D11*
+D03*
+X309448Y-366888D02*
+G54D11*
+D03*
+X284048Y-366888D02*
+G54D11*
+D03*
+X258648Y-366888D02*
+G54D11*
+D03*
+X233248Y-366888D02*
+G54D11*
+D03*
+X207848Y-366888D02*
+G54D11*
+D03*
+X182448Y-366888D02*
+G54D11*
+D03*
+X157047Y-366888D02*
+G54D11*
+D03*
+X131647Y-366888D02*
+G54D11*
+D03*
+X106247Y-366888D02*
+G54D11*
+D03*
+X842848Y-316089D02*
+G54D11*
+D03*
+X817448Y-316089D02*
+G54D11*
+D03*
+X792048Y-316089D02*
+G54D11*
+D03*
+X766648Y-316089D02*
+G54D11*
+D03*
+X741248Y-316089D02*
+G54D11*
+D03*
+X715848Y-316089D02*
+G54D11*
+D03*
+X690448Y-316089D02*
+G54D11*
+D03*
+X665048Y-316089D02*
+G54D11*
+D03*
+X639648Y-316089D02*
+G54D11*
+D03*
+X614248Y-316089D02*
+G54D11*
+D03*
+X588848Y-316089D02*
+G54D11*
+D03*
+X563448Y-316089D02*
+G54D11*
+D03*
+X538048Y-316089D02*
+G54D11*
+D03*
+X512648Y-316089D02*
+G54D11*
+D03*
+X436448Y-316089D02*
+G54D11*
+D03*
+X411048Y-316089D02*
+G54D11*
+D03*
+X385648Y-316089D02*
+G54D11*
+D03*
+X360248Y-316089D02*
+G54D11*
+D03*
+X334848Y-316089D02*
+G54D11*
+D03*
+X309448Y-316089D02*
+G54D11*
+D03*
+X284048Y-316089D02*
+G54D11*
+D03*
+X258648Y-316089D02*
+G54D11*
+D03*
+X233248Y-316089D02*
+G54D11*
+D03*
+X207848Y-316089D02*
+G54D11*
+D03*
+X182448Y-316089D02*
+G54D11*
+D03*
+X157047Y-316089D02*
+G54D11*
+D03*
+X131647Y-316089D02*
+G54D11*
+D03*
+X106247Y-316089D02*
+G54D11*
+D03*
+X258928Y-176158D02*
+G54D12*
+D03*
+X284328Y-168404D02*
+G54D12*
+D03*
+X309192Y-160765D02*
+G54D12*
+D03*
+X335343Y-152229D02*
+G54D12*
+D03*
+X359916Y-144674D02*
+G54D12*
+D03*
+X370598Y-135809D02*
+G54D12*
+D03*
+X384523Y-128033D02*
+G54D12*
+D03*
+G54D13*
+X258648Y-316089D02*
+X258648Y-176438D01*
+X258928Y-176158D01*
+G54D13*
+X284048Y-316089D02*
+X284048Y-168684D01*
+X284328Y-168404D01*
+G54D13*
+X309448Y-316089D02*
+X308912Y-161045D01*
+X309192Y-160765D01*
+G54D13*
+X334848Y-316089D02*
+X335063Y-152509D01*
+X335343Y-152229D01*
+G54D13*
+X360248Y-316089D02*
+X360248Y-147726D01*
+X359635Y-144955D01*
+X359916Y-144674D01*
+G54D13*
+X385648Y-316089D02*
+X385648Y-151419D01*
+X370317Y-136089D01*
+X370598Y-135809D01*
+G54D14*
+X411048Y-316089D02*
+X411048Y-155118D01*
+X384243Y-128313D01*
+X384523Y-128033D01*
+X232958Y-184439D02*
+G54D12*
+D03*
+G54D15*
+X766648Y-316089D02*
+X766648Y-191648D01*
+X759000Y-184000D01*
+X544523Y-184033D01*
+G54D15*
+X792048Y-316089D02*
+X792048Y-209048D01*
+X759000Y-176000D01*
+X536523Y-176033D01*
+G54D15*
+X817448Y-316089D02*
+X817448Y-226448D01*
+X759000Y-168000D01*
+X528523Y-168033D01*
+G54D15*
+X842848Y-316089D02*
+X842848Y-243848D01*
+X759000Y-160000D01*
+X520523Y-160033D01*
+G54D15*
+X817448Y-366888D02*
+X817448Y-387500D01*
+X863000Y-387500D01*
+X863000Y-256000D01*
+X759000Y-152000D01*
+X512523Y-152033D01*
+G54D13*
+X792048Y-366888D02*
+X792048Y-394800D01*
+X871000Y-394800D01*
+X871000Y-256000D01*
+X759000Y-144000D01*
+X504523Y-144033D01*
+G54D15*
+X766648Y-362888D02*
+X766648Y-401600D01*
+X879000Y-401600D01*
+X879000Y-252000D01*
+X763033Y-136033D01*
+X496523Y-136033D01*
+G54D15*
+X741248Y-366888D02*
+X741247Y-407954D01*
+X887000Y-407954D01*
+X887000Y-252000D01*
+X763033Y-128033D01*
+X488523Y-128033D01*
+G54D13*
+X233248Y-316089D02*
+X232958Y-184439D01*
+X488523Y-128033D02*
+G54D16*
+D03*
+X496523Y-136033D02*
+G54D16*
+D03*
+X504523Y-144033D02*
+G54D16*
+D03*
+X512523Y-152033D02*
+G54D16*
+D03*
+X520523Y-160033D02*
+G54D16*
+D03*
+X528523Y-168033D02*
+G54D16*
+D03*
+X536523Y-176033D02*
+G54D16*
+D03*
+X544523Y-184033D02*
+G54D16*
+D03*
+X461848Y-316088D02*
+G54D11*
+D03*
+X487248Y-316088D02*
+G54D11*
+D03*
+X512380Y-248105D02*
+G54D17*
+D03*
+G54D13*
+X588523Y-248033D02*
+X588848Y-316089D01*
+X588883Y-395935D02*
+G54D12*
+D03*
+X614329Y-403866D02*
+G54D12*
+D03*
+X639119Y-412048D02*
+G54D12*
+D03*
+X664764Y-419771D02*
+G54D12*
+D03*
+X689920Y-428156D02*
+G54D12*
+D03*
+X715320Y-436855D02*
+G54D12*
+D03*
+G54D13*
+X588848Y-366888D02*
+X588883Y-395935D01*
+G54D13*
+X614248Y-366888D02*
+X614329Y-403866D01*
+G54D13*
+X639119Y-412048D02*
+X639120Y-367416D01*
+X639648Y-366888D01*
+G54D13*
+X664764Y-419771D02*
+X664520Y-367416D01*
+X665048Y-366888D01*
+G54D13*
+X689920Y-428156D02*
+X689920Y-367416D01*
+X690448Y-366888D01*
+G54D13*
+X715320Y-436855D02*
+X715320Y-367416D01*
+X715848Y-366888D01*
+X563317Y-387953D02*
+G54D12*
+D03*
+G54D13*
+X563448Y-366888D02*
+X563317Y-387953D01*
+X284883Y-395935D02*
+G54D12*
+D03*
+X310329Y-403866D02*
+G54D12*
+D03*
+X335119Y-412048D02*
+G54D12*
+D03*
+X360764Y-419771D02*
+G54D12*
+D03*
+X385920Y-428156D02*
+G54D12*
+D03*
+X411320Y-436855D02*
+G54D12*
+D03*
+G54D13*
+X284848Y-366888D02*
+X284883Y-395935D01*
+G54D13*
+X310248Y-366888D02*
+X310329Y-403866D01*
+G54D13*
+X335119Y-412048D02*
+X335120Y-367416D01*
+X335648Y-366888D01*
+G54D13*
+X360764Y-419771D02*
+X360520Y-367416D01*
+X361048Y-366888D01*
+G54D13*
+X385920Y-428156D02*
+X385920Y-367416D01*
+X386448Y-366888D01*
+G54D13*
+X411320Y-436855D02*
+X411320Y-367416D01*
+X411848Y-366888D01*
+X259317Y-387953D02*
+G54D12*
+D03*
+G54D13*
+X259448Y-366888D02*
+X259317Y-387953D01*
+X423343Y-216229D02*
+G54D12*
+D03*
+X423343Y-235754D02*
+G54D12*
+D03*
+X423343Y-248229D02*
+G54D12*
+D03*
+X423343Y-260229D02*
+G54D12*
+D03*
+X423343Y-272229D02*
+G54D18*
+D03*
+X423343Y-284229D02*
+G54D18*
+D03*
+X480580Y-236146D02*
+G54D12*
+D03*
+X488372Y-226628D02*
+G54D17*
+D03*
+X423343Y-296229D02*
+G54D12*
+D03*
+G54D19*
+X488372Y-226628D02*
+X488372Y-255200D01*
+X447343Y-296229D01*
+X423343Y-296229D01*
+G54D19*
+X480580Y-236146D02*
+X480580Y-254420D01*
+X450771Y-284229D01*
+X423343Y-284229D01*
+X472372Y-245372D02*
+G54D12*
+D03*
+X464244Y-235786D02*
+G54D12*
+D03*
+X456366Y-245512D02*
+G54D12*
+D03*
+X448439Y-235634D02*
+G54D12*
+D03*
+G54D19*
+X472372Y-245372D02*
+X472372Y-254628D01*
+X455000Y-272000D01*
+X423572Y-272000D01*
+X423343Y-272229D01*
+G54D19*
+X464244Y-235786D02*
+X464244Y-254756D01*
+X459000Y-260000D01*
+X423572Y-260000D01*
+X423343Y-260229D01*
+G54D19*
+X456366Y-245512D02*
+X456366Y-248000D01*
+X423572Y-248000D01*
+X423343Y-248229D01*
+G54D20*
+X448439Y-235634D02*
+X423572Y-235525D01*
+X423343Y-235754D01*
+G54D13*
+X512380Y-248105D02*
+X512380Y-225380D01*
+X503000Y-216000D01*
+X447572Y-216000D01*
+X423343Y-216229D01*
+X588523Y-248033D02*
+G54D12*
+D03*
+X496523Y-88033D02*
+G54D12*
+D03*
+X584523Y-96033D02*
+G54D12*
+D03*
+G54D13*
+X131647Y-316089D02*
+X131647Y-267353D01*
+X311000Y-88000D01*
+X496490Y-88000D01*
+X496523Y-88033D01*
+X592523Y-104033D02*
+G54D12*
+D03*
+X600523Y-112033D02*
+G54D12*
+D03*
+G54D21*
+X436448Y-316089D02*
+X436448Y-314552D01*
+X436448Y-316089D01*
+X472536Y-280000D01*
+X495000Y-280000D01*
+X519000Y-256000D01*
+X519000Y-216000D01*
+X455000Y-152000D01*
+X455000Y-120000D01*
+X479000Y-96000D01*
+X584490Y-96000D01*
+X584523Y-96033D01*
+G54D15*
+X512648Y-316089D02*
+X512648Y-286352D01*
+X527000Y-272000D01*
+X527000Y-216000D01*
+X463000Y-152000D01*
+X463000Y-120000D01*
+X479000Y-104000D01*
+X592490Y-104000D01*
+X592523Y-104033D01*
+G54D22*
+X538048Y-316089D02*
+X538048Y-219048D01*
+X471000Y-152000D01*
+X471000Y-120000D01*
+X479000Y-112000D01*
+X600490Y-112000D01*
+X600523Y-112033D01*
+X608523Y-120033D02*
+G54D12*
+D03*
+G54D22*
+X563448Y-316089D02*
+X563448Y-236448D01*
+X479000Y-152000D01*
+X479000Y-120000D01*
+X608490Y-120000D01*
+X608523Y-120033D01*
+X436905Y-444162D02*
+G54D12*
+D03*
+G54D13*
+X436905Y-444162D02*
+X436448Y-366888D01*
+X462267Y-452066D02*
+G54D12*
+D03*
+G54D13*
+X462267Y-452066D02*
+X461848Y-366888D01*
+X512531Y-459715D02*
+G54D12*
+D03*
+G54D13*
+X512531Y-459715D02*
+X512648Y-366888D01*
+X537443Y-468361D02*
+G54D12*
+D03*
+G54D13*
+X537443Y-468361D02*
+X538048Y-366888D01*
+X520523Y-32033D02*
+G54D12*
+D03*
+X639000Y-112000D02*
+G54D12*
+D03*
+G54D13*
+X520523Y-32033D02*
+X559033Y-32033D01*
+X639000Y-112000D01*
+X671000Y-56000D02*
+G54D12*
+D03*
+X671000Y-96000D02*
+G54D12*
+D03*
+X687000Y-112000D02*
+G54D12*
+D03*
+X687000Y-56000D02*
+G54D12*
+D03*
+G54D13*
+X671000Y-56000D02*
+X671000Y-96000D01*
+G54D13*
+X687000Y-56000D02*
+X687000Y-112000D01*
+X284958Y-96439D02*
+G54D12*
+D03*
+G54D23*
+X106247Y-316089D02*
+X106247Y-275150D01*
+X284958Y-96439D01*
+G54D23*
+X842848Y-366887D02*
+X842848Y-358887D01*
+X826848Y-342887D01*
+X122999Y-342887D01*
+X107000Y-326888D01*
+X107000Y-316841D01*
+G54D24*
+X487248Y-366888D02*
+X487000Y-480000D01*
+X291141Y-481166D01*
+X291141Y-412199D01*
+X106113Y-412199D01*
+X106113Y-367023D01*
+X106247Y-366888D01*
+G54D24*
+X487000Y-480000D02*
+X891000Y-480000D01*
+X900741Y-470259D01*
+X900730Y-233400D01*
+G36*
+X216900Y-506900D02*
+X216900Y-479900D01*
+X243900Y-479900D01*
+X243900Y-506900D01*
+X216900Y-506900D01*
+G37*
+G36*
+X191500Y-506900D02*
+X191500Y-479900D01*
+X218500Y-479900D01*
+X218500Y-506900D01*
+X191500Y-506900D01*
+G37*
+G36*
+X166100Y-506900D02*
+X166100Y-479900D01*
+X193100Y-479900D01*
+X193100Y-506900D01*
+X166100Y-506900D01*
+G37*
+G36*
+X166100Y-481500D02*
+X166100Y-454500D01*
+X193100Y-454500D01*
+X193100Y-481500D01*
+X166100Y-481500D01*
+G37*
+G36*
+X191500Y-481500D02*
+X191500Y-454500D01*
+X218500Y-454500D01*
+X218500Y-481500D01*
+X191500Y-481500D01*
+G37*
+G36*
+X216900Y-481500D02*
+X216900Y-454500D01*
+X243900Y-454500D01*
+X243900Y-481500D01*
+X216900Y-481500D01*
+G37*
+G36*
+X246300Y-502900D02*
+X246300Y-483900D01*
+X265300Y-483900D01*
+X265300Y-502900D01*
+X246300Y-502900D01*
+G37*
+G36*
+X242300Y-481500D02*
+X242300Y-454500D01*
+X269300Y-454500D01*
+X269300Y-481500D01*
+X242300Y-481500D01*
+G37*
+G36*
+X144700Y-502900D02*
+X144700Y-483900D01*
+X163700Y-483900D01*
+X163700Y-502900D01*
+X144700Y-502900D01*
+G37*
+G36*
+X140700Y-481500D02*
+X140700Y-454500D01*
+X167700Y-454500D01*
+X167700Y-481500D01*
+X140700Y-481500D01*
+G37*
+X461122Y-479902D02*
+G54D25*
+D03*
+G54D24*
+X154200Y-493400D02*
+X154200Y-512000D01*
+X291141Y-512000D01*
+X291141Y-481166D01*
+G54D24*
+X255800Y-493400D02*
+X255720Y-511917D01*
+X251000Y-91883D02*
+G54D25*
+D03*
+G54D24*
+X106247Y-366888D02*
+X72112Y-366888D01*
+X71000Y-368000D01*
+X71000Y-271883D01*
+X251000Y-91883D01*
+X945803Y-63465D02*
+G54D25*
+D03*
+X900741Y-32318D02*
+G54D25*
+D03*
+X849941Y-32318D02*
+G54D25*
+D03*
+X756341Y-48318D02*
+G54D25*
+D03*
+X705541Y-48318D02*
+G54D25*
+D03*
+X138741Y-32318D02*
+G54D25*
+D03*
+X87941Y-32318D02*
+G54D25*
+D03*
+X37141Y-32318D02*
+G54D25*
+D03*
+X37141Y-83118D02*
+G54D25*
+D03*
+X87941Y-83118D02*
+G54D25*
+D03*
+X138741Y-83118D02*
+G54D25*
+D03*
+X37141Y-133918D02*
+G54D25*
+D03*
+X87941Y-133918D02*
+G54D25*
+D03*
+X37141Y-184718D02*
+G54D25*
+D03*
+X934841Y-235518D02*
+G54D25*
+D03*
+X934817Y-285708D02*
+G54D25*
+D03*
+X752386Y-283636D02*
+G54D25*
+D03*
+X730941Y-260918D02*
+G54D25*
+D03*
+X726420Y-202290D02*
+G54D25*
+D03*
+X675620Y-202290D02*
+G54D25*
+D03*
+X624820Y-202290D02*
+G54D25*
+D03*
+X574020Y-202290D02*
+G54D25*
+D03*
+X269220Y-151490D02*
+G54D25*
+D03*
+X345420Y-126090D02*
+G54D25*
+D03*
+X428134Y-109358D02*
+G54D25*
+D03*
+X436362Y-66756D02*
+G54D25*
+D03*
+X512501Y-66756D02*
+G54D25*
+D03*
+X560268Y-46690D02*
+G54D25*
+D03*
+X595808Y-46690D02*
+G54D25*
+D03*
+X623683Y-63066D02*
+G54D25*
+D03*
+X655042Y-63415D02*
+G54D25*
+D03*
+X381670Y-40483D02*
+G54D25*
+D03*
+X287032Y-40483D02*
+G54D25*
+D03*
+X381670Y-57373D02*
+G54D25*
+D03*
+X287032Y-57373D02*
+G54D25*
+D03*
+X271418Y-77700D02*
+G54D25*
+D03*
+X309049Y-77700D02*
+G54D25*
+D03*
+X346331Y-77700D02*
+G54D25*
+D03*
+X180902Y-140736D02*
+G54D25*
+D03*
+X223261Y-140467D02*
+G54D25*
+D03*
+X127783Y-194102D02*
+G54D25*
+D03*
+X170142Y-193834D02*
+G54D25*
+D03*
+X87289Y-234021D02*
+G54D25*
+D03*
+X56856Y-274392D02*
+G54D25*
+D03*
+X799141Y-133918D02*
+G54D25*
+D03*
+X640665Y-97738D02*
+G54D25*
+D03*
+X545141Y-505518D02*
+G54D25*
+D03*
+X595941Y-505518D02*
+G54D25*
+D03*
+X646741Y-505518D02*
+G54D25*
+D03*
+X697541Y-505518D02*
+G54D25*
+D03*
+X748341Y-505518D02*
+G54D25*
+D03*
+X799141Y-505518D02*
+G54D25*
+D03*
+X849941Y-505518D02*
+G54D25*
+D03*
+X900741Y-505518D02*
+G54D25*
+D03*
+X216163Y-205341D02*
+G54D25*
+D03*
+X246430Y-204748D02*
+G54D25*
+D03*
+X271653Y-204748D02*
+G54D25*
+D03*
+X296875Y-204748D02*
+G54D25*
+D03*
+X323285Y-204748D02*
+G54D25*
+D03*
+X348211Y-205044D02*
+G54D25*
+D03*
+X373433Y-204748D02*
+G54D25*
+D03*
+X398952Y-204748D02*
+G54D25*
+D03*
+X331141Y-433518D02*
+G54D25*
+D03*
+X371141Y-457518D02*
+G54D25*
+D03*
+X419141Y-457518D02*
+G54D25*
+D03*
+X849941Y-184718D02*
+G54D25*
+D03*
+X900741Y-184718D02*
+G54D25*
+D03*
+X122741Y-468318D02*
+G54D25*
+D03*
+X71941Y-468318D02*
+G54D25*
+D03*
+X21141Y-468318D02*
+G54D25*
+D03*
+X21141Y-519118D02*
+G54D25*
+D03*
+X71941Y-519118D02*
+G54D25*
+D03*
+X122741Y-519118D02*
+G54D25*
+D03*
+X505541Y-8318D02*
+G54D25*
+D03*
+X577541Y-8318D02*
+G54D25*
+D03*
+X649541Y-8318D02*
+G54D25*
+D03*
+X721541Y-8318D02*
+G54D25*
+D03*
+X32000Y-496000D02*
+G54D26*
+D03*
+X32000Y-160000D02*
+G54D26*
+D03*
+X920000Y-496000D02*
+G54D26*
+D03*
+X920000Y-160000D02*
+G54D26*
+D03*
+G36*
+X128000Y-256000D02*
+X128000Y-288000D01*
+X104000Y-288000D01*
+X104000Y-277398D01*
+X106247Y-275150D01*
+X108850Y-275150D01*
+X128000Y-256000D01*
+G37*
+G54D27*
+X128000Y-256000D02*
+X128000Y-288000D01*
+X104000Y-288000D01*
+X104000Y-277398D01*
+X106247Y-275150D01*
+X108850Y-275150D01*
+X128000Y-256000D01*
+X860630Y-168070D02*
+G54D28*
+D03*
+X860630Y-143170D02*
+G54D29*
+D03*
+X900741Y-133918D02*
+G54D25*
+D03*
+%LPD*%
+X842848Y-366888D02*
+G54D30*
+D03*
+X817448Y-366888D02*
+G54D30*
+D03*
+X792048Y-366888D02*
+G54D30*
+D03*
+X766648Y-366888D02*
+G54D30*
+D03*
+X741248Y-366888D02*
+G54D30*
+D03*
+X715848Y-366888D02*
+G54D30*
+D03*
+X690448Y-366888D02*
+G54D30*
+D03*
+X665048Y-366888D02*
+G54D30*
+D03*
+X639648Y-366888D02*
+G54D30*
+D03*
+X614248Y-366888D02*
+G54D30*
+D03*
+X588848Y-366888D02*
+G54D30*
+D03*
+X563448Y-366888D02*
+G54D30*
+D03*
+X538048Y-366888D02*
+G54D30*
+D03*
+X512648Y-366888D02*
+G54D30*
+D03*
+X487248Y-366888D02*
+G54D30*
+D03*
+X461848Y-366888D02*
+G54D30*
+D03*
+X436448Y-366888D02*
+G54D30*
+D03*
+X411048Y-366888D02*
+G54D30*
+D03*
+X385648Y-366888D02*
+G54D30*
+D03*
+X360248Y-366888D02*
+G54D30*
+D03*
+X334848Y-366888D02*
+G54D30*
+D03*
+X309448Y-366888D02*
+G54D30*
+D03*
+X284048Y-366888D02*
+G54D30*
+D03*
+X258648Y-366888D02*
+G54D30*
+D03*
+X233248Y-366888D02*
+G54D30*
+D03*
+X207848Y-366888D02*
+G54D30*
+D03*
+X182448Y-366888D02*
+G54D30*
+D03*
+X157047Y-366888D02*
+G54D30*
+D03*
+X131647Y-366888D02*
+G54D30*
+D03*
+X106247Y-366888D02*
+G54D30*
+D03*
+X842848Y-316089D02*
+G54D30*
+D03*
+X817448Y-316089D02*
+G54D30*
+D03*
+X792048Y-316089D02*
+G54D30*
+D03*
+X766648Y-316089D02*
+G54D30*
+D03*
+X741248Y-316089D02*
+G54D30*
+D03*
+X715848Y-316089D02*
+G54D30*
+D03*
+X690448Y-316089D02*
+G54D30*
+D03*
+X665048Y-316089D02*
+G54D30*
+D03*
+X639648Y-316089D02*
+G54D30*
+D03*
+X614248Y-316089D02*
+G54D30*
+D03*
+X588848Y-316089D02*
+G54D30*
+D03*
+X563448Y-316089D02*
+G54D30*
+D03*
+X538048Y-316089D02*
+G54D30*
+D03*
+X512648Y-316089D02*
+G54D30*
+D03*
+X436448Y-316089D02*
+G54D30*
+D03*
+X411048Y-316089D02*
+G54D30*
+D03*
+X385648Y-316089D02*
+G54D30*
+D03*
+X360248Y-316089D02*
+G54D30*
+D03*
+X334848Y-316089D02*
+G54D30*
+D03*
+X309448Y-316089D02*
+G54D30*
+D03*
+X284048Y-316089D02*
+G54D30*
+D03*
+X258648Y-316089D02*
+G54D30*
+D03*
+X233248Y-316089D02*
+G54D30*
+D03*
+X207848Y-316089D02*
+G54D30*
+D03*
+X182448Y-316089D02*
+G54D30*
+D03*
+X157047Y-316089D02*
+G54D30*
+D03*
+X131647Y-316089D02*
+G54D30*
+D03*
+X106247Y-316089D02*
+G54D30*
+D03*
+X258928Y-176158D02*
+G54D25*
+D03*
+X284328Y-168404D02*
+G54D25*
+D03*
+X309192Y-160765D02*
+G54D25*
+D03*
+X335343Y-152229D02*
+G54D25*
+D03*
+X359916Y-144674D02*
+G54D25*
+D03*
+X370598Y-135809D02*
+G54D25*
+D03*
+X384523Y-128033D02*
+G54D25*
+D03*
+G54D31*
+X258648Y-316089D02*
+X258648Y-176438D01*
+X258928Y-176158D01*
+G54D31*
+X284048Y-316089D02*
+X284048Y-168684D01*
+X284328Y-168404D01*
+G54D31*
+X309448Y-316089D02*
+X308912Y-161045D01*
+X309192Y-160765D01*
+G54D31*
+X334848Y-316089D02*
+X335063Y-152509D01*
+X335343Y-152229D01*
+G54D31*
+X360248Y-316089D02*
+X360248Y-147726D01*
+X359635Y-144955D01*
+X359916Y-144674D01*
+G54D31*
+X385648Y-316089D02*
+X385648Y-151419D01*
+X370317Y-136089D01*
+X370598Y-135809D01*
+G54D31*
+X411048Y-316089D02*
+X411048Y-155118D01*
+X384243Y-128313D01*
+X384523Y-128033D01*
+X232958Y-184439D02*
+G54D25*
+D03*
+G54D31*
+X766648Y-316089D02*
+X766648Y-191648D01*
+X759000Y-184000D01*
+X544523Y-184033D01*
+G54D31*
+X792048Y-316089D02*
+X792048Y-209048D01*
+X759000Y-176000D01*
+X536523Y-176033D01*
+G54D31*
+X817448Y-316089D02*
+X817448Y-226448D01*
+X759000Y-168000D01*
+X528523Y-168033D01*
+G54D31*
+X842848Y-316089D02*
+X842848Y-243848D01*
+X759000Y-160000D01*
+X520523Y-160033D01*
+G54D31*
+X817448Y-366888D02*
+X817448Y-387500D01*
+X863000Y-387500D01*
+X863000Y-256000D01*
+X759000Y-152000D01*
+X512523Y-152033D01*
+G54D31*
+X792048Y-366888D02*
+X792048Y-394800D01*
+X871000Y-394800D01*
+X871000Y-256000D01*
+X759000Y-144000D01*
+X504523Y-144033D01*
+G54D31*
+X766648Y-362888D02*
+X766648Y-401600D01*
+X879000Y-401600D01*
+X879000Y-252000D01*
+X763033Y-136033D01*
+X496523Y-136033D01*
+G54D31*
+X741248Y-366888D02*
+X741247Y-407954D01*
+X887000Y-407954D01*
+X887000Y-252000D01*
+X763033Y-128033D01*
+X488523Y-128033D01*
+G54D31*
+X233248Y-316089D02*
+X232958Y-184439D01*
+X488523Y-128033D02*
+G54D25*
+D03*
+X496523Y-136033D02*
+G54D25*
+D03*
+X504523Y-144033D02*
+G54D25*
+D03*
+X512523Y-152033D02*
+G54D25*
+D03*
+X520523Y-160033D02*
+G54D25*
+D03*
+X528523Y-168033D02*
+G54D25*
+D03*
+X536523Y-176033D02*
+G54D25*
+D03*
+X544523Y-184033D02*
+G54D25*
+D03*
+X461848Y-316088D02*
+G54D30*
+D03*
+X487248Y-316088D02*
+G54D30*
+D03*
+X512380Y-248105D02*
+G54D25*
+D03*
+G54D31*
+X588523Y-248033D02*
+X588848Y-316089D01*
+X588883Y-395935D02*
+G54D25*
+D03*
+X614329Y-403866D02*
+G54D25*
+D03*
+X639119Y-412048D02*
+G54D25*
+D03*
+X664764Y-419771D02*
+G54D25*
+D03*
+X689920Y-428156D02*
+G54D25*
+D03*
+X715320Y-436855D02*
+G54D25*
+D03*
+G54D31*
+X588848Y-366888D02*
+X588883Y-395935D01*
+G54D31*
+X614248Y-366888D02*
+X614329Y-403866D01*
+G54D31*
+X639119Y-412048D02*
+X639120Y-367416D01*
+X639648Y-366888D01*
+G54D31*
+X664764Y-419771D02*
+X664520Y-367416D01*
+X665048Y-366888D01*
+G54D31*
+X689920Y-428156D02*
+X689920Y-367416D01*
+X690448Y-366888D01*
+G54D31*
+X715320Y-436855D02*
+X715320Y-367416D01*
+X715848Y-366888D01*
+X563317Y-387953D02*
+G54D25*
+D03*
+G54D31*
+X563448Y-366888D02*
+X563317Y-387953D01*
+X284883Y-395935D02*
+G54D25*
+D03*
+X310329Y-403866D02*
+G54D25*
+D03*
+X335119Y-412048D02*
+G54D25*
+D03*
+X360764Y-419771D02*
+G54D25*
+D03*
+X385920Y-428156D02*
+G54D25*
+D03*
+X411320Y-436855D02*
+G54D25*
+D03*
+G54D31*
+X284848Y-366888D02*
+X284883Y-395935D01*
+G54D31*
+X310248Y-366888D02*
+X310329Y-403866D01*
+G54D31*
+X335119Y-412048D02*
+X335120Y-367416D01*
+X335648Y-366888D01*
+G54D31*
+X360764Y-419771D02*
+X360520Y-367416D01*
+X361048Y-366888D01*
+G54D31*
+X385920Y-428156D02*
+X385920Y-367416D01*
+X386448Y-366888D01*
+G54D31*
+X411320Y-436855D02*
+X411320Y-367416D01*
+X411848Y-366888D01*
+X259317Y-387953D02*
+G54D25*
+D03*
+G54D31*
+X259448Y-366888D02*
+X259317Y-387953D01*
+X423343Y-216229D02*
+G54D25*
+D03*
+X423343Y-235754D02*
+G54D25*
+D03*
+X423343Y-248229D02*
+G54D25*
+D03*
+X423343Y-260229D02*
+G54D25*
+D03*
+X423343Y-272229D02*
+G54D25*
+D03*
+X423343Y-284229D02*
+G54D25*
+D03*
+X480580Y-236146D02*
+G54D25*
+D03*
+X488372Y-226628D02*
+G54D25*
+D03*
+X423343Y-296229D02*
+G54D25*
+D03*
+G54D31*
+X488372Y-226628D02*
+X488372Y-255200D01*
+X447343Y-296229D01*
+X423343Y-296229D01*
+G54D31*
+X480580Y-236146D02*
+X480580Y-254420D01*
+X450771Y-284229D01*
+X423343Y-284229D01*
+X472372Y-245372D02*
+G54D25*
+D03*
+X464244Y-235786D02*
+G54D25*
+D03*
+X456366Y-245512D02*
+G54D25*
+D03*
+X448439Y-235634D02*
+G54D25*
+D03*
+G54D31*
+X472372Y-245372D02*
+X472372Y-254628D01*
+X455000Y-272000D01*
+X423572Y-272000D01*
+X423343Y-272229D01*
+G54D31*
+X464244Y-235786D02*
+X464244Y-254756D01*
+X459000Y-260000D01*
+X423572Y-260000D01*
+X423343Y-260229D01*
+G54D31*
+X456366Y-245512D02*
+X456366Y-248000D01*
+X423572Y-248000D01*
+X423343Y-248229D01*
+G54D31*
+X448439Y-235634D02*
+X423572Y-235525D01*
+X423343Y-235754D01*
+G54D31*
+X512380Y-248105D02*
+X512380Y-225380D01*
+X503000Y-216000D01*
+X447572Y-216000D01*
+X423343Y-216229D01*
+X588523Y-248033D02*
+G54D25*
+D03*
+X496523Y-88033D02*
+G54D25*
+D03*
+X584523Y-96033D02*
+G54D25*
+D03*
+G54D31*
+X131647Y-316089D02*
+X131647Y-267353D01*
+X311000Y-88000D01*
+X496490Y-88000D01*
+X496523Y-88033D01*
+X592523Y-104033D02*
+G54D25*
+D03*
+X600523Y-112033D02*
+G54D25*
+D03*
+G54D31*
+X436448Y-316089D02*
+X436448Y-314552D01*
+X436448Y-316089D01*
+X472536Y-280000D01*
+X495000Y-280000D01*
+X519000Y-256000D01*
+X519000Y-216000D01*
+X455000Y-152000D01*
+X455000Y-120000D01*
+X479000Y-96000D01*
+X584490Y-96000D01*
+X584523Y-96033D01*
+G54D31*
+X512648Y-316089D02*
+X512648Y-286352D01*
+X527000Y-272000D01*
+X527000Y-216000D01*
+X463000Y-152000D01*
+X463000Y-120000D01*
+X479000Y-104000D01*
+X592490Y-104000D01*
+X592523Y-104033D01*
+G54D31*
+X538048Y-316089D02*
+X538048Y-219048D01*
+X471000Y-152000D01*
+X471000Y-120000D01*
+X479000Y-112000D01*
+X600490Y-112000D01*
+X600523Y-112033D01*
+X608523Y-120033D02*
+G54D25*
+D03*
+G54D31*
+X563448Y-316089D02*
+X563448Y-236448D01*
+X479000Y-152000D01*
+X479000Y-120000D01*
+X608490Y-120000D01*
+X608523Y-120033D01*
+X436905Y-444162D02*
+G54D25*
+D03*
+G54D31*
+X436905Y-444162D02*
+X436448Y-366888D01*
+X462267Y-452066D02*
+G54D25*
+D03*
+G54D31*
+X462267Y-452066D02*
+X461848Y-366888D01*
+X512531Y-459715D02*
+G54D25*
+D03*
+G54D31*
+X512531Y-459715D02*
+X512648Y-366888D01*
+X537443Y-468361D02*
+G54D25*
+D03*
+G54D31*
+X537443Y-468361D02*
+X538048Y-366888D01*
+X520523Y-32033D02*
+G54D25*
+D03*
+X639000Y-112000D02*
+G54D25*
+D03*
+G54D31*
+X520523Y-32033D02*
+X559033Y-32033D01*
+X639000Y-112000D01*
+X671000Y-56000D02*
+G54D25*
+D03*
+X671000Y-96000D02*
+G54D25*
+D03*
+X687000Y-112000D02*
+G54D25*
+D03*
+X687000Y-56000D02*
+G54D25*
+D03*
+G54D31*
+X671000Y-56000D02*
+X671000Y-96000D01*
+G54D31*
+X687000Y-56000D02*
+X687000Y-112000D01*
+X284958Y-96439D02*
+G54D25*
+D03*
+G54D24*
+X106247Y-316089D02*
+X106247Y-275150D01*
+X284958Y-96439D01*
+G54D24*
+X842848Y-366887D02*
+X842848Y-358887D01*
+X826848Y-342887D01*
+X122999Y-342887D01*
+X107000Y-326888D01*
+X107000Y-316841D01*
+G54D24*
+X487248Y-366888D02*
+X487000Y-480000D01*
+X291141Y-481166D01*
+X291141Y-412199D01*
+X106113Y-412199D01*
+X106113Y-367023D01*
+X106247Y-366888D01*
+G54D24*
+X487000Y-480000D02*
+X891000Y-480000D01*
+X900741Y-470259D01*
+X900730Y-233400D01*
+G36*
+X220900Y-502900D02*
+X220900Y-483900D01*
+X239900Y-483900D01*
+X239900Y-502900D01*
+X220900Y-502900D01*
+G37*
+G36*
+X195500Y-502900D02*
+X195500Y-483900D01*
+X214500Y-483900D01*
+X214500Y-502900D01*
+X195500Y-502900D01*
+G37*
+G36*
+X170100Y-502900D02*
+X170100Y-483900D01*
+X189100Y-483900D01*
+X189100Y-502900D01*
+X170100Y-502900D01*
+G37*
+G36*
+X170100Y-477500D02*
+X170100Y-458500D01*
+X189100Y-458500D01*
+X189100Y-477500D01*
+X170100Y-477500D01*
+G37*
+G36*
+X195500Y-477500D02*
+X195500Y-458500D01*
+X214500Y-458500D01*
+X214500Y-477500D01*
+X195500Y-477500D01*
+G37*
+G36*
+X220900Y-477500D02*
+X220900Y-458500D01*
+X239900Y-458500D01*
+X239900Y-477500D01*
+X220900Y-477500D01*
+G37*
+G36*
+X246300Y-502900D02*
+X246300Y-483900D01*
+X265300Y-483900D01*
+X265300Y-502900D01*
+X246300Y-502900D01*
+G37*
+G36*
+X246300Y-477500D02*
+X246300Y-458500D01*
+X265300Y-458500D01*
+X265300Y-477500D01*
+X246300Y-477500D01*
+G37*
+G36*
+X144700Y-502900D02*
+X144700Y-483900D01*
+X163700Y-483900D01*
+X163700Y-502900D01*
+X144700Y-502900D01*
+G37*
+G36*
+X144700Y-477500D02*
+X144700Y-458500D01*
+X163700Y-458500D01*
+X163700Y-477500D01*
+X144700Y-477500D01*
+G37*
+X461122Y-479902D02*
+G54D25*
+D03*
+G54D24*
+X154200Y-493400D02*
+X154200Y-512000D01*
+X291141Y-512000D01*
+X291141Y-481166D01*
+G54D24*
+X255800Y-493400D02*
+X255720Y-511917D01*
+X251000Y-91883D02*
+G54D25*
+D03*
+G54D24*
+X106247Y-366888D02*
+X72112Y-366888D01*
+X71000Y-368000D01*
+X71000Y-271883D01*
+X251000Y-91883D01*
+X945803Y-63465D02*
+G54D25*
+D03*
+X900741Y-32318D02*
+G54D25*
+D03*
+X849941Y-32318D02*
+G54D25*
+D03*
+X756341Y-48318D02*
+G54D25*
+D03*
+X705541Y-48318D02*
+G54D25*
+D03*
+X138741Y-32318D02*
+G54D25*
+D03*
+X87941Y-32318D02*
+G54D25*
+D03*
+X37141Y-32318D02*
+G54D25*
+D03*
+X37141Y-83118D02*
+G54D25*
+D03*
+X87941Y-83118D02*
+G54D25*
+D03*
+X138741Y-83118D02*
+G54D25*
+D03*
+X37141Y-133918D02*
+G54D25*
+D03*
+X87941Y-133918D02*
+G54D25*
+D03*
+X37141Y-184718D02*
+G54D25*
+D03*
+X934841Y-235518D02*
+G54D25*
+D03*
+X934817Y-285708D02*
+G54D25*
+D03*
+X752386Y-283636D02*
+G54D25*
+D03*
+X730941Y-260918D02*
+G54D25*
+D03*
+X726420Y-202290D02*
+G54D25*
+D03*
+X675620Y-202290D02*
+G54D25*
+D03*
+X624820Y-202290D02*
+G54D25*
+D03*
+X574020Y-202290D02*
+G54D25*
+D03*
+X269220Y-151490D02*
+G54D25*
+D03*
+X345420Y-126090D02*
+G54D25*
+D03*
+X428134Y-109358D02*
+G54D25*
+D03*
+X436362Y-66756D02*
+G54D25*
+D03*
+X512501Y-66756D02*
+G54D25*
+D03*
+X560268Y-46690D02*
+G54D25*
+D03*
+X595808Y-46690D02*
+G54D25*
+D03*
+X623683Y-63066D02*
+G54D25*
+D03*
+X655042Y-63415D02*
+G54D25*
+D03*
+X381670Y-40483D02*
+G54D25*
+D03*
+X287032Y-40483D02*
+G54D25*
+D03*
+X381670Y-57373D02*
+G54D25*
+D03*
+X287032Y-57373D02*
+G54D25*
+D03*
+X271418Y-77700D02*
+G54D25*
+D03*
+X309049Y-77700D02*
+G54D25*
+D03*
+X346331Y-77700D02*
+G54D25*
+D03*
+X180902Y-140736D02*
+G54D25*
+D03*
+X223261Y-140467D02*
+G54D25*
+D03*
+X127783Y-194102D02*
+G54D25*
+D03*
+X170142Y-193834D02*
+G54D25*
+D03*
+X87289Y-234021D02*
+G54D25*
+D03*
+X56856Y-274392D02*
+G54D25*
+D03*
+X799141Y-133918D02*
+G54D25*
+D03*
+X640665Y-97738D02*
+G54D25*
+D03*
+X545141Y-505518D02*
+G54D25*
+D03*
+X595941Y-505518D02*
+G54D25*
+D03*
+X646741Y-505518D02*
+G54D25*
+D03*
+X697541Y-505518D02*
+G54D25*
+D03*
+X748341Y-505518D02*
+G54D25*
+D03*
+X799141Y-505518D02*
+G54D25*
+D03*
+X849941Y-505518D02*
+G54D25*
+D03*
+X900741Y-505518D02*
+G54D25*
+D03*
+X216163Y-205341D02*
+G54D25*
+D03*
+X246430Y-204748D02*
+G54D25*
+D03*
+X271653Y-204748D02*
+G54D25*
+D03*
+X296875Y-204748D02*
+G54D25*
+D03*
+X323285Y-204748D02*
+G54D25*
+D03*
+X348211Y-205044D02*
+G54D25*
+D03*
+X373433Y-204748D02*
+G54D25*
+D03*
+X398952Y-204748D02*
+G54D25*
+D03*
+X331141Y-433518D02*
+G54D25*
+D03*
+X371141Y-457518D02*
+G54D25*
+D03*
+X419141Y-457518D02*
+G54D25*
+D03*
+X849941Y-184718D02*
+G54D25*
+D03*
+X900741Y-184718D02*
+G54D25*
+D03*
+X122741Y-468318D02*
+G54D25*
+D03*
+X71941Y-468318D02*
+G54D25*
+D03*
+X21141Y-468318D02*
+G54D25*
+D03*
+X21141Y-519118D02*
+G54D25*
+D03*
+X71941Y-519118D02*
+G54D25*
+D03*
+X122741Y-519118D02*
+G54D25*
+D03*
+X505541Y-8318D02*
+G54D25*
+D03*
+X577541Y-8318D02*
+G54D25*
+D03*
+X649541Y-8318D02*
+G54D25*
+D03*
+X721541Y-8318D02*
+G54D25*
+D03*
+X860630Y-168070D02*
+G54D28*
+D03*
+X860630Y-143170D02*
+G54D28*
+D03*
+X900741Y-133918D02*
+G54D25*
+D03*
+M02*
diff --git a/board/famicom_dumper_copper_top.gbr b/board/famicom_dumper_copper_top.gbr
index 8b5a04c..f983202 100644
--- a/board/famicom_dumper_copper_top.gbr
+++ b/board/famicom_dumper_copper_top.gbr
@@ -1,3583 +1,3583 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNCOPPER_TOP*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11R, 1.10X2.10*%
-%ADD12R, 0.30X1.30*%
-%ADD13C, 0.40*%
-%ADD14C, 1.10*%
-%ADD15C, 1.20*%
-%ADD16C, 0.30*%
-%ADD17R, 2.50X2.00*%
-%ADD18R, 2.30X0.40*%
-%ADD19R, 3.10X1.20*%
-%ADD20C, 1.80*%
-%ADD21C, 0.80*%
-%ADD22R, 2.20X1.80*%
-%ADD23R, 1.60X2.00*%
-%ADD24C, 1.00*%
-%ADD25R, 1.50X0.40*%
-%ADD26C, 6.10*%
-%ADD27C, 1.50*%
-%ADD28C, 2.50*%
-%ADD29R, 1.20X2.30*%
-%ADD30R, 2.30X1.20*%
-%ADD31R, 3.20X4.30*%
-%ADD32C, 2.80*%
-%ADD33C, 7.70*%
-%ADD34C, 1.80*%
-%ADD35C, 1.60*%
-%ADD36C, 4.70*%
-%ADD37C, 1.40*%
-%ADD38C, 2.40*%
-%ADD39C, 3.00*%
-%ADD40C, 2.20*%
-%ADD41C, 4.40*%
-%ADD42R, 2.00X1.60*%
-%ADD43C, 0.70*%
-%ADD44C, 0.20*%
-%ADD45C, 3.00*%
-%ADD46C, 1.64*%
-%ADD47C, 2.44*%
-%ADD48C, 1.50*%
-%ADD49R, 1.20X0.80*%
-%ADD50R, 0.80X1.20*%
-%ADD51C, 2.10*%
-%ADD52R, 0.40X1.50*%
-%ADD53C, 0.50*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-G36*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-G37*
-%LPC*%
-X842610Y-27751D02*
-G54D11*
-D03*
-X842610Y-105751D02*
-G54D11*
-D03*
-X836110Y-27751D02*
-G54D11*
-D03*
-X836110Y-105751D02*
-G54D11*
-D03*
-X829610Y-27751D02*
-G54D11*
-D03*
-X829610Y-105751D02*
-G54D11*
-D03*
-X823110Y-27751D02*
-G54D12*
-D03*
-X823110Y-105751D02*
-G54D11*
-D03*
-X816610Y-27751D02*
-G54D11*
-D03*
-X816610Y-105751D02*
-G54D11*
-D03*
-X810110Y-27751D02*
-G54D11*
-D03*
-X810110Y-105751D02*
-G54D11*
-D03*
-X803610Y-27751D02*
-G54D12*
-D03*
-X803610Y-105751D02*
-G54D11*
-D03*
-X797110Y-27751D02*
-G54D11*
-D03*
-X797110Y-105751D02*
-G54D11*
-D03*
-X790610Y-27751D02*
-G54D11*
-D03*
-X790610Y-105751D02*
-G54D11*
-D03*
-X784110Y-27751D02*
-G54D11*
-D03*
-X784110Y-105751D02*
-G54D11*
-D03*
-X777610Y-27751D02*
-G54D12*
-D03*
-X777610Y-105751D02*
-G54D11*
-D03*
-X771110Y-27751D02*
-G54D12*
-D03*
-X771110Y-105751D02*
-G54D11*
-D03*
-X764610Y-27751D02*
-G54D11*
-D03*
-X764610Y-105751D02*
-G54D11*
-D03*
-X758110Y-27751D02*
-G54D11*
-D03*
-X758110Y-105751D02*
-G54D11*
-D03*
-G54D13*
-X850170Y-12133D02*
-X886170Y-12133D01*
-G54D14*
-X829610Y-27751D02*
-X829610Y-11429D01*
-X835972Y-11429D01*
-G54D14*
-X842519Y-29878D02*
-X842519Y-59179D01*
-X886200Y-59179D01*
-G54D14*
-X836117Y-31168D02*
-X836117Y-67179D01*
-X886200Y-67179D01*
-G54D15*
-X886170Y-75133D02*
-X810120Y-75133D01*
-G54D14*
-X777888Y-75227D02*
-X777596Y-104858D01*
-G54D13*
-X854170Y-12133D02*
-X854170Y-2633D01*
-X823068Y-2657D01*
-X823074Y-12132D01*
-X771106Y-12133D01*
-X771061Y-12087D01*
-G54D16*
-X777552Y-26857D02*
-X777552Y-12276D01*
-X777740Y-12087D01*
-G54D16*
-X803611Y-24787D02*
-X803611Y-12087D01*
-G54D16*
-X823084Y-25540D02*
-X823084Y-7948D01*
-G54D15*
-X810120Y-75133D02*
-X733814Y-75174D01*
-G36*
-X727072Y-80244D02*
-X727072Y-66244D01*
-X741072Y-66244D01*
-X741072Y-80244D01*
-X727072Y-80244D01*
-G37*
-G36*
-X731072Y-65844D02*
-X731072Y-59844D01*
-X737072Y-59844D01*
-X737072Y-65844D01*
-X731072Y-65844D01*
-G37*
-G54D13*
-X734170Y-60133D02*
-X734170Y-12133D01*
-X770170Y-12133D01*
-X934500Y-14579D02*
-G54D17*
-D03*
-X934500Y-103579D02*
-G54D17*
-D03*
-X887500Y-14579D02*
-G54D17*
-D03*
-X887500Y-103579D02*
-G54D17*
-D03*
-X886200Y-43179D02*
-G54D18*
-D03*
-X886200Y-51179D02*
-G54D19*
-D03*
-X886200Y-59179D02*
-G54D19*
-D03*
-X886200Y-67179D02*
-G54D19*
-D03*
-X886200Y-75179D02*
-G54D19*
-D03*
-X912323Y-38770D02*
-G54D20*
-D03*
-X912323Y-82770D02*
-G54D20*
-D03*
-G54D13*
-X884964Y-42682D02*
-X884963Y-12031D01*
-X936158Y-12031D01*
-G54D13*
-X560072Y-72531D02*
-X711000Y-72531D01*
-X711000Y-62844D01*
-X734072Y-62844D01*
-G54D15*
-X560670Y-80531D02*
-X733814Y-80531D01*
-X733814Y-75174D01*
-G54D15*
-X560072Y-64531D02*
-X540786Y-64531D01*
-X540565Y-64751D01*
-X540565Y-80301D01*
-X559842Y-80301D01*
-X560072Y-80531D01*
-G54D15*
-X409072Y-96331D02*
-X422669Y-96331D01*
-X438699Y-80301D01*
-X540565Y-80301D01*
-G54D14*
-X810166Y-30192D02*
-X810120Y-75133D01*
-G54D16*
-X771061Y-25540D02*
-X771061Y-12087D01*
-G54D21*
-X934841Y-235518D02*
-X934500Y-14579D01*
-X365572Y-81868D02*
-G54D22*
-D03*
-G54D15*
-X409072Y-88331D02*
-X401636Y-88331D01*
-X390819Y-81898D01*
-X381572Y-81868D01*
-X365572Y-81867D01*
-X466410Y-12140D02*
-G54D23*
-D03*
-G54D24*
-X424372Y-48931D02*
-X238880Y-48931D01*
-X39989Y-247823D01*
-X39989Y-424043D01*
-X283043Y-424043D01*
-X354750Y-495750D01*
-X390800Y-495750D01*
-G54D24*
-X409072Y-64331D02*
-X231700Y-64331D01*
-X47884Y-248146D01*
-X47884Y-417340D01*
-X288340Y-417340D01*
-X351000Y-480000D01*
-X393716Y-479982D01*
-X560072Y-72531D02*
-G54D25*
-D03*
-G54D15*
-G75*
-G01X529411Y-74572D02*
-G03X529411Y-74572I5000J0D01*
-G01*
-X842848Y-366888D02*
-G54D26*
-D03*
-X817448Y-366888D02*
-G54D26*
-D03*
-X792048Y-366888D02*
-G54D26*
-D03*
-X766648Y-366888D02*
-G54D26*
-D03*
-X741248Y-366888D02*
-G54D26*
-D03*
-X715848Y-366888D02*
-G54D26*
-D03*
-X690448Y-366888D02*
-G54D26*
-D03*
-X665048Y-366888D02*
-G54D26*
-D03*
-X639648Y-366888D02*
-G54D26*
-D03*
-X614248Y-366888D02*
-G54D26*
-D03*
-X588848Y-366888D02*
-G54D26*
-D03*
-X563448Y-366888D02*
-G54D26*
-D03*
-X538048Y-366888D02*
-G54D26*
-D03*
-X512648Y-366888D02*
-G54D26*
-D03*
-X487248Y-366888D02*
-G54D26*
-D03*
-X461848Y-366888D02*
-G54D26*
-D03*
-X436448Y-366888D02*
-G54D26*
-D03*
-X411048Y-366888D02*
-G54D26*
-D03*
-X385648Y-366888D02*
-G54D26*
-D03*
-X360248Y-366888D02*
-G54D26*
-D03*
-X334848Y-366888D02*
-G54D26*
-D03*
-X309448Y-366888D02*
-G54D26*
-D03*
-X284048Y-366888D02*
-G54D26*
-D03*
-X258648Y-366888D02*
-G54D26*
-D03*
-X233248Y-366888D02*
-G54D26*
-D03*
-X207848Y-366888D02*
-G54D26*
-D03*
-X182448Y-366888D02*
-G54D26*
-D03*
-X157047Y-366888D02*
-G54D26*
-D03*
-X131647Y-366888D02*
-G54D26*
-D03*
-X106247Y-366888D02*
-G54D26*
-D03*
-X842848Y-316089D02*
-G54D26*
-D03*
-X817448Y-316089D02*
-G54D26*
-D03*
-X792048Y-316089D02*
-G54D26*
-D03*
-X766648Y-316089D02*
-G54D26*
-D03*
-X741248Y-316089D02*
-G54D26*
-D03*
-X715848Y-316089D02*
-G54D26*
-D03*
-X690448Y-316089D02*
-G54D26*
-D03*
-X665048Y-316089D02*
-G54D26*
-D03*
-X639648Y-316089D02*
-G54D26*
-D03*
-X614248Y-316089D02*
-G54D26*
-D03*
-X588848Y-316089D02*
-G54D26*
-D03*
-X563448Y-316089D02*
-G54D26*
-D03*
-X538048Y-316089D02*
-G54D26*
-D03*
-X512648Y-316089D02*
-G54D26*
-D03*
-X436448Y-316089D02*
-G54D26*
-D03*
-X411048Y-316089D02*
-G54D26*
-D03*
-X385648Y-316089D02*
-G54D26*
-D03*
-X360248Y-316089D02*
-G54D26*
-D03*
-X334848Y-316089D02*
-G54D26*
-D03*
-X309448Y-316089D02*
-G54D26*
-D03*
-X284048Y-316089D02*
-G54D26*
-D03*
-X258648Y-316089D02*
-G54D26*
-D03*
-X233248Y-316089D02*
-G54D26*
-D03*
-X207848Y-316089D02*
-G54D26*
-D03*
-X182448Y-316089D02*
-G54D26*
-D03*
-X157047Y-316089D02*
-G54D26*
-D03*
-X131647Y-316089D02*
-G54D26*
-D03*
-X106247Y-316089D02*
-G54D26*
-D03*
-G54D24*
-X409072Y-184331D02*
-X232199Y-184612D01*
-X258928Y-176158D02*
-G54D27*
-D03*
-X284328Y-168404D02*
-G54D27*
-D03*
-X309192Y-160765D02*
-G54D27*
-D03*
-X335343Y-152229D02*
-G54D27*
-D03*
-X359916Y-144674D02*
-G54D27*
-D03*
-X370598Y-135809D02*
-G54D27*
-D03*
-X384523Y-128033D02*
-G54D27*
-D03*
-G54D24*
-X409072Y-176331D02*
-X258928Y-176158D01*
-G54D24*
-X409072Y-128331D02*
-X384821Y-128331D01*
-X384523Y-128033D01*
-G54D24*
-X409072Y-136331D02*
-X371120Y-136331D01*
-X370598Y-135809D01*
-G54D24*
-X409072Y-144331D02*
-X359936Y-144695D01*
-X359916Y-144674D01*
-G54D24*
-X407000Y-152000D02*
-X335343Y-152229D01*
-G54D24*
-X407000Y-160000D02*
-X309957Y-160000D01*
-X309192Y-160765D01*
-G54D24*
-X409072Y-168331D02*
-X285492Y-168331D01*
-X284328Y-168404D01*
-X232958Y-184439D02*
-G54D27*
-D03*
-X488523Y-128033D02*
-G54D28*
-D03*
-X496523Y-136033D02*
-G54D28*
-D03*
-X504523Y-144033D02*
-G54D28*
-D03*
-X512523Y-152033D02*
-G54D28*
-D03*
-X520523Y-160033D02*
-G54D28*
-D03*
-X528523Y-168033D02*
-G54D28*
-D03*
-X536523Y-176033D02*
-G54D28*
-D03*
-X544523Y-184033D02*
-G54D28*
-D03*
-G54D24*
-X409072Y-128331D02*
-X488226Y-128331D01*
-X488523Y-128033D01*
-G54D24*
-X409072Y-136331D02*
-X496226Y-136331D01*
-X496523Y-136033D01*
-G54D24*
-X409072Y-144331D02*
-X504226Y-144331D01*
-X504523Y-144033D01*
-G54D24*
-X409072Y-152331D02*
-X512226Y-152331D01*
-X512523Y-152033D01*
-G54D24*
-X409072Y-160331D02*
-X520226Y-160331D01*
-X520523Y-160033D01*
-G54D24*
-X409072Y-168331D02*
-X528226Y-168331D01*
-X528523Y-168033D01*
-G54D24*
-X409072Y-176331D02*
-X536226Y-176331D01*
-X536523Y-176033D01*
-G54D24*
-X409072Y-184331D02*
-X544226Y-184331D01*
-X544523Y-184033D01*
-X544372Y-48931D02*
-G54D29*
-D03*
-X536372Y-48931D02*
-G54D29*
-D03*
-X528372Y-48931D02*
-G54D29*
-D03*
-X520372Y-48931D02*
-G54D29*
-D03*
-X512372Y-48931D02*
-G54D29*
-D03*
-X504372Y-48931D02*
-G54D29*
-D03*
-X496372Y-48931D02*
-G54D29*
-D03*
-X560072Y-64531D02*
-G54D30*
-D03*
-X560072Y-72531D02*
-G54D25*
-D03*
-X560072Y-80531D02*
-G54D30*
-D03*
-X560072Y-88531D02*
-G54D30*
-D03*
-X560072Y-96531D02*
-G54D30*
-D03*
-X560072Y-104531D02*
-G54D30*
-D03*
-X560072Y-112531D02*
-G54D30*
-D03*
-X488372Y-200331D02*
-G54D29*
-D03*
-X496372Y-200331D02*
-G54D29*
-D03*
-X504372Y-200331D02*
-G54D29*
-D03*
-X512372Y-200331D02*
-G54D29*
-D03*
-X520372Y-200331D02*
-G54D29*
-D03*
-X528372Y-200331D02*
-G54D29*
-D03*
-X536372Y-200331D02*
-G54D29*
-D03*
-X409072Y-120331D02*
-G54D30*
-D03*
-X409072Y-112331D02*
-G54D30*
-D03*
-X409072Y-104331D02*
-G54D25*
-D03*
-X409072Y-96331D02*
-G54D30*
-D03*
-X409072Y-88331D02*
-G54D30*
-D03*
-X409072Y-80331D02*
-G54D30*
-D03*
-X409072Y-72331D02*
-G54D30*
-D03*
-X409072Y-64331D02*
-G54D30*
-D03*
-X409072Y-72331D02*
-G54D30*
-D03*
-X409072Y-80331D02*
-G54D30*
-D03*
-X409072Y-88331D02*
-G54D30*
-D03*
-X409072Y-96331D02*
-G54D30*
-D03*
-X409072Y-104331D02*
-G54D25*
-D03*
-X409072Y-112331D02*
-G54D30*
-D03*
-X488372Y-48931D02*
-G54D29*
-D03*
-X496372Y-48931D02*
-G54D29*
-D03*
-X504372Y-48931D02*
-G54D29*
-D03*
-X512372Y-48931D02*
-G54D29*
-D03*
-X520372Y-48931D02*
-G54D29*
-D03*
-X528372Y-48931D02*
-G54D29*
-D03*
-X536372Y-48931D02*
-G54D29*
-D03*
-X560072Y-120531D02*
-G54D30*
-D03*
-X560072Y-112531D02*
-G54D30*
-D03*
-X560072Y-104531D02*
-G54D30*
-D03*
-X560072Y-96531D02*
-G54D30*
-D03*
-X560072Y-88531D02*
-G54D30*
-D03*
-X560072Y-80531D02*
-G54D30*
-D03*
-X560072Y-72531D02*
-G54D25*
-D03*
-X544372Y-200331D02*
-G54D29*
-D03*
-X536372Y-200331D02*
-G54D29*
-D03*
-X528372Y-200331D02*
-G54D29*
-D03*
-X520372Y-200331D02*
-G54D29*
-D03*
-X512372Y-200331D02*
-G54D29*
-D03*
-X504372Y-200331D02*
-G54D29*
-D03*
-X496372Y-200331D02*
-G54D29*
-D03*
-X560072Y-128531D02*
-G54D30*
-D03*
-X560072Y-136531D02*
-G54D30*
-D03*
-X560072Y-144531D02*
-G54D30*
-D03*
-X560072Y-152531D02*
-G54D30*
-D03*
-X560072Y-160531D02*
-G54D30*
-D03*
-X560072Y-168531D02*
-G54D30*
-D03*
-X560072Y-176531D02*
-G54D30*
-D03*
-X560072Y-184531D02*
-G54D30*
-D03*
-X560072Y-176531D02*
-G54D30*
-D03*
-X560072Y-168531D02*
-G54D30*
-D03*
-X560072Y-160531D02*
-G54D30*
-D03*
-X560072Y-152531D02*
-G54D25*
-D03*
-X560072Y-144531D02*
-G54D30*
-D03*
-X560072Y-136531D02*
-G54D30*
-D03*
-X480372Y-48931D02*
-G54D29*
-D03*
-X472372Y-48931D02*
-G54D29*
-D03*
-X464372Y-48931D02*
-G54D29*
-D03*
-X456372Y-48931D02*
-G54D29*
-D03*
-X448372Y-48931D02*
-G54D29*
-D03*
-X440372Y-48931D02*
-G54D29*
-D03*
-X432372Y-48931D02*
-G54D29*
-D03*
-X424372Y-48931D02*
-G54D29*
-D03*
-X432372Y-48931D02*
-G54D29*
-D03*
-X440372Y-48931D02*
-G54D29*
-D03*
-X448372Y-48931D02*
-G54D29*
-D03*
-X456372Y-48931D02*
-G54D29*
-D03*
-X464372Y-48931D02*
-G54D29*
-D03*
-X472372Y-48931D02*
-G54D29*
-D03*
-X424372Y-200331D02*
-G54D29*
-D03*
-X432372Y-200331D02*
-G54D29*
-D03*
-X448372Y-200331D02*
-G54D29*
-D03*
-X456372Y-200331D02*
-G54D29*
-D03*
-X464372Y-200331D02*
-G54D29*
-D03*
-X472372Y-200331D02*
-G54D29*
-D03*
-X480372Y-200331D02*
-G54D29*
-D03*
-X480372Y-200331D02*
-G54D29*
-D03*
-X472372Y-200331D02*
-G54D29*
-D03*
-X464372Y-200331D02*
-G54D29*
-D03*
-X456372Y-200331D02*
-G54D29*
-D03*
-X448372Y-200331D02*
-G54D29*
-D03*
-X432372Y-200331D02*
-G54D31*
-D03*
-X409072Y-184331D02*
-G54D30*
-D03*
-X409072Y-176331D02*
-G54D30*
-D03*
-X409072Y-168331D02*
-G54D30*
-D03*
-X409072Y-160331D02*
-G54D30*
-D03*
-X409072Y-152331D02*
-G54D30*
-D03*
-X409072Y-144331D02*
-G54D30*
-D03*
-X409072Y-136331D02*
-G54D30*
-D03*
-X409072Y-128331D02*
-G54D30*
-D03*
-X409072Y-136331D02*
-G54D30*
-D03*
-X409072Y-144331D02*
-G54D30*
-D03*
-X409072Y-152331D02*
-G54D30*
-D03*
-X409072Y-160331D02*
-G54D30*
-D03*
-X409072Y-168331D02*
-G54D30*
-D03*
-X409072Y-176331D02*
-G54D30*
-D03*
-X440372Y-200331D02*
-G54D29*
-D03*
-X461848Y-316088D02*
-G54D26*
-D03*
-X487248Y-316088D02*
-G54D26*
-D03*
-G54D32*
-X440372Y-200331D02*
-X440372Y-261372D01*
-X475000Y-296000D01*
-X611000Y-296000D01*
-X614248Y-299248D01*
-X614248Y-316089D01*
-G54D32*
-X448372Y-200331D02*
-X448372Y-257372D01*
-X479000Y-288000D01*
-X627000Y-288000D01*
-X639000Y-300000D01*
-X639000Y-315441D01*
-X639648Y-316089D01*
-G54D32*
-X456372Y-200331D02*
-X456372Y-253372D01*
-X483000Y-280000D01*
-X647000Y-280000D01*
-X665048Y-298048D01*
-X665048Y-316089D01*
-G54D32*
-X464372Y-200331D02*
-X464372Y-249372D01*
-X487000Y-272000D01*
-X666424Y-272000D01*
-X690452Y-296028D01*
-X690448Y-316089D01*
-G54D32*
-X472372Y-200331D02*
-X472372Y-245372D01*
-X491000Y-264000D01*
-X684112Y-264000D01*
-X715873Y-295761D01*
-X715848Y-316089D01*
-G54D32*
-X480372Y-200331D02*
-X480372Y-241372D01*
-X495000Y-256000D01*
-X701390Y-256000D01*
-X741243Y-295853D01*
-X741248Y-316089D01*
-X512380Y-248105D02*
-G54D33*
-D03*
-G54D24*
-X512372Y-200331D02*
-X512228Y-247954D01*
-X512380Y-248105D01*
-G54D34*
-X520372Y-200331D02*
-X520372Y-233372D01*
-X527000Y-240000D01*
-X791000Y-240000D01*
-X863000Y-312000D01*
-X863000Y-387953D01*
-X563317Y-387953D01*
-G54D34*
-X528372Y-200331D02*
-X528372Y-225372D01*
-X535000Y-232000D01*
-X791000Y-232000D01*
-X871000Y-312000D01*
-X871000Y-395935D01*
-X588883Y-395935D01*
-X588883Y-395935D02*
-G54D27*
-D03*
-X614329Y-403866D02*
-G54D27*
-D03*
-X639119Y-412048D02*
-G54D27*
-D03*
-X664764Y-419771D02*
-G54D27*
-D03*
-X689920Y-428156D02*
-G54D27*
-D03*
-X715320Y-436855D02*
-G54D27*
-D03*
-G54D34*
-X536372Y-200331D02*
-X536372Y-217372D01*
-X543000Y-224000D01*
-X791000Y-224000D01*
-X879000Y-312000D01*
-X879000Y-403866D01*
-X614329Y-403866D01*
-G54D24*
-X544372Y-200331D02*
-X544372Y-209372D01*
-X551000Y-216000D01*
-X791000Y-216000D01*
-X887000Y-312000D01*
-X887000Y-412048D01*
-X639119Y-412048D01*
-G54D24*
-X560072Y-184531D02*
-X767531Y-184531D01*
-X895000Y-312000D01*
-X895000Y-419771D01*
-X664764Y-419771D01*
-G54D24*
-X560072Y-176531D02*
-X767531Y-176531D01*
-X903000Y-312000D01*
-X903000Y-428156D01*
-X689920Y-428156D01*
-G54D32*
-X560072Y-168531D02*
-X767531Y-168531D01*
-X911000Y-312000D01*
-X911000Y-436855D01*
-X715320Y-436855D01*
-X563317Y-387953D02*
-G54D27*
-D03*
-X284883Y-395935D02*
-G54D27*
-D03*
-X310329Y-403866D02*
-G54D27*
-D03*
-X335119Y-412048D02*
-G54D27*
-D03*
-X360764Y-419771D02*
-G54D27*
-D03*
-X385920Y-428156D02*
-G54D27*
-D03*
-X411320Y-436855D02*
-G54D27*
-D03*
-X259317Y-387953D02*
-G54D27*
-D03*
-G54D35*
-X563317Y-387953D02*
-X259317Y-387953D01*
-G54D24*
-X588883Y-395935D02*
-X284883Y-395935D01*
-G54D24*
-X614329Y-403866D02*
-X310329Y-403866D01*
-G54D24*
-X639119Y-412048D02*
-X335119Y-412048D01*
-G54D24*
-X664764Y-419771D02*
-X360764Y-419771D01*
-G54D24*
-X689920Y-428156D02*
-X385920Y-428156D01*
-G54D24*
-X715320Y-436855D02*
-X411320Y-436855D01*
-X423343Y-216229D02*
-G54D27*
-D03*
-X423343Y-235754D02*
-G54D27*
-D03*
-X423343Y-248229D02*
-G54D27*
-D03*
-X423343Y-260229D02*
-G54D27*
-D03*
-X423343Y-272229D02*
-G54D36*
-D03*
-X423343Y-284229D02*
-G54D36*
-D03*
-X480580Y-236146D02*
-G54D27*
-D03*
-G54D24*
-X488372Y-200331D02*
-X488372Y-226628D01*
-X488372Y-226628D02*
-G54D33*
-D03*
-X423343Y-296229D02*
-G54D27*
-D03*
-G54D34*
-X423343Y-296229D02*
-X207848Y-296229D01*
-X207848Y-316089D01*
-G54D15*
-X423343Y-284229D02*
-X183000Y-284229D01*
-X183000Y-315536D01*
-X182448Y-316089D01*
-X472372Y-245372D02*
-G54D27*
-D03*
-X464244Y-235786D02*
-G54D27*
-D03*
-X456366Y-245512D02*
-G54D27*
-D03*
-X448439Y-235634D02*
-G54D27*
-D03*
-G54D37*
-X423343Y-272229D02*
-X157047Y-272229D01*
-X157047Y-316089D01*
-G54D38*
-X423343Y-260229D02*
-X130771Y-260229D01*
-X88032Y-304196D01*
-X88032Y-383855D01*
-X131632Y-383855D01*
-X131647Y-366888D01*
-G54D39*
-X423343Y-248229D02*
-X135637Y-248229D01*
-X80235Y-303630D01*
-X80235Y-390792D01*
-X157047Y-390792D01*
-X157047Y-366888D01*
-G54D40*
-X423343Y-235754D02*
-X139246Y-235754D01*
-X71982Y-304000D01*
-X71982Y-397653D01*
-X164596Y-397653D01*
-X182448Y-379801D01*
-X182448Y-366888D01*
-G54D41*
-X440192Y-226960D02*
-X140040Y-226960D01*
-X64126Y-304188D01*
-X64126Y-404000D01*
-X183783Y-404000D01*
-X207848Y-379935D01*
-X207848Y-366888D01*
-G54D24*
-X423343Y-216229D02*
-X142771Y-216229D01*
-X55844Y-304188D01*
-X55844Y-410301D01*
-X202638Y-410301D01*
-X233269Y-379670D01*
-X233248Y-366888D01*
-X588523Y-248033D02*
-G54D27*
-D03*
-G54D24*
-X588523Y-248033D02*
-X512380Y-248105D01*
-X496523Y-88033D02*
-G54D27*
-D03*
-X584523Y-96033D02*
-G54D27*
-D03*
-G54D24*
-X560072Y-88531D02*
-X497021Y-88531D01*
-X496523Y-88033D01*
-X592523Y-104033D02*
-G54D27*
-D03*
-X600523Y-112033D02*
-G54D27*
-D03*
-G54D24*
-X560072Y-96531D02*
-X584026Y-96531D01*
-X584523Y-96033D01*
-G54D24*
-X560072Y-104531D02*
-X592026Y-104531D01*
-X592523Y-104033D01*
-G54D24*
-X560072Y-112531D02*
-X600026Y-112531D01*
-X600523Y-112033D01*
-X608523Y-120033D02*
-G54D27*
-D03*
-G54D24*
-X560072Y-120531D02*
-X608026Y-120531D01*
-X608523Y-120033D01*
-X436905Y-444162D02*
-G54D27*
-D03*
-X462267Y-452066D02*
-G54D27*
-D03*
-X512531Y-459715D02*
-G54D27*
-D03*
-X537443Y-468361D02*
-G54D27*
-D03*
-G54D32*
-X436905Y-444162D02*
-X919000Y-444162D01*
-X919000Y-312000D01*
-X767000Y-160000D01*
-X639000Y-160000D01*
-X623531Y-144531D01*
-X560072Y-144531D01*
-G54D15*
-X462267Y-452066D02*
-X927000Y-452066D01*
-X927000Y-312000D01*
-X767000Y-152000D01*
-X647000Y-152000D01*
-X631531Y-136531D01*
-X560072Y-136531D01*
-G54D15*
-X512531Y-459715D02*
-X935000Y-459715D01*
-X935000Y-312000D01*
-X767000Y-144000D01*
-X655000Y-144000D01*
-X639531Y-128531D01*
-X560072Y-128531D01*
-G54D15*
-X537443Y-468361D02*
-X943000Y-468361D01*
-X943000Y-312000D01*
-X767000Y-136000D01*
-X663000Y-136000D01*
-X639000Y-112000D01*
-X520523Y-32033D02*
-G54D27*
-D03*
-G54D24*
-X520372Y-48931D02*
-X520372Y-32184D01*
-X520523Y-32033D01*
-X639000Y-112000D02*
-G54D27*
-D03*
-G54D15*
-X536372Y-48931D02*
-X536372Y-38628D01*
-X543000Y-32000D01*
-X647000Y-32000D01*
-X671000Y-56000D01*
-G54D15*
-X528372Y-48931D02*
-X528372Y-38628D01*
-X543000Y-24000D01*
-X655000Y-24000D01*
-X687000Y-56000D01*
-X671000Y-56000D02*
-G54D27*
-D03*
-X671000Y-96000D02*
-G54D27*
-D03*
-X687000Y-112000D02*
-G54D27*
-D03*
-X687000Y-56000D02*
-G54D27*
-D03*
-G54D24*
-X687000Y-112000D02*
-X687000Y-120000D01*
-X695000Y-128000D01*
-X784110Y-128000D01*
-X784110Y-105751D01*
-G54D24*
-X671000Y-96000D02*
-X718000Y-96000D01*
-X718000Y-120915D01*
-X758098Y-120915D01*
-X758098Y-105763D01*
-X758110Y-105751D01*
-X284958Y-96439D02*
-G54D27*
-D03*
-G36*
-X428500Y-502192D02*
-X449500Y-502192D01*
-X449500Y-523192D01*
-X428500Y-523192D01*
-X428500Y-502192D01*
-G37*
-G36*
-X454250Y-506192D02*
-X467250Y-506192D01*
-X467250Y-519192D01*
-X454250Y-519192D01*
-X454250Y-506192D01*
-G37*
-X624372Y-21239D02*
-G54D42*
-D03*
-X624372Y-35068D02*
-G54D42*
-D03*
-G54D15*
-X409072Y-96331D02*
-X284958Y-96439D01*
-G36*
-X831019Y-4979D02*
-X845019Y-4979D01*
-X845019Y-18979D01*
-X831019Y-18979D01*
-X831019Y-4979D01*
-G37*
-G36*
-X845419Y-8979D02*
-X851419Y-8979D01*
-X851419Y-14979D01*
-X845419Y-14979D01*
-X845419Y-8979D01*
-G37*
-G36*
-X216900Y-506900D02*
-X216900Y-479900D01*
-X243900Y-479900D01*
-X243900Y-506900D01*
-X216900Y-506900D01*
-G37*
-G36*
-X191500Y-506900D02*
-X191500Y-479900D01*
-X218500Y-479900D01*
-X218500Y-506900D01*
-X191500Y-506900D01*
-G37*
-G36*
-X166100Y-506900D02*
-X166100Y-479900D01*
-X193100Y-479900D01*
-X193100Y-506900D01*
-X166100Y-506900D01*
-G37*
-G36*
-X166100Y-481500D02*
-X166100Y-454500D01*
-X193100Y-454500D01*
-X193100Y-481500D01*
-X166100Y-481500D01*
-G37*
-G36*
-X191500Y-481500D02*
-X191500Y-454500D01*
-X218500Y-454500D01*
-X218500Y-481500D01*
-X191500Y-481500D01*
-G37*
-G36*
-X216900Y-481500D02*
-X216900Y-454500D01*
-X243900Y-454500D01*
-X243900Y-481500D01*
-X216900Y-481500D01*
-G37*
-G36*
-X246300Y-502900D02*
-X246300Y-483900D01*
-X265300Y-483900D01*
-X265300Y-502900D01*
-X246300Y-502900D01*
-G37*
-G36*
-X242300Y-481500D02*
-X242300Y-454500D01*
-X269300Y-454500D01*
-X269300Y-481500D01*
-X242300Y-481500D01*
-G37*
-G36*
-X144700Y-502900D02*
-X144700Y-483900D01*
-X163700Y-483900D01*
-X163700Y-502900D01*
-X144700Y-502900D01*
-G37*
-G36*
-X140700Y-481500D02*
-X140700Y-454500D01*
-X167700Y-454500D01*
-X167700Y-481500D01*
-X140700Y-481500D01*
-G37*
-G54D24*
-X404116Y-479982D02*
-X420611Y-479982D01*
-X437796Y-462796D01*
-X480589Y-462796D01*
-X512589Y-494796D01*
-X512750Y-512692D01*
-G54D24*
-X407200Y-495750D02*
-X422058Y-495750D01*
-X439000Y-512692D01*
-X461122Y-479902D02*
-G54D43*
-D03*
-G54D44*
-X460750Y-512692D02*
-X460750Y-480274D01*
-X461122Y-479902D01*
-G54D44*
-X491000Y-512692D02*
-X460750Y-512692D01*
-G54D24*
-X440372Y-48931D02*
-X440372Y-33372D01*
-X439000Y-32000D01*
-X248067Y-32000D01*
-X32071Y-247996D01*
-X32071Y-430671D01*
-X255800Y-430671D01*
-X255800Y-468000D01*
-G54D24*
-X448372Y-48931D02*
-X448372Y-25372D01*
-X447000Y-24000D01*
-X248017Y-24000D01*
-X24154Y-247863D01*
-X24154Y-437026D01*
-X230400Y-437026D01*
-X230400Y-468000D01*
-G54D24*
-X456372Y-48931D02*
-X456372Y-17372D01*
-X455000Y-16000D01*
-X247886Y-16000D01*
-X16003Y-247882D01*
-X16003Y-444000D01*
-X205000Y-444000D01*
-X205000Y-468000D01*
-G54D24*
-X464372Y-48931D02*
-X464372Y-7068D01*
-X248950Y-7068D01*
-X8009Y-248009D01*
-X8009Y-452000D01*
-X154200Y-452000D01*
-X154200Y-468000D01*
-G54D13*
-X409072Y-104331D02*
-X251000Y-104331D01*
-X251000Y-91883D01*
-G36*
-X597082Y-58528D02*
-X597082Y-84528D01*
-X571082Y-84528D01*
-X571082Y-58528D01*
-X597082Y-58528D01*
-G37*
-G36*
-X597082Y-68928D02*
-X597082Y-94928D01*
-X571082Y-94928D01*
-X571082Y-68928D01*
-X597082Y-68928D01*
-G37*
-G36*
-X392925Y-74883D02*
-X392925Y-92883D01*
-X374925Y-92883D01*
-X374925Y-74883D01*
-X392925Y-74883D01*
-G37*
-G36*
-X392925Y-85283D02*
-X392925Y-103283D01*
-X374925Y-103283D01*
-X374925Y-85283D01*
-X392925Y-85283D01*
-G37*
-X251000Y-91883D02*
-G54D43*
-D03*
-X945803Y-63465D02*
-G54D43*
-D03*
-X900741Y-32318D02*
-G54D43*
-D03*
-X849941Y-32318D02*
-G54D43*
-D03*
-X756341Y-48318D02*
-G54D43*
-D03*
-X705541Y-48318D02*
-G54D43*
-D03*
-X138741Y-32318D02*
-G54D43*
-D03*
-X87941Y-32318D02*
-G54D43*
-D03*
-X37141Y-32318D02*
-G54D43*
-D03*
-X37141Y-83118D02*
-G54D43*
-D03*
-X87941Y-83118D02*
-G54D43*
-D03*
-X138741Y-83118D02*
-G54D43*
-D03*
-X37141Y-133918D02*
-G54D43*
-D03*
-X87941Y-133918D02*
-G54D43*
-D03*
-X37141Y-184718D02*
-G54D43*
-D03*
-X934841Y-235518D02*
-G54D43*
-D03*
-X934817Y-285708D02*
-G54D43*
-D03*
-X752386Y-283636D02*
-G54D43*
-D03*
-X730941Y-260918D02*
-G54D43*
-D03*
-X726420Y-202290D02*
-G54D43*
-D03*
-X675620Y-202290D02*
-G54D43*
-D03*
-X624820Y-202290D02*
-G54D43*
-D03*
-X574020Y-202290D02*
-G54D43*
-D03*
-X269220Y-151490D02*
-G54D43*
-D03*
-X345420Y-126090D02*
-G54D43*
-D03*
-X428134Y-109358D02*
-G54D43*
-D03*
-X436362Y-66756D02*
-G54D43*
-D03*
-X512501Y-66756D02*
-G54D43*
-D03*
-X560268Y-46690D02*
-G54D43*
-D03*
-X595808Y-46690D02*
-G54D43*
-D03*
-X623683Y-63066D02*
-G54D43*
-D03*
-X655042Y-63415D02*
-G54D43*
-D03*
-X381670Y-40483D02*
-G54D43*
-D03*
-X287032Y-40483D02*
-G54D43*
-D03*
-X381670Y-57373D02*
-G54D43*
-D03*
-X287032Y-57373D02*
-G54D43*
-D03*
-X271418Y-77700D02*
-G54D43*
-D03*
-X309049Y-77700D02*
-G54D43*
-D03*
-X346331Y-77700D02*
-G54D43*
-D03*
-X180902Y-140736D02*
-G54D43*
-D03*
-X223261Y-140467D02*
-G54D43*
-D03*
-X127783Y-194102D02*
-G54D43*
-D03*
-X170142Y-193834D02*
-G54D43*
-D03*
-X87289Y-234021D02*
-G54D43*
-D03*
-X56856Y-274392D02*
-G54D43*
-D03*
-X799141Y-133918D02*
-G54D43*
-D03*
-X640665Y-97738D02*
-G54D43*
-D03*
-X545141Y-505518D02*
-G54D43*
-D03*
-X595941Y-505518D02*
-G54D43*
-D03*
-X646741Y-505518D02*
-G54D43*
-D03*
-X697541Y-505518D02*
-G54D43*
-D03*
-X748341Y-505518D02*
-G54D43*
-D03*
-X799141Y-505518D02*
-G54D43*
-D03*
-X849941Y-505518D02*
-G54D43*
-D03*
-X900741Y-505518D02*
-G54D43*
-D03*
-X216163Y-205341D02*
-G54D43*
-D03*
-X246430Y-204748D02*
-G54D43*
-D03*
-X271653Y-204748D02*
-G54D43*
-D03*
-X296875Y-204748D02*
-G54D43*
-D03*
-X323285Y-204748D02*
-G54D43*
-D03*
-X348211Y-205044D02*
-G54D43*
-D03*
-X373433Y-204748D02*
-G54D43*
-D03*
-X398952Y-204748D02*
-G54D43*
-D03*
-G36*
-X413137Y-505059D02*
-X395137Y-505059D01*
-X395137Y-487059D01*
-X413137Y-487059D01*
-X413137Y-505059D01*
-G37*
-G36*
-X402737Y-505059D02*
-X384737Y-505059D01*
-X384737Y-487059D01*
-X402737Y-487059D01*
-X402737Y-505059D01*
-G37*
-G36*
-X413116Y-488982D02*
-X395116Y-488982D01*
-X395116Y-470982D01*
-X413116Y-470982D01*
-X413116Y-488982D01*
-G37*
-G36*
-X402716Y-488982D02*
-X384716Y-488982D01*
-X384716Y-470982D01*
-X402716Y-470982D01*
-X402716Y-488982D01*
-G37*
-G54D13*
-X560072Y-152531D02*
-X535531Y-152531D01*
-X535000Y-152000D01*
-X331141Y-433518D02*
-G54D43*
-D03*
-X371141Y-457518D02*
-G54D43*
-D03*
-X419141Y-457518D02*
-G54D43*
-D03*
-G36*
-X519333Y-523289D02*
-X498333Y-523289D01*
-X498333Y-502289D01*
-X519333Y-502289D01*
-X519333Y-523289D01*
-G37*
-G36*
-X493583Y-519289D02*
-X480583Y-519289D01*
-X480583Y-506289D01*
-X493583Y-506289D01*
-X493583Y-519289D01*
-G37*
-X849941Y-184718D02*
-G54D43*
-D03*
-X900741Y-184718D02*
-G54D43*
-D03*
-X122741Y-468318D02*
-G54D43*
-D03*
-X71941Y-468318D02*
-G54D43*
-D03*
-X21141Y-468318D02*
-G54D43*
-D03*
-X21141Y-519118D02*
-G54D43*
-D03*
-X71941Y-519118D02*
-G54D43*
-D03*
-X122741Y-519118D02*
-G54D43*
-D03*
-X505541Y-8318D02*
-G54D43*
-D03*
-X577541Y-8318D02*
-G54D43*
-D03*
-X649541Y-8318D02*
-G54D43*
-D03*
-X721541Y-8318D02*
-G54D43*
-D03*
-X32000Y-496000D02*
-G54D45*
-D03*
-X32000Y-160000D02*
-G54D45*
-D03*
-X920000Y-496000D02*
-G54D45*
-D03*
-X920000Y-160000D02*
-G54D45*
-D03*
-G36*
-X112000Y-264000D02*
-X192000Y-264000D01*
-X192000Y-304000D01*
-X112000Y-304000D01*
-X112000Y-264000D01*
-G37*
-G54D21*
-X112000Y-264000D02*
-X192000Y-264000D01*
-X192000Y-304000D01*
-X112000Y-304000D01*
-X112000Y-264000D01*
-X860630Y-168070D02*
-G54D46*
-D03*
-X860630Y-143170D02*
-G54D47*
-D03*
-G54D48*
-X860630Y-143170D02*
-X860630Y-76405D01*
-X860425Y-76200D01*
-X900741Y-133918D02*
-G54D43*
-D03*
-%LPD*%
-X842610Y-27751D02*
-G54D12*
-D03*
-X842610Y-105751D02*
-G54D12*
-D03*
-X836110Y-27751D02*
-G54D12*
-D03*
-X836110Y-105751D02*
-G54D12*
-D03*
-X829610Y-27751D02*
-G54D12*
-D03*
-X829610Y-105751D02*
-G54D12*
-D03*
-X823110Y-27751D02*
-G54D12*
-D03*
-X823110Y-105751D02*
-G54D12*
-D03*
-X816610Y-27751D02*
-G54D12*
-D03*
-X816610Y-105751D02*
-G54D12*
-D03*
-X810110Y-27751D02*
-G54D12*
-D03*
-X810110Y-105751D02*
-G54D12*
-D03*
-X803610Y-27751D02*
-G54D12*
-D03*
-X803610Y-105751D02*
-G54D12*
-D03*
-X797110Y-27751D02*
-G54D12*
-D03*
-X797110Y-105751D02*
-G54D12*
-D03*
-X790610Y-27751D02*
-G54D12*
-D03*
-X790610Y-105751D02*
-G54D12*
-D03*
-X784110Y-27751D02*
-G54D12*
-D03*
-X784110Y-105751D02*
-G54D12*
-D03*
-X777610Y-27751D02*
-G54D12*
-D03*
-X777610Y-105751D02*
-G54D12*
-D03*
-X771110Y-27751D02*
-G54D12*
-D03*
-X771110Y-105751D02*
-G54D12*
-D03*
-X764610Y-27751D02*
-G54D12*
-D03*
-X764610Y-105751D02*
-G54D12*
-D03*
-X758110Y-27751D02*
-G54D12*
-D03*
-X758110Y-105751D02*
-G54D12*
-D03*
-G54D13*
-X850170Y-12133D02*
-X886170Y-12133D01*
-G54D16*
-X829610Y-27751D02*
-X829610Y-11429D01*
-X835972Y-11429D01*
-G54D16*
-X842519Y-29878D02*
-X842519Y-59179D01*
-X886200Y-59179D01*
-G54D16*
-X836117Y-31168D02*
-X836117Y-67179D01*
-X886200Y-67179D01*
-G54D13*
-X886170Y-75133D02*
-X810120Y-75133D01*
-G54D16*
-X777888Y-75227D02*
-X777596Y-104858D01*
-G54D13*
-X854170Y-12133D02*
-X854170Y-2633D01*
-X823068Y-2657D01*
-X823074Y-12132D01*
-X771106Y-12133D01*
-X771061Y-12087D01*
-G54D16*
-X777552Y-26857D02*
-X777552Y-12276D01*
-X777740Y-12087D01*
-G54D16*
-X803611Y-24787D02*
-X803611Y-12087D01*
-G54D16*
-X823084Y-25540D02*
-X823084Y-7948D01*
-G54D13*
-X810120Y-75133D02*
-X733814Y-75174D01*
-G36*
-X731072Y-76244D02*
-X731072Y-70244D01*
-X737072Y-70244D01*
-X737072Y-76244D01*
-X731072Y-76244D01*
-G37*
-G36*
-X731072Y-65844D02*
-X731072Y-59844D01*
-X737072Y-59844D01*
-X737072Y-65844D01*
-X731072Y-65844D01*
-G37*
-G54D13*
-X734170Y-60133D02*
-X734170Y-12133D01*
-X770170Y-12133D01*
-X934500Y-14579D02*
-G54D17*
-D03*
-X934500Y-103579D02*
-G54D17*
-D03*
-X887500Y-14579D02*
-G54D17*
-D03*
-X887500Y-103579D02*
-G54D17*
-D03*
-X886200Y-43179D02*
-G54D18*
-D03*
-X886200Y-51179D02*
-G54D18*
-D03*
-X886200Y-59179D02*
-G54D18*
-D03*
-X886200Y-67179D02*
-G54D18*
-D03*
-X886200Y-75179D02*
-G54D18*
-D03*
-G54D13*
-X884964Y-42682D02*
-X884963Y-12031D01*
-X936158Y-12031D01*
-G54D13*
-X560072Y-72531D02*
-X711000Y-72531D01*
-X711000Y-62844D01*
-X734072Y-62844D01*
-G54D13*
-X560670Y-80531D02*
-X733814Y-80531D01*
-X733814Y-75174D01*
-G54D13*
-X560072Y-64531D02*
-X540786Y-64531D01*
-X540565Y-64751D01*
-X540565Y-80301D01*
-X559842Y-80301D01*
-X560072Y-80531D01*
-G54D13*
-X409072Y-96331D02*
-X422669Y-96331D01*
-X438699Y-80301D01*
-X540565Y-80301D01*
-G54D16*
-X810166Y-30192D02*
-X810120Y-75133D01*
-G54D16*
-X771061Y-25540D02*
-X771061Y-12087D01*
-G54D21*
-X934841Y-235518D02*
-X934500Y-14579D01*
-X365572Y-81868D02*
-G54D49*
-D03*
-G54D13*
-X409072Y-88331D02*
-X401636Y-88331D01*
-X390819Y-81898D01*
-X381572Y-81868D01*
-X365572Y-81867D01*
-X466410Y-12140D02*
-G54D50*
-D03*
-G54D44*
-X424372Y-48931D02*
-X238880Y-48931D01*
-X39989Y-247823D01*
-X39989Y-424043D01*
-X283043Y-424043D01*
-X354750Y-495750D01*
-X390800Y-495750D01*
-G54D44*
-X409072Y-64331D02*
-X231700Y-64331D01*
-X47884Y-248146D01*
-X47884Y-417340D01*
-X288340Y-417340D01*
-X351000Y-480000D01*
-X393716Y-479982D01*
-X560072Y-72531D02*
-G54D25*
-D03*
-G54D13*
-G75*
-G01X529411Y-74572D02*
-G03X529411Y-74572I5000J0D01*
-G01*
-X842848Y-366888D02*
-G54D51*
-D03*
-X817448Y-366888D02*
-G54D51*
-D03*
-X792048Y-366888D02*
-G54D51*
-D03*
-X766648Y-366888D02*
-G54D51*
-D03*
-X741248Y-366888D02*
-G54D51*
-D03*
-X715848Y-366888D02*
-G54D51*
-D03*
-X690448Y-366888D02*
-G54D51*
-D03*
-X665048Y-366888D02*
-G54D51*
-D03*
-X639648Y-366888D02*
-G54D51*
-D03*
-X614248Y-366888D02*
-G54D51*
-D03*
-X588848Y-366888D02*
-G54D51*
-D03*
-X563448Y-366888D02*
-G54D51*
-D03*
-X538048Y-366888D02*
-G54D51*
-D03*
-X512648Y-366888D02*
-G54D51*
-D03*
-X487248Y-366888D02*
-G54D51*
-D03*
-X461848Y-366888D02*
-G54D51*
-D03*
-X436448Y-366888D02*
-G54D51*
-D03*
-X411048Y-366888D02*
-G54D51*
-D03*
-X385648Y-366888D02*
-G54D51*
-D03*
-X360248Y-366888D02*
-G54D51*
-D03*
-X334848Y-366888D02*
-G54D51*
-D03*
-X309448Y-366888D02*
-G54D51*
-D03*
-X284048Y-366888D02*
-G54D51*
-D03*
-X258648Y-366888D02*
-G54D51*
-D03*
-X233248Y-366888D02*
-G54D51*
-D03*
-X207848Y-366888D02*
-G54D51*
-D03*
-X182448Y-366888D02*
-G54D51*
-D03*
-X157047Y-366888D02*
-G54D51*
-D03*
-X131647Y-366888D02*
-G54D51*
-D03*
-X106247Y-366888D02*
-G54D51*
-D03*
-X842848Y-316089D02*
-G54D51*
-D03*
-X817448Y-316089D02*
-G54D51*
-D03*
-X792048Y-316089D02*
-G54D51*
-D03*
-X766648Y-316089D02*
-G54D51*
-D03*
-X741248Y-316089D02*
-G54D51*
-D03*
-X715848Y-316089D02*
-G54D51*
-D03*
-X690448Y-316089D02*
-G54D51*
-D03*
-X665048Y-316089D02*
-G54D51*
-D03*
-X639648Y-316089D02*
-G54D51*
-D03*
-X614248Y-316089D02*
-G54D51*
-D03*
-X588848Y-316089D02*
-G54D51*
-D03*
-X563448Y-316089D02*
-G54D51*
-D03*
-X538048Y-316089D02*
-G54D51*
-D03*
-X512648Y-316089D02*
-G54D51*
-D03*
-X436448Y-316089D02*
-G54D51*
-D03*
-X411048Y-316089D02*
-G54D51*
-D03*
-X385648Y-316089D02*
-G54D51*
-D03*
-X360248Y-316089D02*
-G54D51*
-D03*
-X334848Y-316089D02*
-G54D51*
-D03*
-X309448Y-316089D02*
-G54D51*
-D03*
-X284048Y-316089D02*
-G54D51*
-D03*
-X258648Y-316089D02*
-G54D51*
-D03*
-X233248Y-316089D02*
-G54D51*
-D03*
-X207848Y-316089D02*
-G54D51*
-D03*
-X182448Y-316089D02*
-G54D51*
-D03*
-X157047Y-316089D02*
-G54D51*
-D03*
-X131647Y-316089D02*
-G54D51*
-D03*
-X106247Y-316089D02*
-G54D51*
-D03*
-G54D44*
-X409072Y-184331D02*
-X232199Y-184612D01*
-X258928Y-176158D02*
-G54D43*
-D03*
-X284328Y-168404D02*
-G54D43*
-D03*
-X309192Y-160765D02*
-G54D43*
-D03*
-X335343Y-152229D02*
-G54D43*
-D03*
-X359916Y-144674D02*
-G54D43*
-D03*
-X370598Y-135809D02*
-G54D43*
-D03*
-X384523Y-128033D02*
-G54D43*
-D03*
-G54D44*
-X409072Y-176331D02*
-X258928Y-176158D01*
-G54D44*
-X409072Y-128331D02*
-X384821Y-128331D01*
-X384523Y-128033D01*
-G54D44*
-X409072Y-136331D02*
-X371120Y-136331D01*
-X370598Y-135809D01*
-G54D44*
-X409072Y-144331D02*
-X359936Y-144695D01*
-X359916Y-144674D01*
-G54D44*
-X407000Y-152000D02*
-X335343Y-152229D01*
-G54D44*
-X407000Y-160000D02*
-X309957Y-160000D01*
-X309192Y-160765D01*
-G54D44*
-X409072Y-168331D02*
-X285492Y-168331D01*
-X284328Y-168404D01*
-X232958Y-184439D02*
-G54D43*
-D03*
-X488523Y-128033D02*
-G54D43*
-D03*
-X496523Y-136033D02*
-G54D43*
-D03*
-X504523Y-144033D02*
-G54D43*
-D03*
-X512523Y-152033D02*
-G54D43*
-D03*
-X520523Y-160033D02*
-G54D43*
-D03*
-X528523Y-168033D02*
-G54D43*
-D03*
-X536523Y-176033D02*
-G54D43*
-D03*
-X544523Y-184033D02*
-G54D43*
-D03*
-G54D44*
-X409072Y-128331D02*
-X488226Y-128331D01*
-X488523Y-128033D01*
-G54D44*
-X409072Y-136331D02*
-X496226Y-136331D01*
-X496523Y-136033D01*
-G54D44*
-X409072Y-144331D02*
-X504226Y-144331D01*
-X504523Y-144033D01*
-G54D44*
-X409072Y-152331D02*
-X512226Y-152331D01*
-X512523Y-152033D01*
-G54D44*
-X409072Y-160331D02*
-X520226Y-160331D01*
-X520523Y-160033D01*
-G54D44*
-X409072Y-168331D02*
-X528226Y-168331D01*
-X528523Y-168033D01*
-G54D44*
-X409072Y-176331D02*
-X536226Y-176331D01*
-X536523Y-176033D01*
-G54D44*
-X409072Y-184331D02*
-X544226Y-184331D01*
-X544523Y-184033D01*
-X544372Y-48931D02*
-G54D52*
-D03*
-X536372Y-48931D02*
-G54D52*
-D03*
-X528372Y-48931D02*
-G54D52*
-D03*
-X520372Y-48931D02*
-G54D52*
-D03*
-X512372Y-48931D02*
-G54D52*
-D03*
-X504372Y-48931D02*
-G54D52*
-D03*
-X496372Y-48931D02*
-G54D52*
-D03*
-X560072Y-64531D02*
-G54D25*
-D03*
-X560072Y-72531D02*
-G54D25*
-D03*
-X560072Y-80531D02*
-G54D25*
-D03*
-X560072Y-88531D02*
-G54D25*
-D03*
-X560072Y-96531D02*
-G54D25*
-D03*
-X560072Y-104531D02*
-G54D25*
-D03*
-X560072Y-112531D02*
-G54D25*
-D03*
-X488372Y-200331D02*
-G54D52*
-D03*
-X496372Y-200331D02*
-G54D52*
-D03*
-X504372Y-200331D02*
-G54D52*
-D03*
-X512372Y-200331D02*
-G54D52*
-D03*
-X520372Y-200331D02*
-G54D52*
-D03*
-X528372Y-200331D02*
-G54D52*
-D03*
-X536372Y-200331D02*
-G54D52*
-D03*
-X409072Y-120331D02*
-G54D25*
-D03*
-X409072Y-112331D02*
-G54D25*
-D03*
-X409072Y-104331D02*
-G54D25*
-D03*
-X409072Y-96331D02*
-G54D25*
-D03*
-X409072Y-88331D02*
-G54D25*
-D03*
-X409072Y-80331D02*
-G54D25*
-D03*
-X409072Y-72331D02*
-G54D25*
-D03*
-X409072Y-64331D02*
-G54D25*
-D03*
-X409072Y-72331D02*
-G54D25*
-D03*
-X409072Y-80331D02*
-G54D25*
-D03*
-X409072Y-88331D02*
-G54D25*
-D03*
-X409072Y-96331D02*
-G54D25*
-D03*
-X409072Y-104331D02*
-G54D25*
-D03*
-X409072Y-112331D02*
-G54D25*
-D03*
-X488372Y-48931D02*
-G54D52*
-D03*
-X496372Y-48931D02*
-G54D52*
-D03*
-X504372Y-48931D02*
-G54D52*
-D03*
-X512372Y-48931D02*
-G54D52*
-D03*
-X520372Y-48931D02*
-G54D52*
-D03*
-X528372Y-48931D02*
-G54D52*
-D03*
-X536372Y-48931D02*
-G54D52*
-D03*
-X560072Y-120531D02*
-G54D25*
-D03*
-X560072Y-112531D02*
-G54D25*
-D03*
-X560072Y-104531D02*
-G54D25*
-D03*
-X560072Y-96531D02*
-G54D25*
-D03*
-X560072Y-88531D02*
-G54D25*
-D03*
-X560072Y-80531D02*
-G54D25*
-D03*
-X560072Y-72531D02*
-G54D25*
-D03*
-X544372Y-200331D02*
-G54D52*
-D03*
-X536372Y-200331D02*
-G54D52*
-D03*
-X528372Y-200331D02*
-G54D52*
-D03*
-X520372Y-200331D02*
-G54D52*
-D03*
-X512372Y-200331D02*
-G54D52*
-D03*
-X504372Y-200331D02*
-G54D52*
-D03*
-X496372Y-200331D02*
-G54D52*
-D03*
-X560072Y-128531D02*
-G54D25*
-D03*
-X560072Y-136531D02*
-G54D25*
-D03*
-X560072Y-144531D02*
-G54D25*
-D03*
-X560072Y-152531D02*
-G54D25*
-D03*
-X560072Y-160531D02*
-G54D25*
-D03*
-X560072Y-168531D02*
-G54D25*
-D03*
-X560072Y-176531D02*
-G54D25*
-D03*
-X560072Y-184531D02*
-G54D25*
-D03*
-X560072Y-176531D02*
-G54D25*
-D03*
-X560072Y-168531D02*
-G54D25*
-D03*
-X560072Y-160531D02*
-G54D25*
-D03*
-X560072Y-152531D02*
-G54D25*
-D03*
-X560072Y-144531D02*
-G54D25*
-D03*
-X560072Y-136531D02*
-G54D25*
-D03*
-X480372Y-48931D02*
-G54D52*
-D03*
-X472372Y-48931D02*
-G54D52*
-D03*
-X464372Y-48931D02*
-G54D52*
-D03*
-X456372Y-48931D02*
-G54D52*
-D03*
-X448372Y-48931D02*
-G54D52*
-D03*
-X440372Y-48931D02*
-G54D52*
-D03*
-X432372Y-48931D02*
-G54D52*
-D03*
-X424372Y-48931D02*
-G54D52*
-D03*
-X432372Y-48931D02*
-G54D52*
-D03*
-X440372Y-48931D02*
-G54D52*
-D03*
-X448372Y-48931D02*
-G54D52*
-D03*
-X456372Y-48931D02*
-G54D52*
-D03*
-X464372Y-48931D02*
-G54D52*
-D03*
-X472372Y-48931D02*
-G54D52*
-D03*
-X424372Y-200331D02*
-G54D52*
-D03*
-X432372Y-200331D02*
-G54D52*
-D03*
-X448372Y-200331D02*
-G54D52*
-D03*
-X456372Y-200331D02*
-G54D52*
-D03*
-X464372Y-200331D02*
-G54D52*
-D03*
-X472372Y-200331D02*
-G54D52*
-D03*
-X480372Y-200331D02*
-G54D52*
-D03*
-X480372Y-200331D02*
-G54D52*
-D03*
-X472372Y-200331D02*
-G54D52*
-D03*
-X464372Y-200331D02*
-G54D52*
-D03*
-X456372Y-200331D02*
-G54D52*
-D03*
-X448372Y-200331D02*
-G54D52*
-D03*
-X432372Y-200331D02*
-G54D52*
-D03*
-X409072Y-184331D02*
-G54D25*
-D03*
-X409072Y-176331D02*
-G54D25*
-D03*
-X409072Y-168331D02*
-G54D25*
-D03*
-X409072Y-160331D02*
-G54D25*
-D03*
-X409072Y-152331D02*
-G54D25*
-D03*
-X409072Y-144331D02*
-G54D25*
-D03*
-X409072Y-136331D02*
-G54D25*
-D03*
-X409072Y-128331D02*
-G54D25*
-D03*
-X409072Y-136331D02*
-G54D25*
-D03*
-X409072Y-144331D02*
-G54D25*
-D03*
-X409072Y-152331D02*
-G54D25*
-D03*
-X409072Y-160331D02*
-G54D25*
-D03*
-X409072Y-168331D02*
-G54D25*
-D03*
-X409072Y-176331D02*
-G54D25*
-D03*
-X440372Y-200331D02*
-G54D52*
-D03*
-X461848Y-316088D02*
-G54D51*
-D03*
-X487248Y-316088D02*
-G54D51*
-D03*
-G54D44*
-X440372Y-200331D02*
-X440372Y-261372D01*
-X475000Y-296000D01*
-X611000Y-296000D01*
-X614248Y-299248D01*
-X614248Y-316089D01*
-G54D44*
-X448372Y-200331D02*
-X448372Y-257372D01*
-X479000Y-288000D01*
-X627000Y-288000D01*
-X639000Y-300000D01*
-X639000Y-315441D01*
-X639648Y-316089D01*
-G54D44*
-X456372Y-200331D02*
-X456372Y-253372D01*
-X483000Y-280000D01*
-X647000Y-280000D01*
-X665048Y-298048D01*
-X665048Y-316089D01*
-G54D44*
-X464372Y-200331D02*
-X464372Y-249372D01*
-X487000Y-272000D01*
-X666424Y-272000D01*
-X690452Y-296028D01*
-X690448Y-316089D01*
-G54D44*
-X472372Y-200331D02*
-X472372Y-245372D01*
-X491000Y-264000D01*
-X684112Y-264000D01*
-X715873Y-295761D01*
-X715848Y-316089D01*
-G54D44*
-X480372Y-200331D02*
-X480372Y-241372D01*
-X495000Y-256000D01*
-X701390Y-256000D01*
-X741243Y-295853D01*
-X741248Y-316089D01*
-X512380Y-248105D02*
-G54D43*
-D03*
-G54D44*
-X512372Y-200331D02*
-X512228Y-247954D01*
-X512380Y-248105D01*
-G54D44*
-X520372Y-200331D02*
-X520372Y-233372D01*
-X527000Y-240000D01*
-X791000Y-240000D01*
-X863000Y-312000D01*
-X863000Y-387953D01*
-X563317Y-387953D01*
-G54D44*
-X528372Y-200331D02*
-X528372Y-225372D01*
-X535000Y-232000D01*
-X791000Y-232000D01*
-X871000Y-312000D01*
-X871000Y-395935D01*
-X588883Y-395935D01*
-X588883Y-395935D02*
-G54D43*
-D03*
-X614329Y-403866D02*
-G54D43*
-D03*
-X639119Y-412048D02*
-G54D43*
-D03*
-X664764Y-419771D02*
-G54D43*
-D03*
-X689920Y-428156D02*
-G54D43*
-D03*
-X715320Y-436855D02*
-G54D43*
-D03*
-G54D44*
-X536372Y-200331D02*
-X536372Y-217372D01*
-X543000Y-224000D01*
-X791000Y-224000D01*
-X879000Y-312000D01*
-X879000Y-403866D01*
-X614329Y-403866D01*
-G54D44*
-X544372Y-200331D02*
-X544372Y-209372D01*
-X551000Y-216000D01*
-X791000Y-216000D01*
-X887000Y-312000D01*
-X887000Y-412048D01*
-X639119Y-412048D01*
-G54D44*
-X560072Y-184531D02*
-X767531Y-184531D01*
-X895000Y-312000D01*
-X895000Y-419771D01*
-X664764Y-419771D01*
-G54D44*
-X560072Y-176531D02*
-X767531Y-176531D01*
-X903000Y-312000D01*
-X903000Y-428156D01*
-X689920Y-428156D01*
-G54D44*
-X560072Y-168531D02*
-X767531Y-168531D01*
-X911000Y-312000D01*
-X911000Y-436855D01*
-X715320Y-436855D01*
-X563317Y-387953D02*
-G54D43*
-D03*
-X284883Y-395935D02*
-G54D43*
-D03*
-X310329Y-403866D02*
-G54D43*
-D03*
-X335119Y-412048D02*
-G54D43*
-D03*
-X360764Y-419771D02*
-G54D43*
-D03*
-X385920Y-428156D02*
-G54D43*
-D03*
-X411320Y-436855D02*
-G54D43*
-D03*
-X259317Y-387953D02*
-G54D43*
-D03*
-G54D44*
-X563317Y-387953D02*
-X259317Y-387953D01*
-G54D44*
-X588883Y-395935D02*
-X284883Y-395935D01*
-G54D44*
-X614329Y-403866D02*
-X310329Y-403866D01*
-G54D44*
-X639119Y-412048D02*
-X335119Y-412048D01*
-G54D44*
-X664764Y-419771D02*
-X360764Y-419771D01*
-G54D44*
-X689920Y-428156D02*
-X385920Y-428156D01*
-G54D44*
-X715320Y-436855D02*
-X411320Y-436855D01*
-X423343Y-216229D02*
-G54D43*
-D03*
-X423343Y-235754D02*
-G54D43*
-D03*
-X423343Y-248229D02*
-G54D43*
-D03*
-X423343Y-260229D02*
-G54D43*
-D03*
-X423343Y-272229D02*
-G54D43*
-D03*
-X423343Y-284229D02*
-G54D43*
-D03*
-X480580Y-236146D02*
-G54D43*
-D03*
-G54D44*
-X488372Y-200331D02*
-X488372Y-226628D01*
-X488372Y-226628D02*
-G54D43*
-D03*
-X423343Y-296229D02*
-G54D43*
-D03*
-G54D44*
-X423343Y-296229D02*
-X207848Y-296229D01*
-X207848Y-316089D01*
-G54D44*
-X423343Y-284229D02*
-X183000Y-284229D01*
-X183000Y-315536D01*
-X182448Y-316089D01*
-X472372Y-245372D02*
-G54D43*
-D03*
-X464244Y-235786D02*
-G54D43*
-D03*
-X456366Y-245512D02*
-G54D43*
-D03*
-X448439Y-235634D02*
-G54D43*
-D03*
-G54D44*
-X423343Y-272229D02*
-X157047Y-272229D01*
-X157047Y-316089D01*
-G54D44*
-X423343Y-260229D02*
-X130771Y-260229D01*
-X88032Y-304196D01*
-X88032Y-383855D01*
-X131632Y-383855D01*
-X131647Y-366888D01*
-G54D44*
-X423343Y-248229D02*
-X135637Y-248229D01*
-X80235Y-303630D01*
-X80235Y-390792D01*
-X157047Y-390792D01*
-X157047Y-366888D01*
-G54D44*
-X423343Y-235754D02*
-X139246Y-235754D01*
-X71982Y-304000D01*
-X71982Y-397653D01*
-X164596Y-397653D01*
-X182448Y-379801D01*
-X182448Y-366888D01*
-G54D44*
-X440192Y-226960D02*
-X140040Y-226960D01*
-X64126Y-304188D01*
-X64126Y-404000D01*
-X183783Y-404000D01*
-X207848Y-379935D01*
-X207848Y-366888D01*
-G54D44*
-X423343Y-216229D02*
-X142771Y-216229D01*
-X55844Y-304188D01*
-X55844Y-410301D01*
-X202638Y-410301D01*
-X233269Y-379670D01*
-X233248Y-366888D01*
-X588523Y-248033D02*
-G54D43*
-D03*
-G54D44*
-X588523Y-248033D02*
-X512380Y-248105D01*
-X496523Y-88033D02*
-G54D43*
-D03*
-X584523Y-96033D02*
-G54D43*
-D03*
-G54D44*
-X560072Y-88531D02*
-X497021Y-88531D01*
-X496523Y-88033D01*
-X592523Y-104033D02*
-G54D43*
-D03*
-X600523Y-112033D02*
-G54D43*
-D03*
-G54D44*
-X560072Y-96531D02*
-X584026Y-96531D01*
-X584523Y-96033D01*
-G54D44*
-X560072Y-104531D02*
-X592026Y-104531D01*
-X592523Y-104033D01*
-G54D44*
-X560072Y-112531D02*
-X600026Y-112531D01*
-X600523Y-112033D01*
-X608523Y-120033D02*
-G54D43*
-D03*
-G54D44*
-X560072Y-120531D02*
-X608026Y-120531D01*
-X608523Y-120033D01*
-X436905Y-444162D02*
-G54D43*
-D03*
-X462267Y-452066D02*
-G54D43*
-D03*
-X512531Y-459715D02*
-G54D43*
-D03*
-X537443Y-468361D02*
-G54D43*
-D03*
-G54D44*
-X436905Y-444162D02*
-X919000Y-444162D01*
-X919000Y-312000D01*
-X767000Y-160000D01*
-X639000Y-160000D01*
-X623531Y-144531D01*
-X560072Y-144531D01*
-G54D44*
-X462267Y-452066D02*
-X927000Y-452066D01*
-X927000Y-312000D01*
-X767000Y-152000D01*
-X647000Y-152000D01*
-X631531Y-136531D01*
-X560072Y-136531D01*
-G54D44*
-X512531Y-459715D02*
-X935000Y-459715D01*
-X935000Y-312000D01*
-X767000Y-144000D01*
-X655000Y-144000D01*
-X639531Y-128531D01*
-X560072Y-128531D01*
-G54D44*
-X537443Y-468361D02*
-X943000Y-468361D01*
-X943000Y-312000D01*
-X767000Y-136000D01*
-X663000Y-136000D01*
-X639000Y-112000D01*
-X520523Y-32033D02*
-G54D43*
-D03*
-G54D44*
-X520372Y-48931D02*
-X520372Y-32184D01*
-X520523Y-32033D01*
-X639000Y-112000D02*
-G54D43*
-D03*
-G54D44*
-X536372Y-48931D02*
-X536372Y-38628D01*
-X543000Y-32000D01*
-X647000Y-32000D01*
-X671000Y-56000D01*
-G54D44*
-X528372Y-48931D02*
-X528372Y-38628D01*
-X543000Y-24000D01*
-X655000Y-24000D01*
-X687000Y-56000D01*
-X671000Y-56000D02*
-G54D43*
-D03*
-X671000Y-96000D02*
-G54D43*
-D03*
-X687000Y-112000D02*
-G54D43*
-D03*
-X687000Y-56000D02*
-G54D43*
-D03*
-G54D44*
-X687000Y-112000D02*
-X687000Y-120000D01*
-X695000Y-128000D01*
-X784110Y-128000D01*
-X784110Y-105751D01*
-G54D44*
-X671000Y-96000D02*
-X718000Y-96000D01*
-X718000Y-120915D01*
-X758098Y-120915D01*
-X758098Y-105763D01*
-X758110Y-105751D01*
-X284958Y-96439D02*
-G54D43*
-D03*
-G36*
-X432500Y-506192D02*
-X445500Y-506192D01*
-X445500Y-519192D01*
-X432500Y-519192D01*
-X432500Y-506192D01*
-G37*
-G36*
-X454250Y-506192D02*
-X467250Y-506192D01*
-X467250Y-519192D01*
-X454250Y-519192D01*
-X454250Y-506192D01*
-G37*
-X624372Y-21239D02*
-G54D49*
-D03*
-X624372Y-35068D02*
-G54D49*
-D03*
-G54D13*
-X409072Y-96331D02*
-X284958Y-96439D01*
-G36*
-X835019Y-8979D02*
-X841019Y-8979D01*
-X841019Y-14979D01*
-X835019Y-14979D01*
-X835019Y-8979D01*
-G37*
-G36*
-X845419Y-8979D02*
-X851419Y-8979D01*
-X851419Y-14979D01*
-X845419Y-14979D01*
-X845419Y-8979D01*
-G37*
-G36*
-X220900Y-502900D02*
-X220900Y-483900D01*
-X239900Y-483900D01*
-X239900Y-502900D01*
-X220900Y-502900D01*
-G37*
-G36*
-X195500Y-502900D02*
-X195500Y-483900D01*
-X214500Y-483900D01*
-X214500Y-502900D01*
-X195500Y-502900D01*
-G37*
-G36*
-X170100Y-502900D02*
-X170100Y-483900D01*
-X189100Y-483900D01*
-X189100Y-502900D01*
-X170100Y-502900D01*
-G37*
-G36*
-X170100Y-477500D02*
-X170100Y-458500D01*
-X189100Y-458500D01*
-X189100Y-477500D01*
-X170100Y-477500D01*
-G37*
-G36*
-X195500Y-477500D02*
-X195500Y-458500D01*
-X214500Y-458500D01*
-X214500Y-477500D01*
-X195500Y-477500D01*
-G37*
-G36*
-X220900Y-477500D02*
-X220900Y-458500D01*
-X239900Y-458500D01*
-X239900Y-477500D01*
-X220900Y-477500D01*
-G37*
-G36*
-X246300Y-502900D02*
-X246300Y-483900D01*
-X265300Y-483900D01*
-X265300Y-502900D01*
-X246300Y-502900D01*
-G37*
-G36*
-X246300Y-477500D02*
-X246300Y-458500D01*
-X265300Y-458500D01*
-X265300Y-477500D01*
-X246300Y-477500D01*
-G37*
-G36*
-X144700Y-502900D02*
-X144700Y-483900D01*
-X163700Y-483900D01*
-X163700Y-502900D01*
-X144700Y-502900D01*
-G37*
-G36*
-X144700Y-477500D02*
-X144700Y-458500D01*
-X163700Y-458500D01*
-X163700Y-477500D01*
-X144700Y-477500D01*
-G37*
-G54D44*
-X404116Y-479982D02*
-X420611Y-479982D01*
-X437796Y-462796D01*
-X480589Y-462796D01*
-X512589Y-494796D01*
-X512750Y-512692D01*
-G54D44*
-X407200Y-495750D02*
-X422058Y-495750D01*
-X439000Y-512692D01*
-X461122Y-479902D02*
-G54D43*
-D03*
-G54D44*
-X460750Y-512692D02*
-X460750Y-480274D01*
-X461122Y-479902D01*
-G54D44*
-X491000Y-512692D02*
-X460750Y-512692D01*
-G54D44*
-X440372Y-48931D02*
-X440372Y-33372D01*
-X439000Y-32000D01*
-X248067Y-32000D01*
-X32071Y-247996D01*
-X32071Y-430671D01*
-X255800Y-430671D01*
-X255800Y-468000D01*
-G54D44*
-X448372Y-48931D02*
-X448372Y-25372D01*
-X447000Y-24000D01*
-X248017Y-24000D01*
-X24154Y-247863D01*
-X24154Y-437026D01*
-X230400Y-437026D01*
-X230400Y-468000D01*
-G54D44*
-X456372Y-48931D02*
-X456372Y-17372D01*
-X455000Y-16000D01*
-X247886Y-16000D01*
-X16003Y-247882D01*
-X16003Y-444000D01*
-X205000Y-444000D01*
-X205000Y-468000D01*
-G54D44*
-X464372Y-48931D02*
-X464372Y-7068D01*
-X248950Y-7068D01*
-X8009Y-248009D01*
-X8009Y-452000D01*
-X154200Y-452000D01*
-X154200Y-468000D01*
-G54D13*
-X409072Y-104331D02*
-X251000Y-104331D01*
-X251000Y-91883D01*
-G36*
-X587082Y-68528D02*
-X587082Y-74528D01*
-X581082Y-74528D01*
-X581082Y-68528D01*
-X587082Y-68528D01*
-G37*
-G36*
-X587082Y-78928D02*
-X587082Y-84928D01*
-X581082Y-84928D01*
-X581082Y-78928D01*
-X587082Y-78928D01*
-G37*
-G36*
-X386925Y-80883D02*
-X386925Y-86883D01*
-X380925Y-86883D01*
-X380925Y-80883D01*
-X386925Y-80883D01*
-G37*
-G36*
-X386925Y-91283D02*
-X386925Y-97283D01*
-X380925Y-97283D01*
-X380925Y-91283D01*
-X386925Y-91283D01*
-G37*
-X251000Y-91883D02*
-G54D43*
-D03*
-X945803Y-63465D02*
-G54D43*
-D03*
-X900741Y-32318D02*
-G54D43*
-D03*
-X849941Y-32318D02*
-G54D43*
-D03*
-X756341Y-48318D02*
-G54D43*
-D03*
-X705541Y-48318D02*
-G54D43*
-D03*
-X138741Y-32318D02*
-G54D43*
-D03*
-X87941Y-32318D02*
-G54D43*
-D03*
-X37141Y-32318D02*
-G54D43*
-D03*
-X37141Y-83118D02*
-G54D43*
-D03*
-X87941Y-83118D02*
-G54D43*
-D03*
-X138741Y-83118D02*
-G54D43*
-D03*
-X37141Y-133918D02*
-G54D43*
-D03*
-X87941Y-133918D02*
-G54D43*
-D03*
-X37141Y-184718D02*
-G54D43*
-D03*
-X934841Y-235518D02*
-G54D43*
-D03*
-X934817Y-285708D02*
-G54D43*
-D03*
-X752386Y-283636D02*
-G54D43*
-D03*
-X730941Y-260918D02*
-G54D43*
-D03*
-X726420Y-202290D02*
-G54D43*
-D03*
-X675620Y-202290D02*
-G54D43*
-D03*
-X624820Y-202290D02*
-G54D43*
-D03*
-X574020Y-202290D02*
-G54D43*
-D03*
-X269220Y-151490D02*
-G54D43*
-D03*
-X345420Y-126090D02*
-G54D43*
-D03*
-X428134Y-109358D02*
-G54D43*
-D03*
-X436362Y-66756D02*
-G54D43*
-D03*
-X512501Y-66756D02*
-G54D43*
-D03*
-X560268Y-46690D02*
-G54D43*
-D03*
-X595808Y-46690D02*
-G54D43*
-D03*
-X623683Y-63066D02*
-G54D43*
-D03*
-X655042Y-63415D02*
-G54D43*
-D03*
-X381670Y-40483D02*
-G54D43*
-D03*
-X287032Y-40483D02*
-G54D43*
-D03*
-X381670Y-57373D02*
-G54D43*
-D03*
-X287032Y-57373D02*
-G54D43*
-D03*
-X271418Y-77700D02*
-G54D43*
-D03*
-X309049Y-77700D02*
-G54D43*
-D03*
-X346331Y-77700D02*
-G54D43*
-D03*
-X180902Y-140736D02*
-G54D43*
-D03*
-X223261Y-140467D02*
-G54D43*
-D03*
-X127783Y-194102D02*
-G54D43*
-D03*
-X170142Y-193834D02*
-G54D43*
-D03*
-X87289Y-234021D02*
-G54D43*
-D03*
-X56856Y-274392D02*
-G54D43*
-D03*
-X799141Y-133918D02*
-G54D43*
-D03*
-X640665Y-97738D02*
-G54D43*
-D03*
-X545141Y-505518D02*
-G54D43*
-D03*
-X595941Y-505518D02*
-G54D43*
-D03*
-X646741Y-505518D02*
-G54D43*
-D03*
-X697541Y-505518D02*
-G54D43*
-D03*
-X748341Y-505518D02*
-G54D43*
-D03*
-X799141Y-505518D02*
-G54D43*
-D03*
-X849941Y-505518D02*
-G54D43*
-D03*
-X900741Y-505518D02*
-G54D43*
-D03*
-X216163Y-205341D02*
-G54D43*
-D03*
-X246430Y-204748D02*
-G54D43*
-D03*
-X271653Y-204748D02*
-G54D43*
-D03*
-X296875Y-204748D02*
-G54D43*
-D03*
-X323285Y-204748D02*
-G54D43*
-D03*
-X348211Y-205044D02*
-G54D43*
-D03*
-X373433Y-204748D02*
-G54D43*
-D03*
-X398952Y-204748D02*
-G54D43*
-D03*
-G36*
-X407137Y-499059D02*
-X401137Y-499059D01*
-X401137Y-493059D01*
-X407137Y-493059D01*
-X407137Y-499059D01*
-G37*
-G36*
-X396737Y-499059D02*
-X390737Y-499059D01*
-X390737Y-493059D01*
-X396737Y-493059D01*
-X396737Y-499059D01*
-G37*
-G36*
-X407116Y-482982D02*
-X401116Y-482982D01*
-X401116Y-476982D01*
-X407116Y-476982D01*
-X407116Y-482982D01*
-G37*
-G36*
-X396716Y-482982D02*
-X390716Y-482982D01*
-X390716Y-476982D01*
-X396716Y-476982D01*
-X396716Y-482982D01*
-G37*
-G54D13*
-X560072Y-152531D02*
-X535531Y-152531D01*
-X535000Y-152000D01*
-X331141Y-433518D02*
-G54D43*
-D03*
-X371141Y-457518D02*
-G54D43*
-D03*
-X419141Y-457518D02*
-G54D43*
-D03*
-G36*
-X515333Y-519289D02*
-X502333Y-519289D01*
-X502333Y-506289D01*
-X515333Y-506289D01*
-X515333Y-519289D01*
-G37*
-G36*
-X493583Y-519289D02*
-X480583Y-519289D01*
-X480583Y-506289D01*
-X493583Y-506289D01*
-X493583Y-519289D01*
-G37*
-X849941Y-184718D02*
-G54D43*
-D03*
-X900741Y-184718D02*
-G54D43*
-D03*
-X122741Y-468318D02*
-G54D43*
-D03*
-X71941Y-468318D02*
-G54D43*
-D03*
-X21141Y-468318D02*
-G54D43*
-D03*
-X21141Y-519118D02*
-G54D43*
-D03*
-X71941Y-519118D02*
-G54D43*
-D03*
-X122741Y-519118D02*
-G54D43*
-D03*
-X505541Y-8318D02*
-G54D43*
-D03*
-X577541Y-8318D02*
-G54D43*
-D03*
-X649541Y-8318D02*
-G54D43*
-D03*
-X721541Y-8318D02*
-G54D43*
-D03*
-X860630Y-168070D02*
-G54D46*
-D03*
-X860630Y-143170D02*
-G54D46*
-D03*
-G54D53*
-X860630Y-143170D02*
-X860630Y-76405D01*
-X860425Y-76200D01*
-X900741Y-133918D02*
-G54D43*
-D03*
-M02*
+%FSLAX34Y34*%
+%MOMM*%
+%LNCOPPER_TOP*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11R, 1.10X2.10*%
+%ADD12R, 0.30X1.30*%
+%ADD13C, 0.40*%
+%ADD14C, 1.10*%
+%ADD15C, 1.20*%
+%ADD16C, 0.30*%
+%ADD17R, 2.50X2.00*%
+%ADD18R, 2.30X0.40*%
+%ADD19R, 3.10X1.20*%
+%ADD20C, 1.80*%
+%ADD21C, 0.80*%
+%ADD22R, 2.20X1.80*%
+%ADD23R, 1.60X2.00*%
+%ADD24C, 1.00*%
+%ADD25R, 1.50X0.40*%
+%ADD26C, 6.10*%
+%ADD27C, 1.50*%
+%ADD28C, 2.50*%
+%ADD29R, 1.20X2.30*%
+%ADD30R, 2.30X1.20*%
+%ADD31R, 3.20X4.30*%
+%ADD32C, 2.80*%
+%ADD33C, 7.70*%
+%ADD34C, 1.80*%
+%ADD35C, 1.60*%
+%ADD36C, 4.70*%
+%ADD37C, 1.40*%
+%ADD38C, 2.40*%
+%ADD39C, 3.00*%
+%ADD40C, 2.20*%
+%ADD41C, 4.40*%
+%ADD42R, 2.00X1.60*%
+%ADD43C, 0.70*%
+%ADD44C, 0.20*%
+%ADD45C, 3.00*%
+%ADD46C, 1.64*%
+%ADD47C, 2.44*%
+%ADD48C, 1.50*%
+%ADD49R, 1.20X0.80*%
+%ADD50R, 0.80X1.20*%
+%ADD51C, 2.10*%
+%ADD52R, 0.40X1.50*%
+%ADD53C, 0.50*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+G36*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+G37*
+%LPC*%
+X842610Y-27751D02*
+G54D11*
+D03*
+X842610Y-105751D02*
+G54D11*
+D03*
+X836110Y-27751D02*
+G54D11*
+D03*
+X836110Y-105751D02*
+G54D11*
+D03*
+X829610Y-27751D02*
+G54D11*
+D03*
+X829610Y-105751D02*
+G54D11*
+D03*
+X823110Y-27751D02*
+G54D12*
+D03*
+X823110Y-105751D02*
+G54D11*
+D03*
+X816610Y-27751D02*
+G54D11*
+D03*
+X816610Y-105751D02*
+G54D11*
+D03*
+X810110Y-27751D02*
+G54D11*
+D03*
+X810110Y-105751D02*
+G54D11*
+D03*
+X803610Y-27751D02*
+G54D12*
+D03*
+X803610Y-105751D02*
+G54D11*
+D03*
+X797110Y-27751D02*
+G54D11*
+D03*
+X797110Y-105751D02*
+G54D11*
+D03*
+X790610Y-27751D02*
+G54D11*
+D03*
+X790610Y-105751D02*
+G54D11*
+D03*
+X784110Y-27751D02*
+G54D11*
+D03*
+X784110Y-105751D02*
+G54D11*
+D03*
+X777610Y-27751D02*
+G54D12*
+D03*
+X777610Y-105751D02*
+G54D11*
+D03*
+X771110Y-27751D02*
+G54D12*
+D03*
+X771110Y-105751D02*
+G54D11*
+D03*
+X764610Y-27751D02*
+G54D11*
+D03*
+X764610Y-105751D02*
+G54D11*
+D03*
+X758110Y-27751D02*
+G54D11*
+D03*
+X758110Y-105751D02*
+G54D11*
+D03*
+G54D13*
+X850170Y-12133D02*
+X886170Y-12133D01*
+G54D14*
+X829610Y-27751D02*
+X829610Y-11429D01*
+X835972Y-11429D01*
+G54D14*
+X842519Y-29878D02*
+X842519Y-59179D01*
+X886200Y-59179D01*
+G54D14*
+X836117Y-31168D02*
+X836117Y-67179D01*
+X886200Y-67179D01*
+G54D15*
+X886170Y-75133D02*
+X810120Y-75133D01*
+G54D14*
+X777888Y-75227D02*
+X777596Y-104858D01*
+G54D13*
+X854170Y-12133D02*
+X854170Y-2633D01*
+X823068Y-2657D01*
+X823074Y-12132D01*
+X771106Y-12133D01*
+X771061Y-12087D01*
+G54D16*
+X777552Y-26857D02*
+X777552Y-12276D01*
+X777740Y-12087D01*
+G54D16*
+X803611Y-24787D02*
+X803611Y-12087D01*
+G54D16*
+X823084Y-25540D02*
+X823084Y-7948D01*
+G54D15*
+X810120Y-75133D02*
+X733814Y-75174D01*
+G36*
+X727072Y-80244D02*
+X727072Y-66244D01*
+X741072Y-66244D01*
+X741072Y-80244D01*
+X727072Y-80244D01*
+G37*
+G36*
+X731072Y-65844D02*
+X731072Y-59844D01*
+X737072Y-59844D01*
+X737072Y-65844D01*
+X731072Y-65844D01*
+G37*
+G54D13*
+X734170Y-60133D02*
+X734170Y-12133D01*
+X770170Y-12133D01*
+X934500Y-14579D02*
+G54D17*
+D03*
+X934500Y-103579D02*
+G54D17*
+D03*
+X887500Y-14579D02*
+G54D17*
+D03*
+X887500Y-103579D02*
+G54D17*
+D03*
+X886200Y-43179D02*
+G54D18*
+D03*
+X886200Y-51179D02*
+G54D19*
+D03*
+X886200Y-59179D02*
+G54D19*
+D03*
+X886200Y-67179D02*
+G54D19*
+D03*
+X886200Y-75179D02*
+G54D19*
+D03*
+X912323Y-38770D02*
+G54D20*
+D03*
+X912323Y-82770D02*
+G54D20*
+D03*
+G54D13*
+X884964Y-42682D02*
+X884963Y-12031D01*
+X936158Y-12031D01*
+G54D13*
+X560072Y-72531D02*
+X711000Y-72531D01*
+X711000Y-62844D01*
+X734072Y-62844D01*
+G54D15*
+X560670Y-80531D02*
+X733814Y-80531D01*
+X733814Y-75174D01*
+G54D15*
+X560072Y-64531D02*
+X540786Y-64531D01*
+X540565Y-64751D01*
+X540565Y-80301D01*
+X559842Y-80301D01*
+X560072Y-80531D01*
+G54D15*
+X409072Y-96331D02*
+X422669Y-96331D01*
+X438699Y-80301D01*
+X540565Y-80301D01*
+G54D14*
+X810166Y-30192D02*
+X810120Y-75133D01*
+G54D16*
+X771061Y-25540D02*
+X771061Y-12087D01*
+G54D21*
+X934841Y-235518D02*
+X934500Y-14579D01*
+X365572Y-81868D02*
+G54D22*
+D03*
+G54D15*
+X409072Y-88331D02*
+X401636Y-88331D01*
+X390819Y-81898D01*
+X381572Y-81868D01*
+X365572Y-81867D01*
+X466410Y-12140D02*
+G54D23*
+D03*
+G54D24*
+X424372Y-48931D02*
+X238880Y-48931D01*
+X39989Y-247823D01*
+X39989Y-424043D01*
+X283043Y-424043D01*
+X354750Y-495750D01*
+X390800Y-495750D01*
+G54D24*
+X409072Y-64331D02*
+X231700Y-64331D01*
+X47884Y-248146D01*
+X47884Y-417340D01*
+X288340Y-417340D01*
+X351000Y-480000D01*
+X393716Y-479982D01*
+X560072Y-72531D02*
+G54D25*
+D03*
+G54D15*
+G75*
+G01X529411Y-74572D02*
+G03X529411Y-74572I5000J0D01*
+G01*
+X842848Y-366888D02*
+G54D26*
+D03*
+X817448Y-366888D02*
+G54D26*
+D03*
+X792048Y-366888D02*
+G54D26*
+D03*
+X766648Y-366888D02*
+G54D26*
+D03*
+X741248Y-366888D02*
+G54D26*
+D03*
+X715848Y-366888D02*
+G54D26*
+D03*
+X690448Y-366888D02*
+G54D26*
+D03*
+X665048Y-366888D02*
+G54D26*
+D03*
+X639648Y-366888D02*
+G54D26*
+D03*
+X614248Y-366888D02*
+G54D26*
+D03*
+X588848Y-366888D02*
+G54D26*
+D03*
+X563448Y-366888D02*
+G54D26*
+D03*
+X538048Y-366888D02*
+G54D26*
+D03*
+X512648Y-366888D02*
+G54D26*
+D03*
+X487248Y-366888D02*
+G54D26*
+D03*
+X461848Y-366888D02*
+G54D26*
+D03*
+X436448Y-366888D02*
+G54D26*
+D03*
+X411048Y-366888D02*
+G54D26*
+D03*
+X385648Y-366888D02*
+G54D26*
+D03*
+X360248Y-366888D02*
+G54D26*
+D03*
+X334848Y-366888D02*
+G54D26*
+D03*
+X309448Y-366888D02*
+G54D26*
+D03*
+X284048Y-366888D02*
+G54D26*
+D03*
+X258648Y-366888D02*
+G54D26*
+D03*
+X233248Y-366888D02*
+G54D26*
+D03*
+X207848Y-366888D02*
+G54D26*
+D03*
+X182448Y-366888D02*
+G54D26*
+D03*
+X157047Y-366888D02*
+G54D26*
+D03*
+X131647Y-366888D02*
+G54D26*
+D03*
+X106247Y-366888D02*
+G54D26*
+D03*
+X842848Y-316089D02*
+G54D26*
+D03*
+X817448Y-316089D02*
+G54D26*
+D03*
+X792048Y-316089D02*
+G54D26*
+D03*
+X766648Y-316089D02*
+G54D26*
+D03*
+X741248Y-316089D02*
+G54D26*
+D03*
+X715848Y-316089D02*
+G54D26*
+D03*
+X690448Y-316089D02*
+G54D26*
+D03*
+X665048Y-316089D02*
+G54D26*
+D03*
+X639648Y-316089D02*
+G54D26*
+D03*
+X614248Y-316089D02*
+G54D26*
+D03*
+X588848Y-316089D02*
+G54D26*
+D03*
+X563448Y-316089D02*
+G54D26*
+D03*
+X538048Y-316089D02*
+G54D26*
+D03*
+X512648Y-316089D02*
+G54D26*
+D03*
+X436448Y-316089D02*
+G54D26*
+D03*
+X411048Y-316089D02*
+G54D26*
+D03*
+X385648Y-316089D02*
+G54D26*
+D03*
+X360248Y-316089D02*
+G54D26*
+D03*
+X334848Y-316089D02*
+G54D26*
+D03*
+X309448Y-316089D02*
+G54D26*
+D03*
+X284048Y-316089D02*
+G54D26*
+D03*
+X258648Y-316089D02*
+G54D26*
+D03*
+X233248Y-316089D02*
+G54D26*
+D03*
+X207848Y-316089D02*
+G54D26*
+D03*
+X182448Y-316089D02*
+G54D26*
+D03*
+X157047Y-316089D02*
+G54D26*
+D03*
+X131647Y-316089D02*
+G54D26*
+D03*
+X106247Y-316089D02*
+G54D26*
+D03*
+G54D24*
+X409072Y-184331D02*
+X232199Y-184612D01*
+X258928Y-176158D02*
+G54D27*
+D03*
+X284328Y-168404D02*
+G54D27*
+D03*
+X309192Y-160765D02*
+G54D27*
+D03*
+X335343Y-152229D02*
+G54D27*
+D03*
+X359916Y-144674D02*
+G54D27*
+D03*
+X370598Y-135809D02*
+G54D27*
+D03*
+X384523Y-128033D02*
+G54D27*
+D03*
+G54D24*
+X409072Y-176331D02*
+X258928Y-176158D01*
+G54D24*
+X409072Y-128331D02*
+X384821Y-128331D01*
+X384523Y-128033D01*
+G54D24*
+X409072Y-136331D02*
+X371120Y-136331D01*
+X370598Y-135809D01*
+G54D24*
+X409072Y-144331D02*
+X359936Y-144695D01*
+X359916Y-144674D01*
+G54D24*
+X407000Y-152000D02*
+X335343Y-152229D01*
+G54D24*
+X407000Y-160000D02*
+X309957Y-160000D01*
+X309192Y-160765D01*
+G54D24*
+X409072Y-168331D02*
+X285492Y-168331D01*
+X284328Y-168404D01*
+X232958Y-184439D02*
+G54D27*
+D03*
+X488523Y-128033D02*
+G54D28*
+D03*
+X496523Y-136033D02*
+G54D28*
+D03*
+X504523Y-144033D02*
+G54D28*
+D03*
+X512523Y-152033D02*
+G54D28*
+D03*
+X520523Y-160033D02*
+G54D28*
+D03*
+X528523Y-168033D02*
+G54D28*
+D03*
+X536523Y-176033D02*
+G54D28*
+D03*
+X544523Y-184033D02*
+G54D28*
+D03*
+G54D24*
+X409072Y-128331D02*
+X488226Y-128331D01*
+X488523Y-128033D01*
+G54D24*
+X409072Y-136331D02*
+X496226Y-136331D01*
+X496523Y-136033D01*
+G54D24*
+X409072Y-144331D02*
+X504226Y-144331D01*
+X504523Y-144033D01*
+G54D24*
+X409072Y-152331D02*
+X512226Y-152331D01*
+X512523Y-152033D01*
+G54D24*
+X409072Y-160331D02*
+X520226Y-160331D01*
+X520523Y-160033D01*
+G54D24*
+X409072Y-168331D02*
+X528226Y-168331D01*
+X528523Y-168033D01*
+G54D24*
+X409072Y-176331D02*
+X536226Y-176331D01*
+X536523Y-176033D01*
+G54D24*
+X409072Y-184331D02*
+X544226Y-184331D01*
+X544523Y-184033D01*
+X544372Y-48931D02*
+G54D29*
+D03*
+X536372Y-48931D02*
+G54D29*
+D03*
+X528372Y-48931D02*
+G54D29*
+D03*
+X520372Y-48931D02*
+G54D29*
+D03*
+X512372Y-48931D02*
+G54D29*
+D03*
+X504372Y-48931D02*
+G54D29*
+D03*
+X496372Y-48931D02*
+G54D29*
+D03*
+X560072Y-64531D02*
+G54D30*
+D03*
+X560072Y-72531D02*
+G54D25*
+D03*
+X560072Y-80531D02*
+G54D30*
+D03*
+X560072Y-88531D02*
+G54D30*
+D03*
+X560072Y-96531D02*
+G54D30*
+D03*
+X560072Y-104531D02*
+G54D30*
+D03*
+X560072Y-112531D02*
+G54D30*
+D03*
+X488372Y-200331D02*
+G54D29*
+D03*
+X496372Y-200331D02*
+G54D29*
+D03*
+X504372Y-200331D02*
+G54D29*
+D03*
+X512372Y-200331D02*
+G54D29*
+D03*
+X520372Y-200331D02*
+G54D29*
+D03*
+X528372Y-200331D02*
+G54D29*
+D03*
+X536372Y-200331D02*
+G54D29*
+D03*
+X409072Y-120331D02*
+G54D30*
+D03*
+X409072Y-112331D02*
+G54D30*
+D03*
+X409072Y-104331D02*
+G54D25*
+D03*
+X409072Y-96331D02*
+G54D30*
+D03*
+X409072Y-88331D02*
+G54D30*
+D03*
+X409072Y-80331D02*
+G54D30*
+D03*
+X409072Y-72331D02*
+G54D30*
+D03*
+X409072Y-64331D02*
+G54D30*
+D03*
+X409072Y-72331D02*
+G54D30*
+D03*
+X409072Y-80331D02*
+G54D30*
+D03*
+X409072Y-88331D02*
+G54D30*
+D03*
+X409072Y-96331D02*
+G54D30*
+D03*
+X409072Y-104331D02*
+G54D25*
+D03*
+X409072Y-112331D02*
+G54D30*
+D03*
+X488372Y-48931D02*
+G54D29*
+D03*
+X496372Y-48931D02*
+G54D29*
+D03*
+X504372Y-48931D02*
+G54D29*
+D03*
+X512372Y-48931D02*
+G54D29*
+D03*
+X520372Y-48931D02*
+G54D29*
+D03*
+X528372Y-48931D02*
+G54D29*
+D03*
+X536372Y-48931D02*
+G54D29*
+D03*
+X560072Y-120531D02*
+G54D30*
+D03*
+X560072Y-112531D02*
+G54D30*
+D03*
+X560072Y-104531D02*
+G54D30*
+D03*
+X560072Y-96531D02*
+G54D30*
+D03*
+X560072Y-88531D02*
+G54D30*
+D03*
+X560072Y-80531D02*
+G54D30*
+D03*
+X560072Y-72531D02*
+G54D25*
+D03*
+X544372Y-200331D02*
+G54D29*
+D03*
+X536372Y-200331D02*
+G54D29*
+D03*
+X528372Y-200331D02*
+G54D29*
+D03*
+X520372Y-200331D02*
+G54D29*
+D03*
+X512372Y-200331D02*
+G54D29*
+D03*
+X504372Y-200331D02*
+G54D29*
+D03*
+X496372Y-200331D02*
+G54D29*
+D03*
+X560072Y-128531D02*
+G54D30*
+D03*
+X560072Y-136531D02*
+G54D30*
+D03*
+X560072Y-144531D02*
+G54D30*
+D03*
+X560072Y-152531D02*
+G54D30*
+D03*
+X560072Y-160531D02*
+G54D30*
+D03*
+X560072Y-168531D02*
+G54D30*
+D03*
+X560072Y-176531D02*
+G54D30*
+D03*
+X560072Y-184531D02*
+G54D30*
+D03*
+X560072Y-176531D02*
+G54D30*
+D03*
+X560072Y-168531D02*
+G54D30*
+D03*
+X560072Y-160531D02*
+G54D30*
+D03*
+X560072Y-152531D02*
+G54D25*
+D03*
+X560072Y-144531D02*
+G54D30*
+D03*
+X560072Y-136531D02*
+G54D30*
+D03*
+X480372Y-48931D02*
+G54D29*
+D03*
+X472372Y-48931D02*
+G54D29*
+D03*
+X464372Y-48931D02*
+G54D29*
+D03*
+X456372Y-48931D02*
+G54D29*
+D03*
+X448372Y-48931D02*
+G54D29*
+D03*
+X440372Y-48931D02*
+G54D29*
+D03*
+X432372Y-48931D02*
+G54D29*
+D03*
+X424372Y-48931D02*
+G54D29*
+D03*
+X432372Y-48931D02*
+G54D29*
+D03*
+X440372Y-48931D02*
+G54D29*
+D03*
+X448372Y-48931D02*
+G54D29*
+D03*
+X456372Y-48931D02*
+G54D29*
+D03*
+X464372Y-48931D02*
+G54D29*
+D03*
+X472372Y-48931D02*
+G54D29*
+D03*
+X424372Y-200331D02*
+G54D29*
+D03*
+X432372Y-200331D02*
+G54D29*
+D03*
+X448372Y-200331D02*
+G54D29*
+D03*
+X456372Y-200331D02*
+G54D29*
+D03*
+X464372Y-200331D02*
+G54D29*
+D03*
+X472372Y-200331D02*
+G54D29*
+D03*
+X480372Y-200331D02*
+G54D29*
+D03*
+X480372Y-200331D02*
+G54D29*
+D03*
+X472372Y-200331D02*
+G54D29*
+D03*
+X464372Y-200331D02*
+G54D29*
+D03*
+X456372Y-200331D02*
+G54D29*
+D03*
+X448372Y-200331D02*
+G54D29*
+D03*
+X432372Y-200331D02*
+G54D31*
+D03*
+X409072Y-184331D02*
+G54D30*
+D03*
+X409072Y-176331D02*
+G54D30*
+D03*
+X409072Y-168331D02*
+G54D30*
+D03*
+X409072Y-160331D02*
+G54D30*
+D03*
+X409072Y-152331D02*
+G54D30*
+D03*
+X409072Y-144331D02*
+G54D30*
+D03*
+X409072Y-136331D02*
+G54D30*
+D03*
+X409072Y-128331D02*
+G54D30*
+D03*
+X409072Y-136331D02*
+G54D30*
+D03*
+X409072Y-144331D02*
+G54D30*
+D03*
+X409072Y-152331D02*
+G54D30*
+D03*
+X409072Y-160331D02*
+G54D30*
+D03*
+X409072Y-168331D02*
+G54D30*
+D03*
+X409072Y-176331D02*
+G54D30*
+D03*
+X440372Y-200331D02*
+G54D29*
+D03*
+X461848Y-316088D02*
+G54D26*
+D03*
+X487248Y-316088D02*
+G54D26*
+D03*
+G54D32*
+X440372Y-200331D02*
+X440372Y-261372D01*
+X475000Y-296000D01*
+X611000Y-296000D01*
+X614248Y-299248D01*
+X614248Y-316089D01*
+G54D32*
+X448372Y-200331D02*
+X448372Y-257372D01*
+X479000Y-288000D01*
+X627000Y-288000D01*
+X639000Y-300000D01*
+X639000Y-315441D01*
+X639648Y-316089D01*
+G54D32*
+X456372Y-200331D02*
+X456372Y-253372D01*
+X483000Y-280000D01*
+X647000Y-280000D01*
+X665048Y-298048D01*
+X665048Y-316089D01*
+G54D32*
+X464372Y-200331D02*
+X464372Y-249372D01*
+X487000Y-272000D01*
+X666424Y-272000D01*
+X690452Y-296028D01*
+X690448Y-316089D01*
+G54D32*
+X472372Y-200331D02*
+X472372Y-245372D01*
+X491000Y-264000D01*
+X684112Y-264000D01*
+X715873Y-295761D01*
+X715848Y-316089D01*
+G54D32*
+X480372Y-200331D02*
+X480372Y-241372D01*
+X495000Y-256000D01*
+X701390Y-256000D01*
+X741243Y-295853D01*
+X741248Y-316089D01*
+X512380Y-248105D02*
+G54D33*
+D03*
+G54D24*
+X512372Y-200331D02*
+X512228Y-247954D01*
+X512380Y-248105D01*
+G54D34*
+X520372Y-200331D02*
+X520372Y-233372D01*
+X527000Y-240000D01*
+X791000Y-240000D01*
+X863000Y-312000D01*
+X863000Y-387953D01*
+X563317Y-387953D01*
+G54D34*
+X528372Y-200331D02*
+X528372Y-225372D01*
+X535000Y-232000D01*
+X791000Y-232000D01*
+X871000Y-312000D01*
+X871000Y-395935D01*
+X588883Y-395935D01*
+X588883Y-395935D02*
+G54D27*
+D03*
+X614329Y-403866D02*
+G54D27*
+D03*
+X639119Y-412048D02*
+G54D27*
+D03*
+X664764Y-419771D02*
+G54D27*
+D03*
+X689920Y-428156D02*
+G54D27*
+D03*
+X715320Y-436855D02*
+G54D27*
+D03*
+G54D34*
+X536372Y-200331D02*
+X536372Y-217372D01*
+X543000Y-224000D01*
+X791000Y-224000D01*
+X879000Y-312000D01*
+X879000Y-403866D01*
+X614329Y-403866D01*
+G54D24*
+X544372Y-200331D02*
+X544372Y-209372D01*
+X551000Y-216000D01*
+X791000Y-216000D01*
+X887000Y-312000D01*
+X887000Y-412048D01*
+X639119Y-412048D01*
+G54D24*
+X560072Y-184531D02*
+X767531Y-184531D01*
+X895000Y-312000D01*
+X895000Y-419771D01*
+X664764Y-419771D01*
+G54D24*
+X560072Y-176531D02*
+X767531Y-176531D01*
+X903000Y-312000D01*
+X903000Y-428156D01*
+X689920Y-428156D01*
+G54D32*
+X560072Y-168531D02*
+X767531Y-168531D01*
+X911000Y-312000D01*
+X911000Y-436855D01*
+X715320Y-436855D01*
+X563317Y-387953D02*
+G54D27*
+D03*
+X284883Y-395935D02*
+G54D27*
+D03*
+X310329Y-403866D02*
+G54D27*
+D03*
+X335119Y-412048D02*
+G54D27*
+D03*
+X360764Y-419771D02*
+G54D27*
+D03*
+X385920Y-428156D02*
+G54D27*
+D03*
+X411320Y-436855D02*
+G54D27*
+D03*
+X259317Y-387953D02*
+G54D27*
+D03*
+G54D35*
+X563317Y-387953D02*
+X259317Y-387953D01*
+G54D24*
+X588883Y-395935D02*
+X284883Y-395935D01*
+G54D24*
+X614329Y-403866D02*
+X310329Y-403866D01*
+G54D24*
+X639119Y-412048D02*
+X335119Y-412048D01*
+G54D24*
+X664764Y-419771D02*
+X360764Y-419771D01*
+G54D24*
+X689920Y-428156D02*
+X385920Y-428156D01*
+G54D24*
+X715320Y-436855D02*
+X411320Y-436855D01*
+X423343Y-216229D02*
+G54D27*
+D03*
+X423343Y-235754D02*
+G54D27*
+D03*
+X423343Y-248229D02*
+G54D27*
+D03*
+X423343Y-260229D02*
+G54D27*
+D03*
+X423343Y-272229D02*
+G54D36*
+D03*
+X423343Y-284229D02*
+G54D36*
+D03*
+X480580Y-236146D02*
+G54D27*
+D03*
+G54D24*
+X488372Y-200331D02*
+X488372Y-226628D01*
+X488372Y-226628D02*
+G54D33*
+D03*
+X423343Y-296229D02*
+G54D27*
+D03*
+G54D34*
+X423343Y-296229D02*
+X207848Y-296229D01*
+X207848Y-316089D01*
+G54D15*
+X423343Y-284229D02*
+X183000Y-284229D01*
+X183000Y-315536D01*
+X182448Y-316089D01*
+X472372Y-245372D02*
+G54D27*
+D03*
+X464244Y-235786D02*
+G54D27*
+D03*
+X456366Y-245512D02*
+G54D27*
+D03*
+X448439Y-235634D02*
+G54D27*
+D03*
+G54D37*
+X423343Y-272229D02*
+X157047Y-272229D01*
+X157047Y-316089D01*
+G54D38*
+X423343Y-260229D02*
+X130771Y-260229D01*
+X88032Y-304196D01*
+X88032Y-383855D01*
+X131632Y-383855D01*
+X131647Y-366888D01*
+G54D39*
+X423343Y-248229D02*
+X135637Y-248229D01*
+X80235Y-303630D01*
+X80235Y-390792D01*
+X157047Y-390792D01*
+X157047Y-366888D01*
+G54D40*
+X423343Y-235754D02*
+X139246Y-235754D01*
+X71982Y-304000D01*
+X71982Y-397653D01*
+X164596Y-397653D01*
+X182448Y-379801D01*
+X182448Y-366888D01*
+G54D41*
+X440192Y-226960D02*
+X140040Y-226960D01*
+X64126Y-304188D01*
+X64126Y-404000D01*
+X183783Y-404000D01*
+X207848Y-379935D01*
+X207848Y-366888D01*
+G54D24*
+X423343Y-216229D02*
+X142771Y-216229D01*
+X55844Y-304188D01*
+X55844Y-410301D01*
+X202638Y-410301D01*
+X233269Y-379670D01*
+X233248Y-366888D01*
+X588523Y-248033D02*
+G54D27*
+D03*
+G54D24*
+X588523Y-248033D02*
+X512380Y-248105D01*
+X496523Y-88033D02*
+G54D27*
+D03*
+X584523Y-96033D02*
+G54D27*
+D03*
+G54D24*
+X560072Y-88531D02*
+X497021Y-88531D01*
+X496523Y-88033D01*
+X592523Y-104033D02*
+G54D27*
+D03*
+X600523Y-112033D02*
+G54D27*
+D03*
+G54D24*
+X560072Y-96531D02*
+X584026Y-96531D01*
+X584523Y-96033D01*
+G54D24*
+X560072Y-104531D02*
+X592026Y-104531D01*
+X592523Y-104033D01*
+G54D24*
+X560072Y-112531D02*
+X600026Y-112531D01*
+X600523Y-112033D01*
+X608523Y-120033D02*
+G54D27*
+D03*
+G54D24*
+X560072Y-120531D02*
+X608026Y-120531D01*
+X608523Y-120033D01*
+X436905Y-444162D02*
+G54D27*
+D03*
+X462267Y-452066D02*
+G54D27*
+D03*
+X512531Y-459715D02*
+G54D27*
+D03*
+X537443Y-468361D02*
+G54D27*
+D03*
+G54D32*
+X436905Y-444162D02*
+X919000Y-444162D01*
+X919000Y-312000D01*
+X767000Y-160000D01*
+X639000Y-160000D01*
+X623531Y-144531D01*
+X560072Y-144531D01*
+G54D15*
+X462267Y-452066D02*
+X927000Y-452066D01*
+X927000Y-312000D01*
+X767000Y-152000D01*
+X647000Y-152000D01*
+X631531Y-136531D01*
+X560072Y-136531D01*
+G54D15*
+X512531Y-459715D02*
+X935000Y-459715D01*
+X935000Y-312000D01*
+X767000Y-144000D01*
+X655000Y-144000D01*
+X639531Y-128531D01*
+X560072Y-128531D01*
+G54D15*
+X537443Y-468361D02*
+X943000Y-468361D01*
+X943000Y-312000D01*
+X767000Y-136000D01*
+X663000Y-136000D01*
+X639000Y-112000D01*
+X520523Y-32033D02*
+G54D27*
+D03*
+G54D24*
+X520372Y-48931D02*
+X520372Y-32184D01*
+X520523Y-32033D01*
+X639000Y-112000D02*
+G54D27*
+D03*
+G54D15*
+X536372Y-48931D02*
+X536372Y-38628D01*
+X543000Y-32000D01*
+X647000Y-32000D01*
+X671000Y-56000D01*
+G54D15*
+X528372Y-48931D02*
+X528372Y-38628D01*
+X543000Y-24000D01*
+X655000Y-24000D01*
+X687000Y-56000D01*
+X671000Y-56000D02*
+G54D27*
+D03*
+X671000Y-96000D02*
+G54D27*
+D03*
+X687000Y-112000D02*
+G54D27*
+D03*
+X687000Y-56000D02*
+G54D27*
+D03*
+G54D24*
+X687000Y-112000D02*
+X687000Y-120000D01*
+X695000Y-128000D01*
+X784110Y-128000D01*
+X784110Y-105751D01*
+G54D24*
+X671000Y-96000D02*
+X718000Y-96000D01*
+X718000Y-120915D01*
+X758098Y-120915D01*
+X758098Y-105763D01*
+X758110Y-105751D01*
+X284958Y-96439D02*
+G54D27*
+D03*
+G36*
+X428500Y-502192D02*
+X449500Y-502192D01*
+X449500Y-523192D01*
+X428500Y-523192D01*
+X428500Y-502192D01*
+G37*
+G36*
+X454250Y-506192D02*
+X467250Y-506192D01*
+X467250Y-519192D01*
+X454250Y-519192D01*
+X454250Y-506192D01*
+G37*
+X624372Y-21239D02*
+G54D42*
+D03*
+X624372Y-35068D02*
+G54D42*
+D03*
+G54D15*
+X409072Y-96331D02*
+X284958Y-96439D01*
+G36*
+X831019Y-4979D02*
+X845019Y-4979D01*
+X845019Y-18979D01*
+X831019Y-18979D01*
+X831019Y-4979D01*
+G37*
+G36*
+X845419Y-8979D02*
+X851419Y-8979D01*
+X851419Y-14979D01*
+X845419Y-14979D01*
+X845419Y-8979D01*
+G37*
+G36*
+X216900Y-506900D02*
+X216900Y-479900D01*
+X243900Y-479900D01*
+X243900Y-506900D01*
+X216900Y-506900D01*
+G37*
+G36*
+X191500Y-506900D02*
+X191500Y-479900D01*
+X218500Y-479900D01*
+X218500Y-506900D01*
+X191500Y-506900D01*
+G37*
+G36*
+X166100Y-506900D02*
+X166100Y-479900D01*
+X193100Y-479900D01*
+X193100Y-506900D01*
+X166100Y-506900D01*
+G37*
+G36*
+X166100Y-481500D02*
+X166100Y-454500D01*
+X193100Y-454500D01*
+X193100Y-481500D01*
+X166100Y-481500D01*
+G37*
+G36*
+X191500Y-481500D02*
+X191500Y-454500D01*
+X218500Y-454500D01*
+X218500Y-481500D01*
+X191500Y-481500D01*
+G37*
+G36*
+X216900Y-481500D02*
+X216900Y-454500D01*
+X243900Y-454500D01*
+X243900Y-481500D01*
+X216900Y-481500D01*
+G37*
+G36*
+X246300Y-502900D02*
+X246300Y-483900D01*
+X265300Y-483900D01*
+X265300Y-502900D01*
+X246300Y-502900D01*
+G37*
+G36*
+X242300Y-481500D02*
+X242300Y-454500D01*
+X269300Y-454500D01*
+X269300Y-481500D01*
+X242300Y-481500D01*
+G37*
+G36*
+X144700Y-502900D02*
+X144700Y-483900D01*
+X163700Y-483900D01*
+X163700Y-502900D01*
+X144700Y-502900D01*
+G37*
+G36*
+X140700Y-481500D02*
+X140700Y-454500D01*
+X167700Y-454500D01*
+X167700Y-481500D01*
+X140700Y-481500D01*
+G37*
+G54D24*
+X404116Y-479982D02*
+X420611Y-479982D01*
+X437796Y-462796D01*
+X480589Y-462796D01*
+X512589Y-494796D01*
+X512750Y-512692D01*
+G54D24*
+X407200Y-495750D02*
+X422058Y-495750D01*
+X439000Y-512692D01*
+X461122Y-479902D02*
+G54D43*
+D03*
+G54D44*
+X460750Y-512692D02*
+X460750Y-480274D01*
+X461122Y-479902D01*
+G54D44*
+X491000Y-512692D02*
+X460750Y-512692D01*
+G54D24*
+X440372Y-48931D02*
+X440372Y-33372D01*
+X439000Y-32000D01*
+X248067Y-32000D01*
+X32071Y-247996D01*
+X32071Y-430671D01*
+X255800Y-430671D01*
+X255800Y-468000D01*
+G54D24*
+X448372Y-48931D02*
+X448372Y-25372D01*
+X447000Y-24000D01*
+X248017Y-24000D01*
+X24154Y-247863D01*
+X24154Y-437026D01*
+X230400Y-437026D01*
+X230400Y-468000D01*
+G54D24*
+X456372Y-48931D02*
+X456372Y-17372D01*
+X455000Y-16000D01*
+X247886Y-16000D01*
+X16003Y-247882D01*
+X16003Y-444000D01*
+X205000Y-444000D01*
+X205000Y-468000D01*
+G54D24*
+X464372Y-48931D02*
+X464372Y-7068D01*
+X248950Y-7068D01*
+X8009Y-248009D01*
+X8009Y-452000D01*
+X154200Y-452000D01*
+X154200Y-468000D01*
+G54D13*
+X409072Y-104331D02*
+X251000Y-104331D01*
+X251000Y-91883D01*
+G36*
+X597082Y-58528D02*
+X597082Y-84528D01*
+X571082Y-84528D01*
+X571082Y-58528D01*
+X597082Y-58528D01*
+G37*
+G36*
+X597082Y-68928D02*
+X597082Y-94928D01*
+X571082Y-94928D01*
+X571082Y-68928D01*
+X597082Y-68928D01*
+G37*
+G36*
+X392925Y-74883D02*
+X392925Y-92883D01*
+X374925Y-92883D01*
+X374925Y-74883D01*
+X392925Y-74883D01*
+G37*
+G36*
+X392925Y-85283D02*
+X392925Y-103283D01*
+X374925Y-103283D01*
+X374925Y-85283D01*
+X392925Y-85283D01*
+G37*
+X251000Y-91883D02*
+G54D43*
+D03*
+X945803Y-63465D02*
+G54D43*
+D03*
+X900741Y-32318D02*
+G54D43*
+D03*
+X849941Y-32318D02*
+G54D43*
+D03*
+X756341Y-48318D02*
+G54D43*
+D03*
+X705541Y-48318D02*
+G54D43*
+D03*
+X138741Y-32318D02*
+G54D43*
+D03*
+X87941Y-32318D02*
+G54D43*
+D03*
+X37141Y-32318D02*
+G54D43*
+D03*
+X37141Y-83118D02*
+G54D43*
+D03*
+X87941Y-83118D02*
+G54D43*
+D03*
+X138741Y-83118D02*
+G54D43*
+D03*
+X37141Y-133918D02*
+G54D43*
+D03*
+X87941Y-133918D02*
+G54D43*
+D03*
+X37141Y-184718D02*
+G54D43*
+D03*
+X934841Y-235518D02*
+G54D43*
+D03*
+X934817Y-285708D02*
+G54D43*
+D03*
+X752386Y-283636D02*
+G54D43*
+D03*
+X730941Y-260918D02*
+G54D43*
+D03*
+X726420Y-202290D02*
+G54D43*
+D03*
+X675620Y-202290D02*
+G54D43*
+D03*
+X624820Y-202290D02*
+G54D43*
+D03*
+X574020Y-202290D02*
+G54D43*
+D03*
+X269220Y-151490D02*
+G54D43*
+D03*
+X345420Y-126090D02*
+G54D43*
+D03*
+X428134Y-109358D02*
+G54D43*
+D03*
+X436362Y-66756D02*
+G54D43*
+D03*
+X512501Y-66756D02*
+G54D43*
+D03*
+X560268Y-46690D02*
+G54D43*
+D03*
+X595808Y-46690D02*
+G54D43*
+D03*
+X623683Y-63066D02*
+G54D43*
+D03*
+X655042Y-63415D02*
+G54D43*
+D03*
+X381670Y-40483D02*
+G54D43*
+D03*
+X287032Y-40483D02*
+G54D43*
+D03*
+X381670Y-57373D02*
+G54D43*
+D03*
+X287032Y-57373D02*
+G54D43*
+D03*
+X271418Y-77700D02*
+G54D43*
+D03*
+X309049Y-77700D02*
+G54D43*
+D03*
+X346331Y-77700D02*
+G54D43*
+D03*
+X180902Y-140736D02*
+G54D43*
+D03*
+X223261Y-140467D02*
+G54D43*
+D03*
+X127783Y-194102D02*
+G54D43*
+D03*
+X170142Y-193834D02*
+G54D43*
+D03*
+X87289Y-234021D02*
+G54D43*
+D03*
+X56856Y-274392D02*
+G54D43*
+D03*
+X799141Y-133918D02*
+G54D43*
+D03*
+X640665Y-97738D02*
+G54D43*
+D03*
+X545141Y-505518D02*
+G54D43*
+D03*
+X595941Y-505518D02*
+G54D43*
+D03*
+X646741Y-505518D02*
+G54D43*
+D03*
+X697541Y-505518D02*
+G54D43*
+D03*
+X748341Y-505518D02*
+G54D43*
+D03*
+X799141Y-505518D02*
+G54D43*
+D03*
+X849941Y-505518D02*
+G54D43*
+D03*
+X900741Y-505518D02*
+G54D43*
+D03*
+X216163Y-205341D02*
+G54D43*
+D03*
+X246430Y-204748D02*
+G54D43*
+D03*
+X271653Y-204748D02*
+G54D43*
+D03*
+X296875Y-204748D02*
+G54D43*
+D03*
+X323285Y-204748D02*
+G54D43*
+D03*
+X348211Y-205044D02*
+G54D43*
+D03*
+X373433Y-204748D02*
+G54D43*
+D03*
+X398952Y-204748D02*
+G54D43*
+D03*
+G36*
+X413137Y-505059D02*
+X395137Y-505059D01*
+X395137Y-487059D01*
+X413137Y-487059D01*
+X413137Y-505059D01*
+G37*
+G36*
+X402737Y-505059D02*
+X384737Y-505059D01*
+X384737Y-487059D01*
+X402737Y-487059D01*
+X402737Y-505059D01*
+G37*
+G36*
+X413116Y-488982D02*
+X395116Y-488982D01*
+X395116Y-470982D01*
+X413116Y-470982D01*
+X413116Y-488982D01*
+G37*
+G36*
+X402716Y-488982D02*
+X384716Y-488982D01*
+X384716Y-470982D01*
+X402716Y-470982D01*
+X402716Y-488982D01*
+G37*
+G54D13*
+X560072Y-152531D02*
+X535531Y-152531D01*
+X535000Y-152000D01*
+X331141Y-433518D02*
+G54D43*
+D03*
+X371141Y-457518D02*
+G54D43*
+D03*
+X419141Y-457518D02*
+G54D43*
+D03*
+G36*
+X519333Y-523289D02*
+X498333Y-523289D01*
+X498333Y-502289D01*
+X519333Y-502289D01*
+X519333Y-523289D01*
+G37*
+G36*
+X493583Y-519289D02*
+X480583Y-519289D01*
+X480583Y-506289D01*
+X493583Y-506289D01*
+X493583Y-519289D01*
+G37*
+X849941Y-184718D02*
+G54D43*
+D03*
+X900741Y-184718D02*
+G54D43*
+D03*
+X122741Y-468318D02*
+G54D43*
+D03*
+X71941Y-468318D02*
+G54D43*
+D03*
+X21141Y-468318D02*
+G54D43*
+D03*
+X21141Y-519118D02*
+G54D43*
+D03*
+X71941Y-519118D02*
+G54D43*
+D03*
+X122741Y-519118D02*
+G54D43*
+D03*
+X505541Y-8318D02*
+G54D43*
+D03*
+X577541Y-8318D02*
+G54D43*
+D03*
+X649541Y-8318D02*
+G54D43*
+D03*
+X721541Y-8318D02*
+G54D43*
+D03*
+X32000Y-496000D02*
+G54D45*
+D03*
+X32000Y-160000D02*
+G54D45*
+D03*
+X920000Y-496000D02*
+G54D45*
+D03*
+X920000Y-160000D02*
+G54D45*
+D03*
+G36*
+X112000Y-264000D02*
+X192000Y-264000D01*
+X192000Y-304000D01*
+X112000Y-304000D01*
+X112000Y-264000D01*
+G37*
+G54D21*
+X112000Y-264000D02*
+X192000Y-264000D01*
+X192000Y-304000D01*
+X112000Y-304000D01*
+X112000Y-264000D01*
+X860630Y-168070D02*
+G54D46*
+D03*
+X860630Y-143170D02*
+G54D47*
+D03*
+G54D48*
+X860630Y-143170D02*
+X860630Y-76405D01*
+X860425Y-76200D01*
+X900741Y-133918D02*
+G54D43*
+D03*
+%LPD*%
+X842610Y-27751D02*
+G54D12*
+D03*
+X842610Y-105751D02*
+G54D12*
+D03*
+X836110Y-27751D02*
+G54D12*
+D03*
+X836110Y-105751D02*
+G54D12*
+D03*
+X829610Y-27751D02*
+G54D12*
+D03*
+X829610Y-105751D02*
+G54D12*
+D03*
+X823110Y-27751D02*
+G54D12*
+D03*
+X823110Y-105751D02*
+G54D12*
+D03*
+X816610Y-27751D02*
+G54D12*
+D03*
+X816610Y-105751D02*
+G54D12*
+D03*
+X810110Y-27751D02*
+G54D12*
+D03*
+X810110Y-105751D02*
+G54D12*
+D03*
+X803610Y-27751D02*
+G54D12*
+D03*
+X803610Y-105751D02*
+G54D12*
+D03*
+X797110Y-27751D02*
+G54D12*
+D03*
+X797110Y-105751D02*
+G54D12*
+D03*
+X790610Y-27751D02*
+G54D12*
+D03*
+X790610Y-105751D02*
+G54D12*
+D03*
+X784110Y-27751D02*
+G54D12*
+D03*
+X784110Y-105751D02*
+G54D12*
+D03*
+X777610Y-27751D02*
+G54D12*
+D03*
+X777610Y-105751D02*
+G54D12*
+D03*
+X771110Y-27751D02*
+G54D12*
+D03*
+X771110Y-105751D02*
+G54D12*
+D03*
+X764610Y-27751D02*
+G54D12*
+D03*
+X764610Y-105751D02*
+G54D12*
+D03*
+X758110Y-27751D02*
+G54D12*
+D03*
+X758110Y-105751D02*
+G54D12*
+D03*
+G54D13*
+X850170Y-12133D02*
+X886170Y-12133D01*
+G54D16*
+X829610Y-27751D02*
+X829610Y-11429D01*
+X835972Y-11429D01*
+G54D16*
+X842519Y-29878D02*
+X842519Y-59179D01*
+X886200Y-59179D01*
+G54D16*
+X836117Y-31168D02*
+X836117Y-67179D01*
+X886200Y-67179D01*
+G54D13*
+X886170Y-75133D02*
+X810120Y-75133D01*
+G54D16*
+X777888Y-75227D02*
+X777596Y-104858D01*
+G54D13*
+X854170Y-12133D02*
+X854170Y-2633D01*
+X823068Y-2657D01*
+X823074Y-12132D01*
+X771106Y-12133D01*
+X771061Y-12087D01*
+G54D16*
+X777552Y-26857D02*
+X777552Y-12276D01*
+X777740Y-12087D01*
+G54D16*
+X803611Y-24787D02*
+X803611Y-12087D01*
+G54D16*
+X823084Y-25540D02*
+X823084Y-7948D01*
+G54D13*
+X810120Y-75133D02*
+X733814Y-75174D01*
+G36*
+X731072Y-76244D02*
+X731072Y-70244D01*
+X737072Y-70244D01*
+X737072Y-76244D01*
+X731072Y-76244D01*
+G37*
+G36*
+X731072Y-65844D02*
+X731072Y-59844D01*
+X737072Y-59844D01*
+X737072Y-65844D01*
+X731072Y-65844D01*
+G37*
+G54D13*
+X734170Y-60133D02*
+X734170Y-12133D01*
+X770170Y-12133D01*
+X934500Y-14579D02*
+G54D17*
+D03*
+X934500Y-103579D02*
+G54D17*
+D03*
+X887500Y-14579D02*
+G54D17*
+D03*
+X887500Y-103579D02*
+G54D17*
+D03*
+X886200Y-43179D02*
+G54D18*
+D03*
+X886200Y-51179D02*
+G54D18*
+D03*
+X886200Y-59179D02*
+G54D18*
+D03*
+X886200Y-67179D02*
+G54D18*
+D03*
+X886200Y-75179D02*
+G54D18*
+D03*
+G54D13*
+X884964Y-42682D02*
+X884963Y-12031D01*
+X936158Y-12031D01*
+G54D13*
+X560072Y-72531D02*
+X711000Y-72531D01*
+X711000Y-62844D01*
+X734072Y-62844D01*
+G54D13*
+X560670Y-80531D02*
+X733814Y-80531D01*
+X733814Y-75174D01*
+G54D13*
+X560072Y-64531D02*
+X540786Y-64531D01*
+X540565Y-64751D01*
+X540565Y-80301D01*
+X559842Y-80301D01*
+X560072Y-80531D01*
+G54D13*
+X409072Y-96331D02*
+X422669Y-96331D01*
+X438699Y-80301D01*
+X540565Y-80301D01*
+G54D16*
+X810166Y-30192D02*
+X810120Y-75133D01*
+G54D16*
+X771061Y-25540D02*
+X771061Y-12087D01*
+G54D21*
+X934841Y-235518D02*
+X934500Y-14579D01*
+X365572Y-81868D02*
+G54D49*
+D03*
+G54D13*
+X409072Y-88331D02*
+X401636Y-88331D01*
+X390819Y-81898D01*
+X381572Y-81868D01*
+X365572Y-81867D01*
+X466410Y-12140D02*
+G54D50*
+D03*
+G54D44*
+X424372Y-48931D02*
+X238880Y-48931D01*
+X39989Y-247823D01*
+X39989Y-424043D01*
+X283043Y-424043D01*
+X354750Y-495750D01*
+X390800Y-495750D01*
+G54D44*
+X409072Y-64331D02*
+X231700Y-64331D01*
+X47884Y-248146D01*
+X47884Y-417340D01*
+X288340Y-417340D01*
+X351000Y-480000D01*
+X393716Y-479982D01*
+X560072Y-72531D02*
+G54D25*
+D03*
+G54D13*
+G75*
+G01X529411Y-74572D02*
+G03X529411Y-74572I5000J0D01*
+G01*
+X842848Y-366888D02*
+G54D51*
+D03*
+X817448Y-366888D02*
+G54D51*
+D03*
+X792048Y-366888D02*
+G54D51*
+D03*
+X766648Y-366888D02*
+G54D51*
+D03*
+X741248Y-366888D02*
+G54D51*
+D03*
+X715848Y-366888D02*
+G54D51*
+D03*
+X690448Y-366888D02*
+G54D51*
+D03*
+X665048Y-366888D02*
+G54D51*
+D03*
+X639648Y-366888D02*
+G54D51*
+D03*
+X614248Y-366888D02*
+G54D51*
+D03*
+X588848Y-366888D02*
+G54D51*
+D03*
+X563448Y-366888D02*
+G54D51*
+D03*
+X538048Y-366888D02*
+G54D51*
+D03*
+X512648Y-366888D02*
+G54D51*
+D03*
+X487248Y-366888D02*
+G54D51*
+D03*
+X461848Y-366888D02*
+G54D51*
+D03*
+X436448Y-366888D02*
+G54D51*
+D03*
+X411048Y-366888D02*
+G54D51*
+D03*
+X385648Y-366888D02*
+G54D51*
+D03*
+X360248Y-366888D02*
+G54D51*
+D03*
+X334848Y-366888D02*
+G54D51*
+D03*
+X309448Y-366888D02*
+G54D51*
+D03*
+X284048Y-366888D02*
+G54D51*
+D03*
+X258648Y-366888D02*
+G54D51*
+D03*
+X233248Y-366888D02*
+G54D51*
+D03*
+X207848Y-366888D02*
+G54D51*
+D03*
+X182448Y-366888D02*
+G54D51*
+D03*
+X157047Y-366888D02*
+G54D51*
+D03*
+X131647Y-366888D02*
+G54D51*
+D03*
+X106247Y-366888D02*
+G54D51*
+D03*
+X842848Y-316089D02*
+G54D51*
+D03*
+X817448Y-316089D02*
+G54D51*
+D03*
+X792048Y-316089D02*
+G54D51*
+D03*
+X766648Y-316089D02*
+G54D51*
+D03*
+X741248Y-316089D02*
+G54D51*
+D03*
+X715848Y-316089D02*
+G54D51*
+D03*
+X690448Y-316089D02*
+G54D51*
+D03*
+X665048Y-316089D02*
+G54D51*
+D03*
+X639648Y-316089D02*
+G54D51*
+D03*
+X614248Y-316089D02*
+G54D51*
+D03*
+X588848Y-316089D02*
+G54D51*
+D03*
+X563448Y-316089D02*
+G54D51*
+D03*
+X538048Y-316089D02*
+G54D51*
+D03*
+X512648Y-316089D02*
+G54D51*
+D03*
+X436448Y-316089D02*
+G54D51*
+D03*
+X411048Y-316089D02*
+G54D51*
+D03*
+X385648Y-316089D02*
+G54D51*
+D03*
+X360248Y-316089D02*
+G54D51*
+D03*
+X334848Y-316089D02*
+G54D51*
+D03*
+X309448Y-316089D02*
+G54D51*
+D03*
+X284048Y-316089D02*
+G54D51*
+D03*
+X258648Y-316089D02*
+G54D51*
+D03*
+X233248Y-316089D02*
+G54D51*
+D03*
+X207848Y-316089D02*
+G54D51*
+D03*
+X182448Y-316089D02*
+G54D51*
+D03*
+X157047Y-316089D02*
+G54D51*
+D03*
+X131647Y-316089D02*
+G54D51*
+D03*
+X106247Y-316089D02*
+G54D51*
+D03*
+G54D44*
+X409072Y-184331D02*
+X232199Y-184612D01*
+X258928Y-176158D02*
+G54D43*
+D03*
+X284328Y-168404D02*
+G54D43*
+D03*
+X309192Y-160765D02*
+G54D43*
+D03*
+X335343Y-152229D02*
+G54D43*
+D03*
+X359916Y-144674D02*
+G54D43*
+D03*
+X370598Y-135809D02*
+G54D43*
+D03*
+X384523Y-128033D02*
+G54D43*
+D03*
+G54D44*
+X409072Y-176331D02*
+X258928Y-176158D01*
+G54D44*
+X409072Y-128331D02*
+X384821Y-128331D01*
+X384523Y-128033D01*
+G54D44*
+X409072Y-136331D02*
+X371120Y-136331D01*
+X370598Y-135809D01*
+G54D44*
+X409072Y-144331D02*
+X359936Y-144695D01*
+X359916Y-144674D01*
+G54D44*
+X407000Y-152000D02*
+X335343Y-152229D01*
+G54D44*
+X407000Y-160000D02*
+X309957Y-160000D01*
+X309192Y-160765D01*
+G54D44*
+X409072Y-168331D02*
+X285492Y-168331D01*
+X284328Y-168404D01*
+X232958Y-184439D02*
+G54D43*
+D03*
+X488523Y-128033D02*
+G54D43*
+D03*
+X496523Y-136033D02*
+G54D43*
+D03*
+X504523Y-144033D02*
+G54D43*
+D03*
+X512523Y-152033D02*
+G54D43*
+D03*
+X520523Y-160033D02*
+G54D43*
+D03*
+X528523Y-168033D02*
+G54D43*
+D03*
+X536523Y-176033D02*
+G54D43*
+D03*
+X544523Y-184033D02*
+G54D43*
+D03*
+G54D44*
+X409072Y-128331D02*
+X488226Y-128331D01*
+X488523Y-128033D01*
+G54D44*
+X409072Y-136331D02*
+X496226Y-136331D01*
+X496523Y-136033D01*
+G54D44*
+X409072Y-144331D02*
+X504226Y-144331D01*
+X504523Y-144033D01*
+G54D44*
+X409072Y-152331D02*
+X512226Y-152331D01*
+X512523Y-152033D01*
+G54D44*
+X409072Y-160331D02*
+X520226Y-160331D01*
+X520523Y-160033D01*
+G54D44*
+X409072Y-168331D02*
+X528226Y-168331D01*
+X528523Y-168033D01*
+G54D44*
+X409072Y-176331D02*
+X536226Y-176331D01*
+X536523Y-176033D01*
+G54D44*
+X409072Y-184331D02*
+X544226Y-184331D01*
+X544523Y-184033D01*
+X544372Y-48931D02*
+G54D52*
+D03*
+X536372Y-48931D02*
+G54D52*
+D03*
+X528372Y-48931D02*
+G54D52*
+D03*
+X520372Y-48931D02*
+G54D52*
+D03*
+X512372Y-48931D02*
+G54D52*
+D03*
+X504372Y-48931D02*
+G54D52*
+D03*
+X496372Y-48931D02*
+G54D52*
+D03*
+X560072Y-64531D02*
+G54D25*
+D03*
+X560072Y-72531D02*
+G54D25*
+D03*
+X560072Y-80531D02*
+G54D25*
+D03*
+X560072Y-88531D02*
+G54D25*
+D03*
+X560072Y-96531D02*
+G54D25*
+D03*
+X560072Y-104531D02*
+G54D25*
+D03*
+X560072Y-112531D02*
+G54D25*
+D03*
+X488372Y-200331D02*
+G54D52*
+D03*
+X496372Y-200331D02*
+G54D52*
+D03*
+X504372Y-200331D02*
+G54D52*
+D03*
+X512372Y-200331D02*
+G54D52*
+D03*
+X520372Y-200331D02*
+G54D52*
+D03*
+X528372Y-200331D02*
+G54D52*
+D03*
+X536372Y-200331D02*
+G54D52*
+D03*
+X409072Y-120331D02*
+G54D25*
+D03*
+X409072Y-112331D02*
+G54D25*
+D03*
+X409072Y-104331D02*
+G54D25*
+D03*
+X409072Y-96331D02*
+G54D25*
+D03*
+X409072Y-88331D02*
+G54D25*
+D03*
+X409072Y-80331D02*
+G54D25*
+D03*
+X409072Y-72331D02*
+G54D25*
+D03*
+X409072Y-64331D02*
+G54D25*
+D03*
+X409072Y-72331D02*
+G54D25*
+D03*
+X409072Y-80331D02*
+G54D25*
+D03*
+X409072Y-88331D02*
+G54D25*
+D03*
+X409072Y-96331D02*
+G54D25*
+D03*
+X409072Y-104331D02*
+G54D25*
+D03*
+X409072Y-112331D02*
+G54D25*
+D03*
+X488372Y-48931D02*
+G54D52*
+D03*
+X496372Y-48931D02*
+G54D52*
+D03*
+X504372Y-48931D02*
+G54D52*
+D03*
+X512372Y-48931D02*
+G54D52*
+D03*
+X520372Y-48931D02*
+G54D52*
+D03*
+X528372Y-48931D02*
+G54D52*
+D03*
+X536372Y-48931D02*
+G54D52*
+D03*
+X560072Y-120531D02*
+G54D25*
+D03*
+X560072Y-112531D02*
+G54D25*
+D03*
+X560072Y-104531D02*
+G54D25*
+D03*
+X560072Y-96531D02*
+G54D25*
+D03*
+X560072Y-88531D02*
+G54D25*
+D03*
+X560072Y-80531D02*
+G54D25*
+D03*
+X560072Y-72531D02*
+G54D25*
+D03*
+X544372Y-200331D02*
+G54D52*
+D03*
+X536372Y-200331D02*
+G54D52*
+D03*
+X528372Y-200331D02*
+G54D52*
+D03*
+X520372Y-200331D02*
+G54D52*
+D03*
+X512372Y-200331D02*
+G54D52*
+D03*
+X504372Y-200331D02*
+G54D52*
+D03*
+X496372Y-200331D02*
+G54D52*
+D03*
+X560072Y-128531D02*
+G54D25*
+D03*
+X560072Y-136531D02*
+G54D25*
+D03*
+X560072Y-144531D02*
+G54D25*
+D03*
+X560072Y-152531D02*
+G54D25*
+D03*
+X560072Y-160531D02*
+G54D25*
+D03*
+X560072Y-168531D02*
+G54D25*
+D03*
+X560072Y-176531D02*
+G54D25*
+D03*
+X560072Y-184531D02*
+G54D25*
+D03*
+X560072Y-176531D02*
+G54D25*
+D03*
+X560072Y-168531D02*
+G54D25*
+D03*
+X560072Y-160531D02*
+G54D25*
+D03*
+X560072Y-152531D02*
+G54D25*
+D03*
+X560072Y-144531D02*
+G54D25*
+D03*
+X560072Y-136531D02*
+G54D25*
+D03*
+X480372Y-48931D02*
+G54D52*
+D03*
+X472372Y-48931D02*
+G54D52*
+D03*
+X464372Y-48931D02*
+G54D52*
+D03*
+X456372Y-48931D02*
+G54D52*
+D03*
+X448372Y-48931D02*
+G54D52*
+D03*
+X440372Y-48931D02*
+G54D52*
+D03*
+X432372Y-48931D02*
+G54D52*
+D03*
+X424372Y-48931D02*
+G54D52*
+D03*
+X432372Y-48931D02*
+G54D52*
+D03*
+X440372Y-48931D02*
+G54D52*
+D03*
+X448372Y-48931D02*
+G54D52*
+D03*
+X456372Y-48931D02*
+G54D52*
+D03*
+X464372Y-48931D02*
+G54D52*
+D03*
+X472372Y-48931D02*
+G54D52*
+D03*
+X424372Y-200331D02*
+G54D52*
+D03*
+X432372Y-200331D02*
+G54D52*
+D03*
+X448372Y-200331D02*
+G54D52*
+D03*
+X456372Y-200331D02*
+G54D52*
+D03*
+X464372Y-200331D02*
+G54D52*
+D03*
+X472372Y-200331D02*
+G54D52*
+D03*
+X480372Y-200331D02*
+G54D52*
+D03*
+X480372Y-200331D02*
+G54D52*
+D03*
+X472372Y-200331D02*
+G54D52*
+D03*
+X464372Y-200331D02*
+G54D52*
+D03*
+X456372Y-200331D02*
+G54D52*
+D03*
+X448372Y-200331D02*
+G54D52*
+D03*
+X432372Y-200331D02*
+G54D52*
+D03*
+X409072Y-184331D02*
+G54D25*
+D03*
+X409072Y-176331D02*
+G54D25*
+D03*
+X409072Y-168331D02*
+G54D25*
+D03*
+X409072Y-160331D02*
+G54D25*
+D03*
+X409072Y-152331D02*
+G54D25*
+D03*
+X409072Y-144331D02*
+G54D25*
+D03*
+X409072Y-136331D02*
+G54D25*
+D03*
+X409072Y-128331D02*
+G54D25*
+D03*
+X409072Y-136331D02*
+G54D25*
+D03*
+X409072Y-144331D02*
+G54D25*
+D03*
+X409072Y-152331D02*
+G54D25*
+D03*
+X409072Y-160331D02*
+G54D25*
+D03*
+X409072Y-168331D02*
+G54D25*
+D03*
+X409072Y-176331D02*
+G54D25*
+D03*
+X440372Y-200331D02*
+G54D52*
+D03*
+X461848Y-316088D02*
+G54D51*
+D03*
+X487248Y-316088D02*
+G54D51*
+D03*
+G54D44*
+X440372Y-200331D02*
+X440372Y-261372D01*
+X475000Y-296000D01*
+X611000Y-296000D01*
+X614248Y-299248D01*
+X614248Y-316089D01*
+G54D44*
+X448372Y-200331D02*
+X448372Y-257372D01*
+X479000Y-288000D01*
+X627000Y-288000D01*
+X639000Y-300000D01*
+X639000Y-315441D01*
+X639648Y-316089D01*
+G54D44*
+X456372Y-200331D02*
+X456372Y-253372D01*
+X483000Y-280000D01*
+X647000Y-280000D01*
+X665048Y-298048D01*
+X665048Y-316089D01*
+G54D44*
+X464372Y-200331D02*
+X464372Y-249372D01*
+X487000Y-272000D01*
+X666424Y-272000D01*
+X690452Y-296028D01*
+X690448Y-316089D01*
+G54D44*
+X472372Y-200331D02*
+X472372Y-245372D01*
+X491000Y-264000D01*
+X684112Y-264000D01*
+X715873Y-295761D01*
+X715848Y-316089D01*
+G54D44*
+X480372Y-200331D02*
+X480372Y-241372D01*
+X495000Y-256000D01*
+X701390Y-256000D01*
+X741243Y-295853D01*
+X741248Y-316089D01*
+X512380Y-248105D02*
+G54D43*
+D03*
+G54D44*
+X512372Y-200331D02*
+X512228Y-247954D01*
+X512380Y-248105D01*
+G54D44*
+X520372Y-200331D02*
+X520372Y-233372D01*
+X527000Y-240000D01*
+X791000Y-240000D01*
+X863000Y-312000D01*
+X863000Y-387953D01*
+X563317Y-387953D01*
+G54D44*
+X528372Y-200331D02*
+X528372Y-225372D01*
+X535000Y-232000D01*
+X791000Y-232000D01*
+X871000Y-312000D01*
+X871000Y-395935D01*
+X588883Y-395935D01*
+X588883Y-395935D02*
+G54D43*
+D03*
+X614329Y-403866D02*
+G54D43*
+D03*
+X639119Y-412048D02*
+G54D43*
+D03*
+X664764Y-419771D02*
+G54D43*
+D03*
+X689920Y-428156D02*
+G54D43*
+D03*
+X715320Y-436855D02*
+G54D43*
+D03*
+G54D44*
+X536372Y-200331D02*
+X536372Y-217372D01*
+X543000Y-224000D01*
+X791000Y-224000D01*
+X879000Y-312000D01*
+X879000Y-403866D01*
+X614329Y-403866D01*
+G54D44*
+X544372Y-200331D02*
+X544372Y-209372D01*
+X551000Y-216000D01*
+X791000Y-216000D01*
+X887000Y-312000D01*
+X887000Y-412048D01*
+X639119Y-412048D01*
+G54D44*
+X560072Y-184531D02*
+X767531Y-184531D01*
+X895000Y-312000D01*
+X895000Y-419771D01*
+X664764Y-419771D01*
+G54D44*
+X560072Y-176531D02*
+X767531Y-176531D01*
+X903000Y-312000D01*
+X903000Y-428156D01*
+X689920Y-428156D01*
+G54D44*
+X560072Y-168531D02*
+X767531Y-168531D01*
+X911000Y-312000D01*
+X911000Y-436855D01*
+X715320Y-436855D01*
+X563317Y-387953D02*
+G54D43*
+D03*
+X284883Y-395935D02*
+G54D43*
+D03*
+X310329Y-403866D02*
+G54D43*
+D03*
+X335119Y-412048D02*
+G54D43*
+D03*
+X360764Y-419771D02*
+G54D43*
+D03*
+X385920Y-428156D02*
+G54D43*
+D03*
+X411320Y-436855D02*
+G54D43*
+D03*
+X259317Y-387953D02*
+G54D43*
+D03*
+G54D44*
+X563317Y-387953D02*
+X259317Y-387953D01*
+G54D44*
+X588883Y-395935D02*
+X284883Y-395935D01*
+G54D44*
+X614329Y-403866D02*
+X310329Y-403866D01*
+G54D44*
+X639119Y-412048D02*
+X335119Y-412048D01*
+G54D44*
+X664764Y-419771D02*
+X360764Y-419771D01*
+G54D44*
+X689920Y-428156D02*
+X385920Y-428156D01*
+G54D44*
+X715320Y-436855D02*
+X411320Y-436855D01*
+X423343Y-216229D02*
+G54D43*
+D03*
+X423343Y-235754D02*
+G54D43*
+D03*
+X423343Y-248229D02*
+G54D43*
+D03*
+X423343Y-260229D02*
+G54D43*
+D03*
+X423343Y-272229D02*
+G54D43*
+D03*
+X423343Y-284229D02*
+G54D43*
+D03*
+X480580Y-236146D02*
+G54D43*
+D03*
+G54D44*
+X488372Y-200331D02*
+X488372Y-226628D01*
+X488372Y-226628D02*
+G54D43*
+D03*
+X423343Y-296229D02*
+G54D43*
+D03*
+G54D44*
+X423343Y-296229D02*
+X207848Y-296229D01*
+X207848Y-316089D01*
+G54D44*
+X423343Y-284229D02*
+X183000Y-284229D01*
+X183000Y-315536D01*
+X182448Y-316089D01*
+X472372Y-245372D02*
+G54D43*
+D03*
+X464244Y-235786D02*
+G54D43*
+D03*
+X456366Y-245512D02*
+G54D43*
+D03*
+X448439Y-235634D02*
+G54D43*
+D03*
+G54D44*
+X423343Y-272229D02*
+X157047Y-272229D01*
+X157047Y-316089D01*
+G54D44*
+X423343Y-260229D02*
+X130771Y-260229D01*
+X88032Y-304196D01*
+X88032Y-383855D01*
+X131632Y-383855D01*
+X131647Y-366888D01*
+G54D44*
+X423343Y-248229D02*
+X135637Y-248229D01*
+X80235Y-303630D01*
+X80235Y-390792D01*
+X157047Y-390792D01*
+X157047Y-366888D01*
+G54D44*
+X423343Y-235754D02*
+X139246Y-235754D01*
+X71982Y-304000D01*
+X71982Y-397653D01*
+X164596Y-397653D01*
+X182448Y-379801D01*
+X182448Y-366888D01*
+G54D44*
+X440192Y-226960D02*
+X140040Y-226960D01*
+X64126Y-304188D01*
+X64126Y-404000D01*
+X183783Y-404000D01*
+X207848Y-379935D01*
+X207848Y-366888D01*
+G54D44*
+X423343Y-216229D02*
+X142771Y-216229D01*
+X55844Y-304188D01*
+X55844Y-410301D01*
+X202638Y-410301D01*
+X233269Y-379670D01*
+X233248Y-366888D01*
+X588523Y-248033D02*
+G54D43*
+D03*
+G54D44*
+X588523Y-248033D02*
+X512380Y-248105D01*
+X496523Y-88033D02*
+G54D43*
+D03*
+X584523Y-96033D02*
+G54D43*
+D03*
+G54D44*
+X560072Y-88531D02*
+X497021Y-88531D01*
+X496523Y-88033D01*
+X592523Y-104033D02*
+G54D43*
+D03*
+X600523Y-112033D02*
+G54D43*
+D03*
+G54D44*
+X560072Y-96531D02*
+X584026Y-96531D01*
+X584523Y-96033D01*
+G54D44*
+X560072Y-104531D02*
+X592026Y-104531D01*
+X592523Y-104033D01*
+G54D44*
+X560072Y-112531D02*
+X600026Y-112531D01*
+X600523Y-112033D01*
+X608523Y-120033D02*
+G54D43*
+D03*
+G54D44*
+X560072Y-120531D02*
+X608026Y-120531D01*
+X608523Y-120033D01*
+X436905Y-444162D02*
+G54D43*
+D03*
+X462267Y-452066D02*
+G54D43*
+D03*
+X512531Y-459715D02*
+G54D43*
+D03*
+X537443Y-468361D02*
+G54D43*
+D03*
+G54D44*
+X436905Y-444162D02*
+X919000Y-444162D01*
+X919000Y-312000D01*
+X767000Y-160000D01*
+X639000Y-160000D01*
+X623531Y-144531D01*
+X560072Y-144531D01*
+G54D44*
+X462267Y-452066D02*
+X927000Y-452066D01*
+X927000Y-312000D01*
+X767000Y-152000D01*
+X647000Y-152000D01*
+X631531Y-136531D01*
+X560072Y-136531D01*
+G54D44*
+X512531Y-459715D02*
+X935000Y-459715D01*
+X935000Y-312000D01*
+X767000Y-144000D01*
+X655000Y-144000D01*
+X639531Y-128531D01*
+X560072Y-128531D01*
+G54D44*
+X537443Y-468361D02*
+X943000Y-468361D01*
+X943000Y-312000D01*
+X767000Y-136000D01*
+X663000Y-136000D01*
+X639000Y-112000D01*
+X520523Y-32033D02*
+G54D43*
+D03*
+G54D44*
+X520372Y-48931D02*
+X520372Y-32184D01*
+X520523Y-32033D01*
+X639000Y-112000D02*
+G54D43*
+D03*
+G54D44*
+X536372Y-48931D02*
+X536372Y-38628D01*
+X543000Y-32000D01*
+X647000Y-32000D01*
+X671000Y-56000D01*
+G54D44*
+X528372Y-48931D02*
+X528372Y-38628D01*
+X543000Y-24000D01*
+X655000Y-24000D01*
+X687000Y-56000D01*
+X671000Y-56000D02*
+G54D43*
+D03*
+X671000Y-96000D02*
+G54D43*
+D03*
+X687000Y-112000D02*
+G54D43*
+D03*
+X687000Y-56000D02*
+G54D43*
+D03*
+G54D44*
+X687000Y-112000D02*
+X687000Y-120000D01*
+X695000Y-128000D01*
+X784110Y-128000D01*
+X784110Y-105751D01*
+G54D44*
+X671000Y-96000D02*
+X718000Y-96000D01*
+X718000Y-120915D01*
+X758098Y-120915D01*
+X758098Y-105763D01*
+X758110Y-105751D01*
+X284958Y-96439D02*
+G54D43*
+D03*
+G36*
+X432500Y-506192D02*
+X445500Y-506192D01*
+X445500Y-519192D01*
+X432500Y-519192D01*
+X432500Y-506192D01*
+G37*
+G36*
+X454250Y-506192D02*
+X467250Y-506192D01*
+X467250Y-519192D01*
+X454250Y-519192D01*
+X454250Y-506192D01*
+G37*
+X624372Y-21239D02*
+G54D49*
+D03*
+X624372Y-35068D02*
+G54D49*
+D03*
+G54D13*
+X409072Y-96331D02*
+X284958Y-96439D01*
+G36*
+X835019Y-8979D02*
+X841019Y-8979D01*
+X841019Y-14979D01*
+X835019Y-14979D01*
+X835019Y-8979D01*
+G37*
+G36*
+X845419Y-8979D02*
+X851419Y-8979D01*
+X851419Y-14979D01*
+X845419Y-14979D01*
+X845419Y-8979D01*
+G37*
+G36*
+X220900Y-502900D02*
+X220900Y-483900D01*
+X239900Y-483900D01*
+X239900Y-502900D01*
+X220900Y-502900D01*
+G37*
+G36*
+X195500Y-502900D02*
+X195500Y-483900D01*
+X214500Y-483900D01*
+X214500Y-502900D01*
+X195500Y-502900D01*
+G37*
+G36*
+X170100Y-502900D02*
+X170100Y-483900D01*
+X189100Y-483900D01*
+X189100Y-502900D01*
+X170100Y-502900D01*
+G37*
+G36*
+X170100Y-477500D02*
+X170100Y-458500D01*
+X189100Y-458500D01*
+X189100Y-477500D01*
+X170100Y-477500D01*
+G37*
+G36*
+X195500Y-477500D02*
+X195500Y-458500D01*
+X214500Y-458500D01*
+X214500Y-477500D01*
+X195500Y-477500D01*
+G37*
+G36*
+X220900Y-477500D02*
+X220900Y-458500D01*
+X239900Y-458500D01*
+X239900Y-477500D01*
+X220900Y-477500D01*
+G37*
+G36*
+X246300Y-502900D02*
+X246300Y-483900D01*
+X265300Y-483900D01*
+X265300Y-502900D01*
+X246300Y-502900D01*
+G37*
+G36*
+X246300Y-477500D02*
+X246300Y-458500D01*
+X265300Y-458500D01*
+X265300Y-477500D01*
+X246300Y-477500D01*
+G37*
+G36*
+X144700Y-502900D02*
+X144700Y-483900D01*
+X163700Y-483900D01*
+X163700Y-502900D01*
+X144700Y-502900D01*
+G37*
+G36*
+X144700Y-477500D02*
+X144700Y-458500D01*
+X163700Y-458500D01*
+X163700Y-477500D01*
+X144700Y-477500D01*
+G37*
+G54D44*
+X404116Y-479982D02*
+X420611Y-479982D01*
+X437796Y-462796D01*
+X480589Y-462796D01*
+X512589Y-494796D01*
+X512750Y-512692D01*
+G54D44*
+X407200Y-495750D02*
+X422058Y-495750D01*
+X439000Y-512692D01*
+X461122Y-479902D02*
+G54D43*
+D03*
+G54D44*
+X460750Y-512692D02*
+X460750Y-480274D01*
+X461122Y-479902D01*
+G54D44*
+X491000Y-512692D02*
+X460750Y-512692D01*
+G54D44*
+X440372Y-48931D02*
+X440372Y-33372D01*
+X439000Y-32000D01*
+X248067Y-32000D01*
+X32071Y-247996D01*
+X32071Y-430671D01*
+X255800Y-430671D01*
+X255800Y-468000D01*
+G54D44*
+X448372Y-48931D02*
+X448372Y-25372D01*
+X447000Y-24000D01*
+X248017Y-24000D01*
+X24154Y-247863D01*
+X24154Y-437026D01*
+X230400Y-437026D01*
+X230400Y-468000D01*
+G54D44*
+X456372Y-48931D02*
+X456372Y-17372D01*
+X455000Y-16000D01*
+X247886Y-16000D01*
+X16003Y-247882D01*
+X16003Y-444000D01*
+X205000Y-444000D01*
+X205000Y-468000D01*
+G54D44*
+X464372Y-48931D02*
+X464372Y-7068D01*
+X248950Y-7068D01*
+X8009Y-248009D01*
+X8009Y-452000D01*
+X154200Y-452000D01*
+X154200Y-468000D01*
+G54D13*
+X409072Y-104331D02*
+X251000Y-104331D01*
+X251000Y-91883D01*
+G36*
+X587082Y-68528D02*
+X587082Y-74528D01*
+X581082Y-74528D01*
+X581082Y-68528D01*
+X587082Y-68528D01*
+G37*
+G36*
+X587082Y-78928D02*
+X587082Y-84928D01*
+X581082Y-84928D01*
+X581082Y-78928D01*
+X587082Y-78928D01*
+G37*
+G36*
+X386925Y-80883D02*
+X386925Y-86883D01*
+X380925Y-86883D01*
+X380925Y-80883D01*
+X386925Y-80883D01*
+G37*
+G36*
+X386925Y-91283D02*
+X386925Y-97283D01*
+X380925Y-97283D01*
+X380925Y-91283D01*
+X386925Y-91283D01*
+G37*
+X251000Y-91883D02*
+G54D43*
+D03*
+X945803Y-63465D02*
+G54D43*
+D03*
+X900741Y-32318D02*
+G54D43*
+D03*
+X849941Y-32318D02*
+G54D43*
+D03*
+X756341Y-48318D02*
+G54D43*
+D03*
+X705541Y-48318D02*
+G54D43*
+D03*
+X138741Y-32318D02*
+G54D43*
+D03*
+X87941Y-32318D02*
+G54D43*
+D03*
+X37141Y-32318D02*
+G54D43*
+D03*
+X37141Y-83118D02*
+G54D43*
+D03*
+X87941Y-83118D02*
+G54D43*
+D03*
+X138741Y-83118D02*
+G54D43*
+D03*
+X37141Y-133918D02*
+G54D43*
+D03*
+X87941Y-133918D02*
+G54D43*
+D03*
+X37141Y-184718D02*
+G54D43*
+D03*
+X934841Y-235518D02*
+G54D43*
+D03*
+X934817Y-285708D02*
+G54D43*
+D03*
+X752386Y-283636D02*
+G54D43*
+D03*
+X730941Y-260918D02*
+G54D43*
+D03*
+X726420Y-202290D02*
+G54D43*
+D03*
+X675620Y-202290D02*
+G54D43*
+D03*
+X624820Y-202290D02*
+G54D43*
+D03*
+X574020Y-202290D02*
+G54D43*
+D03*
+X269220Y-151490D02*
+G54D43*
+D03*
+X345420Y-126090D02*
+G54D43*
+D03*
+X428134Y-109358D02*
+G54D43*
+D03*
+X436362Y-66756D02*
+G54D43*
+D03*
+X512501Y-66756D02*
+G54D43*
+D03*
+X560268Y-46690D02*
+G54D43*
+D03*
+X595808Y-46690D02*
+G54D43*
+D03*
+X623683Y-63066D02*
+G54D43*
+D03*
+X655042Y-63415D02*
+G54D43*
+D03*
+X381670Y-40483D02*
+G54D43*
+D03*
+X287032Y-40483D02*
+G54D43*
+D03*
+X381670Y-57373D02*
+G54D43*
+D03*
+X287032Y-57373D02*
+G54D43*
+D03*
+X271418Y-77700D02*
+G54D43*
+D03*
+X309049Y-77700D02*
+G54D43*
+D03*
+X346331Y-77700D02*
+G54D43*
+D03*
+X180902Y-140736D02*
+G54D43*
+D03*
+X223261Y-140467D02*
+G54D43*
+D03*
+X127783Y-194102D02*
+G54D43*
+D03*
+X170142Y-193834D02*
+G54D43*
+D03*
+X87289Y-234021D02*
+G54D43*
+D03*
+X56856Y-274392D02*
+G54D43*
+D03*
+X799141Y-133918D02*
+G54D43*
+D03*
+X640665Y-97738D02*
+G54D43*
+D03*
+X545141Y-505518D02*
+G54D43*
+D03*
+X595941Y-505518D02*
+G54D43*
+D03*
+X646741Y-505518D02*
+G54D43*
+D03*
+X697541Y-505518D02*
+G54D43*
+D03*
+X748341Y-505518D02*
+G54D43*
+D03*
+X799141Y-505518D02*
+G54D43*
+D03*
+X849941Y-505518D02*
+G54D43*
+D03*
+X900741Y-505518D02*
+G54D43*
+D03*
+X216163Y-205341D02*
+G54D43*
+D03*
+X246430Y-204748D02*
+G54D43*
+D03*
+X271653Y-204748D02*
+G54D43*
+D03*
+X296875Y-204748D02*
+G54D43*
+D03*
+X323285Y-204748D02*
+G54D43*
+D03*
+X348211Y-205044D02*
+G54D43*
+D03*
+X373433Y-204748D02*
+G54D43*
+D03*
+X398952Y-204748D02*
+G54D43*
+D03*
+G36*
+X407137Y-499059D02*
+X401137Y-499059D01*
+X401137Y-493059D01*
+X407137Y-493059D01*
+X407137Y-499059D01*
+G37*
+G36*
+X396737Y-499059D02*
+X390737Y-499059D01*
+X390737Y-493059D01*
+X396737Y-493059D01*
+X396737Y-499059D01*
+G37*
+G36*
+X407116Y-482982D02*
+X401116Y-482982D01*
+X401116Y-476982D01*
+X407116Y-476982D01*
+X407116Y-482982D01*
+G37*
+G36*
+X396716Y-482982D02*
+X390716Y-482982D01*
+X390716Y-476982D01*
+X396716Y-476982D01*
+X396716Y-482982D01*
+G37*
+G54D13*
+X560072Y-152531D02*
+X535531Y-152531D01*
+X535000Y-152000D01*
+X331141Y-433518D02*
+G54D43*
+D03*
+X371141Y-457518D02*
+G54D43*
+D03*
+X419141Y-457518D02*
+G54D43*
+D03*
+G36*
+X515333Y-519289D02*
+X502333Y-519289D01*
+X502333Y-506289D01*
+X515333Y-506289D01*
+X515333Y-519289D01*
+G37*
+G36*
+X493583Y-519289D02*
+X480583Y-519289D01*
+X480583Y-506289D01*
+X493583Y-506289D01*
+X493583Y-519289D01*
+G37*
+X849941Y-184718D02*
+G54D43*
+D03*
+X900741Y-184718D02*
+G54D43*
+D03*
+X122741Y-468318D02*
+G54D43*
+D03*
+X71941Y-468318D02*
+G54D43*
+D03*
+X21141Y-468318D02*
+G54D43*
+D03*
+X21141Y-519118D02*
+G54D43*
+D03*
+X71941Y-519118D02*
+G54D43*
+D03*
+X122741Y-519118D02*
+G54D43*
+D03*
+X505541Y-8318D02*
+G54D43*
+D03*
+X577541Y-8318D02*
+G54D43*
+D03*
+X649541Y-8318D02*
+G54D43*
+D03*
+X721541Y-8318D02*
+G54D43*
+D03*
+X860630Y-168070D02*
+G54D46*
+D03*
+X860630Y-143170D02*
+G54D46*
+D03*
+G54D53*
+X860630Y-143170D02*
+X860630Y-76405D01*
+X860425Y-76200D01*
+X900741Y-133918D02*
+G54D43*
+D03*
+M02*
diff --git a/board/famicom_dumper_silkscreen_top.gbr b/board/famicom_dumper_silkscreen_top.gbr
index f0ad9c0..7170ceb 100644
--- a/board/famicom_dumper_silkscreen_top.gbr
+++ b/board/famicom_dumper_silkscreen_top.gbr
@@ -1,1535 +1,1535 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNCOPPER_BOTTOM*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11C, 0.21*%
-%ADD12C, 0.15*%
-%ADD13C, 0.40*%
-%ADD14C, 0.62*%
-%ADD15C, 0.20*%
-%ADD16C, 0.32*%
-%ADD17C, 0.30*%
-%ADD18C, 0.22*%
-%ADD19C, 0.24*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-G54D11*
-X767650Y-70955D02*
-X767650Y-59400D01*
-X773717Y-59400D01*
-G54D11*
-X767650Y-65178D02*
-X773717Y-65178D01*
-G54D11*
-X781228Y-70955D02*
-X781228Y-59400D01*
-G54D11*
-X777761Y-59400D02*
-X784695Y-59400D01*
-G54D11*
-X795672Y-70955D02*
-X788738Y-70955D01*
-X788738Y-70233D01*
-X789605Y-68789D01*
-X794805Y-64455D01*
-X795672Y-63011D01*
-X795672Y-61566D01*
-X794805Y-60122D01*
-X793072Y-59400D01*
-X791338Y-59400D01*
-X789605Y-60122D01*
-X788738Y-61566D01*
-G54D11*
-X799715Y-61566D02*
-X800582Y-60122D01*
-X802315Y-59400D01*
-X804049Y-59400D01*
-X805782Y-60122D01*
-X806649Y-61566D01*
-X806649Y-63011D01*
-X805782Y-64455D01*
-X804049Y-65178D01*
-X805782Y-65900D01*
-X806649Y-67344D01*
-X806649Y-68789D01*
-X805782Y-70233D01*
-X804049Y-70955D01*
-X802315Y-70955D01*
-X800582Y-70233D01*
-X799715Y-68789D01*
-G54D11*
-X817626Y-70955D02*
-X810692Y-70955D01*
-X810692Y-70233D01*
-X811559Y-68789D01*
-X816759Y-64455D01*
-X817626Y-63011D01*
-X817626Y-61566D01*
-X816759Y-60122D01*
-X815026Y-59400D01*
-X813292Y-59400D01*
-X811559Y-60122D01*
-X810692Y-61566D01*
-G54D11*
-X825136Y-65178D02*
-X827736Y-66622D01*
-X828603Y-68066D01*
-X828603Y-70955D01*
-G54D11*
-X821669Y-70955D02*
-X821669Y-59400D01*
-X826003Y-59400D01*
-X827736Y-60122D01*
-X828603Y-61566D01*
-X828603Y-63011D01*
-X827736Y-64455D01*
-X826003Y-65178D01*
-X821669Y-65178D01*
-G54D11*
-X832646Y-59400D02*
-X832646Y-70955D01*
-X838713Y-70955D01*
-G54D12*
-X862170Y-117133D02*
-X742170Y-117133D01*
-X742170Y-17133D01*
-X862170Y-17133D01*
-X862170Y-117133D01*
-G54D13*
-G75*
-G01X759143Y-91946D02*
-G03X759143Y-91946I-4000J0D01*
-G01*
-G54D13*
-X880903Y-379649D02*
-X68103Y-379649D01*
-X68103Y-303449D01*
-X880903Y-303449D01*
-X880903Y-379649D01*
-G54D13*
-G75*
-G01X529411Y-74572D02*
-G03X529411Y-74572I5000J0D01*
-G01*
-G54D12*
-X730111Y-58448D02*
-X738050Y-58448D01*
-X738050Y-77612D01*
-X730111Y-77612D01*
-X730111Y-58448D01*
-G54D12*
-X852815Y-8018D02*
-X852815Y-15956D01*
-X833651Y-15956D01*
-X833651Y-8018D01*
-X852815Y-8018D01*
-G54D13*
-X306600Y-525150D02*
-X306600Y-436250D01*
-X227832Y-436205D01*
-G54D13*
-X306600Y-525150D02*
-X103400Y-525150D01*
-X103400Y-436250D01*
-X181578Y-436212D01*
-G54D12*
-X227832Y-436205D02*
-X181578Y-436212D01*
-G54D14*
-X402381Y-434146D02*
-X402381Y-399479D01*
-X420581Y-399479D01*
-G54D14*
-X402381Y-416813D02*
-X420581Y-416813D01*
-G54D14*
-X443114Y-416813D02*
-X450914Y-421146D01*
-X453514Y-425479D01*
-X453514Y-434146D01*
-G54D14*
-X432714Y-434146D02*
-X432714Y-399479D01*
-X445714Y-399479D01*
-X450914Y-401646D01*
-X453514Y-405979D01*
-X453514Y-410313D01*
-X450914Y-414646D01*
-X445714Y-416813D01*
-X432714Y-416813D01*
-G54D14*
-X486447Y-405979D02*
-X486447Y-427646D01*
-X483847Y-431979D01*
-X478647Y-434146D01*
-X473447Y-434146D01*
-X468247Y-431979D01*
-X465647Y-427646D01*
-X465647Y-405979D01*
-X468247Y-401646D01*
-X473447Y-399479D01*
-X478647Y-399479D01*
-X483847Y-401646D01*
-X486447Y-405979D01*
-G54D14*
-X498580Y-434146D02*
-X498580Y-399479D01*
-X519380Y-434146D01*
-X519380Y-399479D01*
-G54D14*
-X541913Y-434146D02*
-X541913Y-399479D01*
-G54D14*
-X531513Y-399479D02*
-X552313Y-399479D01*
-G54D12*
-X588044Y-86323D02*
-X580105Y-86323D01*
-X580105Y-67160D01*
-X588044Y-67160D01*
-X588044Y-86323D01*
-G54D12*
-X387886Y-98679D02*
-X379947Y-98679D01*
-X379947Y-79515D01*
-X387886Y-79515D01*
-X387886Y-98679D01*
-G54D11*
-X440774Y-114955D02*
-X445108Y-103400D01*
-X449441Y-114955D01*
-G54D11*
-X442508Y-110622D02*
-X447708Y-110622D01*
-G54D11*
-X456952Y-114955D02*
-X456952Y-103400D01*
-G54D11*
-X453485Y-103400D02*
-X460419Y-103400D01*
-G54D11*
-X464462Y-114955D02*
-X464462Y-103400D01*
-X468796Y-110622D01*
-X473129Y-103400D01*
-X473129Y-114955D01*
-G54D11*
-X483240Y-114955D02*
-X477173Y-114955D01*
-X477173Y-103400D01*
-X483240Y-103400D01*
-G54D11*
-X477173Y-109178D02*
-X483240Y-109178D01*
-G54D11*
-X490751Y-109178D02*
-X494218Y-109178D01*
-X494218Y-112789D01*
-X493351Y-114233D01*
-X491618Y-114955D01*
-X489884Y-114955D01*
-X488151Y-114233D01*
-X487284Y-112789D01*
-X487284Y-105566D01*
-X488151Y-104122D01*
-X489884Y-103400D01*
-X491618Y-103400D01*
-X493351Y-104122D01*
-X494218Y-105566D01*
-G54D11*
-X498261Y-114955D02*
-X502595Y-103400D01*
-X506928Y-114955D01*
-G54D11*
-X499995Y-110622D02*
-X505195Y-110622D01*
-G54D11*
-X517906Y-105566D02*
-X517039Y-104122D01*
-X515306Y-103400D01*
-X513572Y-103400D01*
-X511839Y-104122D01*
-X510972Y-105566D01*
-X510972Y-109178D01*
-X510972Y-109900D01*
-X513572Y-108455D01*
-X515306Y-108455D01*
-X517039Y-109178D01*
-X517906Y-110622D01*
-X517906Y-112789D01*
-X517039Y-114233D01*
-X515306Y-114955D01*
-X513572Y-114955D01*
-X511839Y-114233D01*
-X510972Y-112789D01*
-X510972Y-109178D01*
-G54D11*
-X527149Y-114955D02*
-X527149Y-103400D01*
-X521949Y-110622D01*
-X521949Y-112066D01*
-X528883Y-112066D01*
-G54D15*
-X418200Y-58400D02*
-X550200Y-58400D01*
-X550200Y-190400D01*
-X418200Y-190400D01*
-X418200Y-58400D01*
-G54D16*
-X145604Y-405883D02*
-X145604Y-420328D01*
-X144271Y-422550D01*
-X141604Y-423661D01*
-X138937Y-423661D01*
-X136271Y-422550D01*
-X134937Y-420328D01*
-G54D16*
-X157160Y-423661D02*
-X157160Y-405883D01*
-G54D16*
-X151826Y-405883D02*
-X162493Y-405883D01*
-G54D16*
-X168715Y-423661D02*
-X175382Y-405883D01*
-X182049Y-423661D01*
-G54D16*
-X171382Y-416994D02*
-X179382Y-416994D01*
-G54D16*
-X193604Y-414772D02*
-X198937Y-414772D01*
-X198937Y-420328D01*
-X197604Y-422550D01*
-X194937Y-423661D01*
-X192270Y-423661D01*
-X189604Y-422550D01*
-X188270Y-420328D01*
-X188270Y-409217D01*
-X189604Y-406994D01*
-X192270Y-405883D01*
-X194937Y-405883D01*
-X197604Y-406994D01*
-X198937Y-409217D01*
-G54D16*
-X205159Y-423661D02*
-X215826Y-405883D01*
-G54D16*
-X227382Y-414772D02*
-X232715Y-414772D01*
-X232715Y-420328D01*
-X231382Y-422550D01*
-X228715Y-423661D01*
-X226048Y-423661D01*
-X223382Y-422550D01*
-X222048Y-420328D01*
-X222048Y-409217D01*
-X223382Y-406994D01*
-X226048Y-405883D01*
-X228715Y-405883D01*
-X231382Y-406994D01*
-X232715Y-409217D01*
-G54D16*
-X238937Y-423661D02*
-X238937Y-405883D01*
-X245604Y-405883D01*
-X248271Y-406994D01*
-X249604Y-409217D01*
-X249604Y-411439D01*
-X248271Y-413661D01*
-X245604Y-414772D01*
-X238937Y-414772D01*
-G54D16*
-X255826Y-423661D02*
-X255826Y-405883D01*
-G54D16*
-X272715Y-409217D02*
-X272715Y-420328D01*
-X271382Y-422550D01*
-X268715Y-423661D01*
-X266048Y-423661D01*
-X263382Y-422550D01*
-X262048Y-420328D01*
-X262048Y-409217D01*
-X263382Y-406994D01*
-X266048Y-405883D01*
-X268715Y-405883D01*
-X271382Y-406994D01*
-X272715Y-409217D01*
-G54D12*
-X389342Y-500020D02*
-X389342Y-492082D01*
-X408505Y-492082D01*
-X408505Y-500020D01*
-X389342Y-500020D01*
-G54D12*
-X389320Y-483944D02*
-X389320Y-476005D01*
-X408483Y-476005D01*
-X408483Y-483944D01*
-X389320Y-483944D01*
-G54D12*
-X430911Y-504000D02*
-X468922Y-504000D01*
-X468922Y-521581D01*
-X430911Y-521581D01*
-X430911Y-504000D01*
-G54D12*
-X516922Y-521481D02*
-X478911Y-521481D01*
-X478911Y-503900D01*
-X516922Y-503900D01*
-X516922Y-521481D01*
-G54D16*
-X27998Y-33047D02*
-X27998Y-15269D01*
-X37332Y-15269D01*
-G54D16*
-X27998Y-24158D02*
-X37332Y-24158D01*
-G54D16*
-X43553Y-24158D02*
-X46220Y-23047D01*
-X49420Y-23047D01*
-X51553Y-25269D01*
-X51553Y-33047D01*
-G54D16*
-X51553Y-29714D02*
-X50220Y-27491D01*
-X47553Y-27047D01*
-X44887Y-27491D01*
-X43553Y-29714D01*
-X44087Y-31936D01*
-X46220Y-33047D01*
-X47553Y-33047D01*
-X48087Y-33047D01*
-X50220Y-31936D01*
-X51553Y-29714D01*
-G54D16*
-X57775Y-33047D02*
-X57775Y-23047D01*
-G54D16*
-X57775Y-24825D02*
-X60442Y-23047D01*
-X63109Y-23714D01*
-X64442Y-25269D01*
-X64442Y-33047D01*
-G54D16*
-X64442Y-24825D02*
-X67109Y-23047D01*
-X69775Y-23714D01*
-X71109Y-25269D01*
-X71109Y-33047D01*
-G54D16*
-X77330Y-33047D02*
-X77330Y-23047D01*
-G54D16*
-X77330Y-19714D02*
-X77330Y-19714D01*
-G54D16*
-X90219Y-23714D02*
-X87552Y-23047D01*
-X84886Y-23714D01*
-X83552Y-25936D01*
-X83552Y-30380D01*
-X84886Y-32602D01*
-X87552Y-33047D01*
-X90219Y-32602D01*
-G54D16*
-X104441Y-30380D02*
-X104441Y-25936D01*
-X103108Y-23714D01*
-X100441Y-23047D01*
-X97775Y-23714D01*
-X96441Y-25936D01*
-X96441Y-30380D01*
-X97775Y-32602D01*
-X100441Y-33047D01*
-X103108Y-32602D01*
-X104441Y-30380D01*
-G54D16*
-X110663Y-33047D02*
-X110663Y-23047D01*
-G54D16*
-X110663Y-24825D02*
-X113330Y-23047D01*
-X115997Y-23714D01*
-X117330Y-25269D01*
-X117330Y-33047D01*
-G54D16*
-X117330Y-24825D02*
-X119997Y-23047D01*
-X122663Y-23714D01*
-X123997Y-25269D01*
-X123997Y-33047D01*
-G54D16*
-X136707Y-33047D02*
-X136707Y-15269D01*
-X143374Y-15269D01*
-X146041Y-16380D01*
-X147374Y-18602D01*
-X147374Y-29714D01*
-X146041Y-31936D01*
-X143374Y-33047D01*
-X136707Y-33047D01*
-G54D16*
-X161596Y-23047D02*
-X161596Y-33047D01*
-G54D16*
-X161596Y-30825D02*
-X160263Y-32602D01*
-X157596Y-33047D01*
-X154930Y-32602D01*
-X153596Y-30825D01*
-X153596Y-23047D01*
-G54D16*
-X167818Y-33047D02*
-X167818Y-23047D01*
-G54D16*
-X167818Y-24825D02*
-X170485Y-23047D01*
-X173152Y-23714D01*
-X174485Y-25269D01*
-X174485Y-33047D01*
-G54D16*
-X174485Y-24825D02*
-X177152Y-23047D01*
-X179818Y-23714D01*
-X181152Y-25269D01*
-X181152Y-33047D01*
-G54D16*
-X187373Y-23047D02*
-X187373Y-37491D01*
-G54D16*
-X187373Y-29714D02*
-X188707Y-32602D01*
-X191373Y-33047D01*
-X194040Y-32602D01*
-X195373Y-30380D01*
-X195373Y-25936D01*
-X194040Y-23714D01*
-X191373Y-23047D01*
-X188707Y-23714D01*
-X187373Y-26380D01*
-G54D16*
-X209595Y-31936D02*
-X207462Y-33047D01*
-X204795Y-33047D01*
-X202129Y-31936D01*
-X201595Y-29714D01*
-X201595Y-25936D01*
-X202929Y-23714D01*
-X205595Y-23047D01*
-X208262Y-23714D01*
-X209595Y-25269D01*
-X209595Y-27491D01*
-X201595Y-27491D01*
-G54D16*
-X215817Y-33047D02*
-X215817Y-23047D01*
-G54D16*
-X215817Y-25269D02*
-X218484Y-23047D01*
-X221151Y-23047D01*
-G54D16*
-X227372Y-33047D02*
-X238039Y-15269D01*
-G54D16*
-X244261Y-33047D02*
-X244261Y-15269D01*
-X250928Y-15269D01*
-X253595Y-16380D01*
-X254928Y-18602D01*
-X254928Y-20825D01*
-X253595Y-23047D01*
-X250928Y-24158D01*
-X244261Y-24158D01*
-G54D16*
-X261150Y-33047D02*
-X261150Y-23047D01*
-G54D16*
-X261150Y-25269D02*
-X263817Y-23047D01*
-X266484Y-23047D01*
-G54D16*
-X280705Y-30380D02*
-X280705Y-25936D01*
-X279372Y-23714D01*
-X276705Y-23047D01*
-X274039Y-23714D01*
-X272705Y-25936D01*
-X272705Y-30380D01*
-X274039Y-32602D01*
-X276705Y-33047D01*
-X279372Y-32602D01*
-X280705Y-30380D01*
-G54D16*
-X286927Y-36380D02*
-X289594Y-37491D01*
-X291461Y-37491D01*
-X294127Y-36380D01*
-X294927Y-34158D01*
-X294927Y-23047D01*
-G54D16*
-X294927Y-25936D02*
-X293594Y-23714D01*
-X290927Y-23047D01*
-X288261Y-23714D01*
-X286927Y-25936D01*
-X286927Y-30380D01*
-X288261Y-32602D01*
-X290927Y-33047D01*
-X293594Y-32602D01*
-X294927Y-30380D01*
-G54D16*
-X301149Y-33047D02*
-X301149Y-23047D01*
-G54D16*
-X301149Y-25269D02*
-X303816Y-23047D01*
-X306483Y-23047D01*
-G54D16*
-X312704Y-24158D02*
-X315371Y-23047D01*
-X318571Y-23047D01*
-X320704Y-25269D01*
-X320704Y-33047D01*
-G54D16*
-X320704Y-29714D02*
-X319371Y-27491D01*
-X316704Y-27047D01*
-X314038Y-27491D01*
-X312704Y-29714D01*
-X313238Y-31936D01*
-X315371Y-33047D01*
-X316704Y-33047D01*
-X317238Y-33047D01*
-X319371Y-31936D01*
-X320704Y-29714D01*
-G54D16*
-X326926Y-33047D02*
-X326926Y-23047D01*
-G54D16*
-X326926Y-24825D02*
-X329593Y-23047D01*
-X332260Y-23714D01*
-X333593Y-25269D01*
-X333593Y-33047D01*
-G54D16*
-X333593Y-24825D02*
-X336260Y-23047D01*
-X338926Y-23714D01*
-X340260Y-25269D01*
-X340260Y-33047D01*
-G54D16*
-X346481Y-33047D02*
-X346481Y-23047D01*
-G54D16*
-X346481Y-24825D02*
-X349148Y-23047D01*
-X351815Y-23714D01*
-X353148Y-25269D01*
-X353148Y-33047D01*
-G54D16*
-X353148Y-24825D02*
-X355815Y-23047D01*
-X358481Y-23714D01*
-X359815Y-25269D01*
-X359815Y-33047D01*
-G54D16*
-X374036Y-31936D02*
-X371903Y-33047D01*
-X369236Y-33047D01*
-X366570Y-31936D01*
-X366036Y-29714D01*
-X366036Y-25936D01*
-X367370Y-23714D01*
-X370036Y-23047D01*
-X372703Y-23714D01*
-X374036Y-25269D01*
-X374036Y-27491D01*
-X366036Y-27491D01*
-G54D16*
-X380258Y-33047D02*
-X380258Y-23047D01*
-G54D16*
-X380258Y-25269D02*
-X382925Y-23047D01*
-X385592Y-23047D01*
-G54D17*
-X131986Y-61997D02*
-X131986Y-45108D01*
-G54D17*
-X131986Y-55242D02*
-X133253Y-53130D01*
-X135786Y-52497D01*
-X138320Y-53130D01*
-X139586Y-55242D01*
-X139586Y-59464D01*
-X138320Y-61575D01*
-X135786Y-61997D01*
-X133253Y-61575D01*
-X131986Y-59464D01*
-G54D17*
-X145497Y-52497D02*
-X150564Y-61997D01*
-X155630Y-52497D01*
-G54D17*
-X150564Y-61997D02*
-X149297Y-65164D01*
-X148030Y-66219D01*
-X146764Y-66219D01*
-G54D17*
-X167705Y-61997D02*
-X174038Y-45108D01*
-X180372Y-61997D01*
-G54D17*
-X170238Y-55664D02*
-X177838Y-55664D01*
-G54D17*
-X186283Y-61997D02*
-X186283Y-45108D01*
-G54D17*
-X199794Y-60942D02*
-X197768Y-61997D01*
-X195234Y-61997D01*
-X192701Y-60942D01*
-X192194Y-58830D01*
-X192194Y-55242D01*
-X193461Y-53130D01*
-X195994Y-52497D01*
-X198528Y-53130D01*
-X199794Y-54608D01*
-X199794Y-56719D01*
-X192194Y-56719D01*
-G54D17*
-X205705Y-52497D02*
-X215838Y-61997D01*
-G54D17*
-X205705Y-61997D02*
-X215838Y-52497D01*
-G54D17*
-X229349Y-60942D02*
-X227322Y-61997D01*
-X224789Y-61997D01*
-X222256Y-60942D01*
-X221749Y-58830D01*
-X221749Y-55242D01*
-X223016Y-53130D01*
-X225549Y-52497D01*
-X228082Y-53130D01*
-X229349Y-54608D01*
-X229349Y-56719D01*
-X221749Y-56719D01*
-G54D17*
-X235260Y-52497D02*
-X240327Y-61997D01*
-X245394Y-52497D01*
-G54D17*
-X240327Y-61997D02*
-X239060Y-65164D01*
-X237794Y-66219D01*
-X236527Y-66219D01*
-G54D17*
-X257468Y-61997D02*
-X263802Y-45108D01*
-X270135Y-61997D01*
-G54D17*
-X260002Y-55664D02*
-X267602Y-55664D01*
-G54D17*
-X276046Y-52497D02*
-X281113Y-61997D01*
-X286180Y-52497D01*
-G54D17*
-X299690Y-61997D02*
-X299690Y-45108D01*
-G54D17*
-X299690Y-55242D02*
-X298424Y-53130D01*
-X295890Y-52497D01*
-X293357Y-53130D01*
-X292090Y-55242D01*
-X292090Y-59464D01*
-X293357Y-61575D01*
-X295890Y-61997D01*
-X298424Y-61575D01*
-X299690Y-59464D01*
-G54D17*
-X305601Y-52497D02*
-X310668Y-61997D01*
-X315734Y-52497D01*
-G54D17*
-X310668Y-61997D02*
-X309401Y-65164D01*
-X308134Y-66219D01*
-X306868Y-66219D01*
-G54D17*
-X329245Y-52497D02*
-X329245Y-61997D01*
-G54D17*
-X329245Y-59886D02*
-X327978Y-61575D01*
-X325445Y-61997D01*
-X322912Y-61575D01*
-X321645Y-59886D01*
-X321645Y-52497D01*
-G54D17*
-X335156Y-61997D02*
-X335156Y-45108D01*
-G54D17*
-X338956Y-55664D02*
-X342756Y-61997D01*
-G54D17*
-X335156Y-57775D02*
-X342756Y-52497D01*
-G54D17*
-X348667Y-61997D02*
-X348667Y-45108D01*
-G54D17*
-X348667Y-55242D02*
-X349934Y-53130D01*
-X352467Y-52497D01*
-X355001Y-53130D01*
-X356267Y-55242D01*
-X356267Y-61997D01*
-G54D17*
-X362178Y-61997D02*
-X362178Y-52497D01*
-G54D17*
-X362178Y-49330D02*
-X362178Y-49330D01*
-G54D17*
-X368089Y-61997D02*
-X368089Y-52497D01*
-G54D17*
-X368089Y-54608D02*
-X369356Y-53130D01*
-X371889Y-52497D01*
-X374422Y-53130D01*
-X375689Y-54608D01*
-X375689Y-61997D01*
-G54D17*
-X220690Y-76556D02*
-X223224Y-75500D01*
-X226264Y-75500D01*
-X228290Y-77611D01*
-X228290Y-85000D01*
-G54D17*
-X228290Y-81833D02*
-X227024Y-79722D01*
-X224490Y-79300D01*
-X221957Y-79722D01*
-X220690Y-81833D01*
-X221197Y-83944D01*
-X223224Y-85000D01*
-X224490Y-85000D01*
-X224997Y-85000D01*
-X227024Y-83944D01*
-X228290Y-81833D01*
-G54D17*
-X234201Y-85000D02*
-X234201Y-68111D01*
-G54D17*
-X238001Y-78667D02*
-X241801Y-85000D01*
-G54D17*
-X234201Y-80778D02*
-X241801Y-75500D01*
-G54D17*
-X247712Y-76556D02*
-X250246Y-75500D01*
-X253286Y-75500D01*
-X255312Y-77611D01*
-X255312Y-85000D01*
-G54D17*
-X255312Y-81833D02*
-X254046Y-79722D01*
-X251512Y-79300D01*
-X248979Y-79722D01*
-X247712Y-81833D01*
-X248219Y-83944D01*
-X250246Y-85000D01*
-X251512Y-85000D01*
-X252019Y-85000D01*
-X254046Y-83944D01*
-X255312Y-81833D01*
-G54D17*
-X277521Y-81833D02*
-X276254Y-83944D01*
-X273721Y-85000D01*
-X271187Y-85000D01*
-X268654Y-83944D01*
-X267387Y-81833D01*
-X267387Y-71278D01*
-X268654Y-69167D01*
-X271187Y-68111D01*
-X273721Y-68111D01*
-X276254Y-69167D01*
-X277521Y-71278D01*
-G54D17*
-X283431Y-85000D02*
-X283431Y-68111D01*
-G54D17*
-X296942Y-75500D02*
-X296942Y-85000D01*
-G54D17*
-X296942Y-82889D02*
-X295676Y-84578D01*
-X293142Y-85000D01*
-X290609Y-84578D01*
-X289342Y-82889D01*
-X289342Y-75500D01*
-G54D17*
-X302853Y-83944D02*
-X305387Y-85000D01*
-X307920Y-85000D01*
-X310453Y-83944D01*
-X310453Y-81833D01*
-X309187Y-80778D01*
-X304120Y-79722D01*
-X302853Y-78667D01*
-X302853Y-76556D01*
-X305387Y-75500D01*
-X307920Y-75500D01*
-X310453Y-76556D01*
-G54D17*
-X318898Y-68111D02*
-X318898Y-83944D01*
-X320164Y-85000D01*
-X321431Y-84578D01*
-G54D17*
-X316364Y-75500D02*
-X321431Y-75500D01*
-G54D17*
-X334942Y-83944D02*
-X332916Y-85000D01*
-X330382Y-85000D01*
-X327849Y-83944D01*
-X327342Y-81833D01*
-X327342Y-78244D01*
-X328609Y-76133D01*
-X331142Y-75500D01*
-X333676Y-76133D01*
-X334942Y-77611D01*
-X334942Y-79722D01*
-X327342Y-79722D01*
-G54D17*
-X340853Y-85000D02*
-X340853Y-75500D01*
-G54D17*
-X340853Y-77611D02*
-X343387Y-75500D01*
-X345920Y-75500D01*
-G54D16*
-X564210Y-488975D02*
-X564210Y-471197D01*
-G54D16*
-X574877Y-488975D02*
-X574877Y-471197D01*
-G54D16*
-X564210Y-480086D02*
-X574877Y-480086D01*
-G54D16*
-X586433Y-488975D02*
-X586433Y-471197D01*
-G54D16*
-X581099Y-471197D02*
-X591766Y-471197D01*
-G54D16*
-X603322Y-488975D02*
-X603322Y-471197D01*
-G54D16*
-X597988Y-471197D02*
-X608655Y-471197D01*
-G54D16*
-X614877Y-488975D02*
-X614877Y-471197D01*
-X621544Y-471197D01*
-X624211Y-472308D01*
-X625544Y-474530D01*
-X625544Y-476753D01*
-X624211Y-478975D01*
-X621544Y-480086D01*
-X614877Y-480086D01*
-G54D16*
-X631766Y-488975D02*
-X631766Y-488975D01*
-G54D16*
-X631766Y-478975D02*
-X631766Y-478975D01*
-G54D16*
-X637988Y-488975D02*
-X648655Y-471197D01*
-G54D16*
-X654877Y-488975D02*
-X665544Y-471197D01*
-G54D16*
-X682433Y-485642D02*
-X681100Y-487864D01*
-X678433Y-488975D01*
-X675766Y-488975D01*
-X673100Y-487864D01*
-X671766Y-485642D01*
-X671766Y-474530D01*
-X673100Y-472308D01*
-X675766Y-471197D01*
-X678433Y-471197D01*
-X681100Y-472308D01*
-X682433Y-474530D01*
-G54D16*
-X688655Y-471197D02*
-X688655Y-488975D01*
-X697989Y-488975D01*
-G54D16*
-X704210Y-471197D02*
-X704210Y-485642D01*
-X705544Y-487864D01*
-X708210Y-488975D01*
-X710877Y-488975D01*
-X713544Y-487864D01*
-X714877Y-485642D01*
-X714877Y-471197D01*
-G54D16*
-X721099Y-485642D02*
-X722433Y-487864D01*
-X725099Y-488975D01*
-X727766Y-488975D01*
-X730433Y-487864D01*
-X731766Y-485642D01*
-X731766Y-483419D01*
-X730433Y-481197D01*
-X727766Y-480086D01*
-X725099Y-480086D01*
-X722433Y-478975D01*
-X721099Y-476753D01*
-X721099Y-474530D01*
-X722433Y-472308D01*
-X725099Y-471197D01*
-X727766Y-471197D01*
-X730433Y-472308D01*
-X731766Y-474530D01*
-G54D16*
-X743322Y-488975D02*
-X743322Y-471197D01*
-G54D16*
-X737988Y-471197D02*
-X748655Y-471197D01*
-G54D16*
-X764211Y-488975D02*
-X754877Y-488975D01*
-X754877Y-471197D01*
-X764211Y-471197D01*
-G54D16*
-X754877Y-480086D02*
-X764211Y-480086D01*
-G54D16*
-X775766Y-480086D02*
-X779766Y-482308D01*
-X781099Y-484530D01*
-X781099Y-488975D01*
-G54D16*
-X770432Y-488975D02*
-X770432Y-471197D01*
-X777099Y-471197D01*
-X779766Y-472308D01*
-X781099Y-474530D01*
-X781099Y-476753D01*
-X779766Y-478975D01*
-X777099Y-480086D01*
-X770432Y-480086D01*
-G54D16*
-X792655Y-480086D02*
-X796655Y-482308D01*
-X797988Y-484530D01*
-X797988Y-488975D01*
-G54D16*
-X787321Y-488975D02*
-X787321Y-471197D01*
-X793988Y-471197D01*
-X796655Y-472308D01*
-X797988Y-474530D01*
-X797988Y-476753D01*
-X796655Y-478975D01*
-X793988Y-480086D01*
-X787321Y-480086D01*
-G54D16*
-X809544Y-480086D02*
-X813544Y-482308D01*
-X814877Y-484530D01*
-X814877Y-488975D01*
-G54D16*
-X804210Y-488975D02*
-X804210Y-471197D01*
-X810877Y-471197D01*
-X813544Y-472308D01*
-X814877Y-474530D01*
-X814877Y-476753D01*
-X813544Y-478975D01*
-X810877Y-480086D01*
-X804210Y-480086D01*
-G54D16*
-X821099Y-488975D02*
-X821099Y-488975D01*
-G54D16*
-X837988Y-485642D02*
-X836655Y-487864D01*
-X833988Y-488975D01*
-X831321Y-488975D01*
-X828655Y-487864D01*
-X827321Y-485642D01*
-X827321Y-474530D01*
-X828655Y-472308D01*
-X831321Y-471197D01*
-X833988Y-471197D01*
-X836655Y-472308D01*
-X837988Y-474530D01*
-G54D16*
-X854877Y-474530D02*
-X854877Y-485642D01*
-X853544Y-487864D01*
-X850877Y-488975D01*
-X848210Y-488975D01*
-X845544Y-487864D01*
-X844210Y-485642D01*
-X844210Y-474530D01*
-X845544Y-472308D01*
-X848210Y-471197D01*
-X850877Y-471197D01*
-X853544Y-472308D01*
-X854877Y-474530D01*
-G54D16*
-X861099Y-488975D02*
-X861099Y-471197D01*
-X867766Y-482308D01*
-X874433Y-471197D01*
-X874433Y-488975D01*
-G54D12*
-X847930Y-139370D02*
-X847930Y-146970D01*
-G54D12*
-X851730Y-143170D02*
-X844130Y-143170D01*
-G54D12*
-G75*
-G01X860630Y-124125D02*
-G03X860630Y-124125I0J-31450D01*
-G01*
-G54D11*
-X579427Y-53222D02*
-X579427Y-60444D01*
-X578560Y-61889D01*
-X576827Y-62611D01*
-X575094Y-62611D01*
-X573360Y-61889D01*
-X572494Y-60444D01*
-X572494Y-53222D01*
-X573360Y-51778D01*
-X575094Y-51055D01*
-X576827Y-51055D01*
-X578560Y-51778D01*
-X579427Y-53222D01*
-G54D11*
-X583470Y-62611D02*
-X583470Y-62611D01*
-G54D11*
-X587514Y-55389D02*
-X591848Y-51055D01*
-X591848Y-62611D01*
-G54D11*
-X601092Y-56111D02*
-X601092Y-62611D01*
-G54D11*
-X601092Y-61167D02*
-X600225Y-62322D01*
-X598492Y-62611D01*
-X596758Y-62322D01*
-X595892Y-61167D01*
-X595892Y-56111D01*
-G54D11*
-X605136Y-62611D02*
-X605136Y-51055D01*
-X611202Y-51055D01*
-G54D11*
-X605136Y-56833D02*
-X611202Y-56833D01*
-G54D18*
-X689599Y-65644D02*
-X689599Y-73422D01*
-X688665Y-74977D01*
-X686799Y-75755D01*
-X684932Y-75755D01*
-X683065Y-74977D01*
-X682132Y-73422D01*
-X682132Y-65644D01*
-X683065Y-64088D01*
-X684932Y-63311D01*
-X686799Y-63311D01*
-X688665Y-64088D01*
-X689599Y-65644D01*
-G54D18*
-X693955Y-75755D02*
-X693955Y-75755D01*
-G54D18*
-X698311Y-67977D02*
-X702978Y-63311D01*
-X702978Y-75755D01*
-G54D18*
-X712934Y-68755D02*
-X712934Y-75755D01*
-G54D18*
-X712934Y-74199D02*
-X712001Y-75444D01*
-X710134Y-75755D01*
-X708267Y-75444D01*
-X707334Y-74199D01*
-X707334Y-68755D01*
-G54D18*
-X717290Y-75755D02*
-X717290Y-63311D01*
-X723823Y-63311D01*
-G54D18*
-X717290Y-69533D02*
-X723823Y-69533D01*
-G54D11*
-X798502Y-5597D02*
-X798502Y-12819D01*
-X797635Y-14264D01*
-X795902Y-14986D01*
-X794168Y-14986D01*
-X792435Y-14264D01*
-X791568Y-12819D01*
-X791568Y-5597D01*
-X792435Y-4153D01*
-X794168Y-3430D01*
-X795902Y-3430D01*
-X797635Y-4153D01*
-X798502Y-5597D01*
-G54D11*
-X802546Y-14986D02*
-X802546Y-14986D01*
-G54D11*
-X806590Y-7764D02*
-X810923Y-3430D01*
-X810923Y-14986D01*
-G54D11*
-X820166Y-8486D02*
-X820166Y-14986D01*
-G54D11*
-X820166Y-13542D02*
-X819300Y-14697D01*
-X817566Y-14986D01*
-X815833Y-14697D01*
-X814966Y-13542D01*
-X814966Y-8486D01*
-G54D11*
-X824210Y-14986D02*
-X824210Y-3430D01*
-X830277Y-3430D01*
-G54D11*
-X824210Y-9208D02*
-X830277Y-9208D01*
-G54D19*
-X788248Y-161925D02*
-X788248Y-148592D01*
-X782248Y-156925D01*
-X782248Y-158592D01*
-X790248Y-158592D01*
-G54D19*
-X794916Y-161925D02*
-X794916Y-161925D01*
-G54D19*
-X799582Y-148592D02*
-X807582Y-148592D01*
-X806582Y-150258D01*
-X804582Y-152758D01*
-X802582Y-156092D01*
-X801582Y-158592D01*
-X801582Y-161925D01*
-G54D19*
-X818250Y-154425D02*
-X818250Y-161925D01*
-G54D19*
-X818250Y-160258D02*
-X817250Y-161592D01*
-X815250Y-161925D01*
-X813250Y-161592D01*
-X812250Y-160258D01*
-X812250Y-154425D01*
-G54D19*
-X822916Y-161925D02*
-X822916Y-148592D01*
-X829916Y-148592D01*
-G54D19*
-X822916Y-155258D02*
-X829916Y-155258D01*
-G54D11*
-X359808Y-482908D02*
-X352874Y-482908D01*
-X352874Y-482185D01*
-X353741Y-480741D01*
-X358941Y-476408D01*
-X359808Y-474963D01*
-X359808Y-473519D01*
-X358941Y-472074D01*
-X357208Y-471352D01*
-X355474Y-471352D01*
-X353741Y-472074D01*
-X352874Y-473519D01*
-G54D11*
-X370785Y-473519D02*
-X370785Y-480741D01*
-X369918Y-482185D01*
-X368185Y-482908D01*
-X366451Y-482908D01*
-X364718Y-482185D01*
-X363851Y-480741D01*
-X363851Y-473519D01*
-X364718Y-472074D01*
-X366451Y-471352D01*
-X368185Y-471352D01*
-X369918Y-472074D01*
-X370785Y-473519D01*
-G54D11*
-X381762Y-473519D02*
-X381762Y-480741D01*
-X380895Y-482185D01*
-X379162Y-482908D01*
-X377428Y-482908D01*
-X375695Y-482185D01*
-X374828Y-480741D01*
-X374828Y-473519D01*
-X375695Y-472074D01*
-X377428Y-471352D01*
-X379162Y-471352D01*
-X380895Y-472074D01*
-X381762Y-473519D01*
-G54D11*
-X360795Y-507320D02*
-X353862Y-507320D01*
-X353862Y-506598D01*
-X354728Y-505153D01*
-X359928Y-500820D01*
-X360795Y-499375D01*
-X360795Y-497931D01*
-X359928Y-496486D01*
-X358195Y-495764D01*
-X356462Y-495764D01*
-X354728Y-496486D01*
-X353862Y-497931D01*
-G54D11*
-X371772Y-497931D02*
-X371772Y-505153D01*
-X370905Y-506598D01*
-X369172Y-507320D01*
-X367439Y-507320D01*
-X365705Y-506598D01*
-X364839Y-505153D01*
-X364839Y-497931D01*
-X365705Y-496486D01*
-X367439Y-495764D01*
-X369172Y-495764D01*
-X370905Y-496486D01*
-X371772Y-497931D01*
-G54D11*
-X382749Y-497931D02*
-X382749Y-505153D01*
-X381882Y-506598D01*
-X380149Y-507320D01*
-X378416Y-507320D01*
-X376682Y-506598D01*
-X375816Y-505153D01*
-X375816Y-497931D01*
-X376682Y-496486D01*
-X378416Y-495764D01*
-X380149Y-495764D01*
-X381882Y-496486D01*
-X382749Y-497931D01*
-G54D11*
-X427877Y-497774D02*
-X429610Y-498496D01*
-X430823Y-498496D01*
-X432557Y-497774D01*
-X433077Y-496329D01*
-X433077Y-489107D01*
-G54D11*
-X433077Y-490985D02*
-X432210Y-489541D01*
-X430477Y-489107D01*
-X428743Y-489541D01*
-X427877Y-490985D01*
-X427877Y-493874D01*
-X428743Y-495318D01*
-X430477Y-495607D01*
-X432210Y-495318D01*
-X433077Y-493874D01*
-G54D11*
-X437121Y-495607D02*
-X437121Y-489107D01*
-G54D11*
-X437121Y-490552D02*
-X438854Y-489107D01*
-X440587Y-489107D01*
-G54D11*
-X449832Y-494885D02*
-X448445Y-495607D01*
-X446712Y-495607D01*
-X444978Y-494885D01*
-X444632Y-493441D01*
-X444632Y-490985D01*
-X445498Y-489541D01*
-X447232Y-489107D01*
-X448965Y-489541D01*
-X449832Y-490552D01*
-X449832Y-491996D01*
-X444632Y-491996D01*
-G54D11*
-X459076Y-494885D02*
-X457689Y-495607D01*
-X455956Y-495607D01*
-X454222Y-494885D01*
-X453876Y-493441D01*
-X453876Y-490985D01*
-X454742Y-489541D01*
-X456476Y-489107D01*
-X458209Y-489541D01*
-X459076Y-490552D01*
-X459076Y-491996D01*
-X453876Y-491996D01*
-G54D11*
-X463120Y-495607D02*
-X463120Y-489107D01*
-G54D11*
-X463120Y-490552D02*
-X463986Y-489541D01*
-X465720Y-489107D01*
-X467453Y-489541D01*
-X468320Y-490552D01*
-X468320Y-495607D01*
-G54D11*
-X486885Y-495606D02*
-X486885Y-489106D01*
-G54D11*
-X486885Y-490551D02*
-X488619Y-489106D01*
-X490352Y-489106D01*
-G54D11*
-X499596Y-494884D02*
-X498210Y-495606D01*
-X496476Y-495606D01*
-X494743Y-494884D01*
-X494396Y-493440D01*
-X494396Y-490984D01*
-X495263Y-489540D01*
-X496996Y-489106D01*
-X498730Y-489540D01*
-X499596Y-490551D01*
-X499596Y-491995D01*
-X494396Y-491995D01*
-G54D11*
-X508840Y-495606D02*
-X508840Y-484051D01*
-G54D11*
-X508840Y-490984D02*
-X507974Y-489540D01*
-X506240Y-489106D01*
-X504507Y-489540D01*
-X503640Y-490984D01*
-X503640Y-493873D01*
-X504507Y-495318D01*
-X506240Y-495606D01*
-X507974Y-495318D01*
-X508840Y-493873D01*
-G54D14*
-X409957Y-292425D02*
-X409957Y-257759D01*
-X422957Y-257759D01*
-X428157Y-259925D01*
-X430757Y-264259D01*
-X430757Y-268592D01*
-X428157Y-272925D01*
-X422957Y-275092D01*
-X428157Y-277259D01*
-X430757Y-281592D01*
-X430757Y-285925D01*
-X428157Y-290259D01*
-X422957Y-292425D01*
-X409957Y-292425D01*
-G54D14*
-X409957Y-275092D02*
-X422957Y-275092D01*
-G54D14*
-X442890Y-292425D02*
-X455890Y-257759D01*
-X468890Y-292425D01*
-G54D14*
-X448090Y-279425D02*
-X463690Y-279425D01*
-G54D14*
-X501823Y-285925D02*
-X499223Y-290259D01*
-X494023Y-292425D01*
-X488823Y-292425D01*
-X483623Y-290259D01*
-X481023Y-285925D01*
-X481023Y-264259D01*
-X483623Y-259925D01*
-X488823Y-257759D01*
-X494023Y-257759D01*
-X499223Y-259925D01*
-X501823Y-264259D01*
-G54D14*
-X513956Y-292425D02*
-X513956Y-257759D01*
-G54D14*
-X513956Y-281592D02*
-X534756Y-257759D01*
-G54D14*
-X521756Y-275092D02*
-X534756Y-292425D01*
-G54D11*
-X355589Y-113411D02*
-X348656Y-113411D01*
-X348656Y-112689D01*
-X349523Y-111244D01*
-X354723Y-106911D01*
-X355589Y-105467D01*
-X355589Y-104022D01*
-X354723Y-102578D01*
-X352989Y-101855D01*
-X351256Y-101855D01*
-X349523Y-102578D01*
-X348656Y-104022D01*
-G54D11*
-X359633Y-113411D02*
-X359633Y-113411D01*
-G54D11*
-X370610Y-113411D02*
-X363677Y-113411D01*
-X363677Y-112689D01*
-X364544Y-111244D01*
-X369744Y-106911D01*
-X370610Y-105467D01*
-X370610Y-104022D01*
-X369744Y-102578D01*
-X368010Y-101855D01*
-X366277Y-101855D01*
-X364544Y-102578D01*
-X363677Y-104022D01*
-G54D11*
-X374654Y-113411D02*
-X374654Y-101855D01*
-G54D11*
-X374654Y-109800D02*
-X381587Y-101855D01*
-G54D11*
-X377254Y-107633D02*
-X381587Y-113411D01*
-M02*
+%FSLAX34Y34*%
+%MOMM*%
+%LNCOPPER_BOTTOM*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11C, 0.21*%
+%ADD12C, 0.15*%
+%ADD13C, 0.40*%
+%ADD14C, 0.62*%
+%ADD15C, 0.20*%
+%ADD16C, 0.32*%
+%ADD17C, 0.30*%
+%ADD18C, 0.22*%
+%ADD19C, 0.24*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+G54D11*
+X767650Y-70955D02*
+X767650Y-59400D01*
+X773717Y-59400D01*
+G54D11*
+X767650Y-65178D02*
+X773717Y-65178D01*
+G54D11*
+X781228Y-70955D02*
+X781228Y-59400D01*
+G54D11*
+X777761Y-59400D02*
+X784695Y-59400D01*
+G54D11*
+X795672Y-70955D02*
+X788738Y-70955D01*
+X788738Y-70233D01*
+X789605Y-68789D01*
+X794805Y-64455D01*
+X795672Y-63011D01*
+X795672Y-61566D01*
+X794805Y-60122D01*
+X793072Y-59400D01*
+X791338Y-59400D01*
+X789605Y-60122D01*
+X788738Y-61566D01*
+G54D11*
+X799715Y-61566D02*
+X800582Y-60122D01*
+X802315Y-59400D01*
+X804049Y-59400D01*
+X805782Y-60122D01*
+X806649Y-61566D01*
+X806649Y-63011D01*
+X805782Y-64455D01*
+X804049Y-65178D01*
+X805782Y-65900D01*
+X806649Y-67344D01*
+X806649Y-68789D01*
+X805782Y-70233D01*
+X804049Y-70955D01*
+X802315Y-70955D01*
+X800582Y-70233D01*
+X799715Y-68789D01*
+G54D11*
+X817626Y-70955D02*
+X810692Y-70955D01*
+X810692Y-70233D01*
+X811559Y-68789D01*
+X816759Y-64455D01*
+X817626Y-63011D01*
+X817626Y-61566D01*
+X816759Y-60122D01*
+X815026Y-59400D01*
+X813292Y-59400D01*
+X811559Y-60122D01*
+X810692Y-61566D01*
+G54D11*
+X825136Y-65178D02*
+X827736Y-66622D01*
+X828603Y-68066D01*
+X828603Y-70955D01*
+G54D11*
+X821669Y-70955D02*
+X821669Y-59400D01*
+X826003Y-59400D01*
+X827736Y-60122D01*
+X828603Y-61566D01*
+X828603Y-63011D01*
+X827736Y-64455D01*
+X826003Y-65178D01*
+X821669Y-65178D01*
+G54D11*
+X832646Y-59400D02*
+X832646Y-70955D01*
+X838713Y-70955D01*
+G54D12*
+X862170Y-117133D02*
+X742170Y-117133D01*
+X742170Y-17133D01*
+X862170Y-17133D01*
+X862170Y-117133D01*
+G54D13*
+G75*
+G01X759143Y-91946D02*
+G03X759143Y-91946I-4000J0D01*
+G01*
+G54D13*
+X880903Y-379649D02*
+X68103Y-379649D01*
+X68103Y-303449D01*
+X880903Y-303449D01*
+X880903Y-379649D01*
+G54D13*
+G75*
+G01X529411Y-74572D02*
+G03X529411Y-74572I5000J0D01*
+G01*
+G54D12*
+X730111Y-58448D02*
+X738050Y-58448D01*
+X738050Y-77612D01*
+X730111Y-77612D01*
+X730111Y-58448D01*
+G54D12*
+X852815Y-8018D02*
+X852815Y-15956D01*
+X833651Y-15956D01*
+X833651Y-8018D01*
+X852815Y-8018D01*
+G54D13*
+X306600Y-525150D02*
+X306600Y-436250D01*
+X227832Y-436205D01*
+G54D13*
+X306600Y-525150D02*
+X103400Y-525150D01*
+X103400Y-436250D01*
+X181578Y-436212D01*
+G54D12*
+X227832Y-436205D02*
+X181578Y-436212D01*
+G54D14*
+X402381Y-434146D02*
+X402381Y-399479D01*
+X420581Y-399479D01*
+G54D14*
+X402381Y-416813D02*
+X420581Y-416813D01*
+G54D14*
+X443114Y-416813D02*
+X450914Y-421146D01*
+X453514Y-425479D01*
+X453514Y-434146D01*
+G54D14*
+X432714Y-434146D02*
+X432714Y-399479D01*
+X445714Y-399479D01*
+X450914Y-401646D01*
+X453514Y-405979D01*
+X453514Y-410313D01*
+X450914Y-414646D01*
+X445714Y-416813D01*
+X432714Y-416813D01*
+G54D14*
+X486447Y-405979D02*
+X486447Y-427646D01*
+X483847Y-431979D01*
+X478647Y-434146D01*
+X473447Y-434146D01*
+X468247Y-431979D01*
+X465647Y-427646D01*
+X465647Y-405979D01*
+X468247Y-401646D01*
+X473447Y-399479D01*
+X478647Y-399479D01*
+X483847Y-401646D01*
+X486447Y-405979D01*
+G54D14*
+X498580Y-434146D02*
+X498580Y-399479D01*
+X519380Y-434146D01*
+X519380Y-399479D01*
+G54D14*
+X541913Y-434146D02*
+X541913Y-399479D01*
+G54D14*
+X531513Y-399479D02*
+X552313Y-399479D01*
+G54D12*
+X588044Y-86323D02*
+X580105Y-86323D01*
+X580105Y-67160D01*
+X588044Y-67160D01*
+X588044Y-86323D01*
+G54D12*
+X387886Y-98679D02*
+X379947Y-98679D01*
+X379947Y-79515D01*
+X387886Y-79515D01*
+X387886Y-98679D01*
+G54D11*
+X440774Y-114955D02*
+X445108Y-103400D01*
+X449441Y-114955D01*
+G54D11*
+X442508Y-110622D02*
+X447708Y-110622D01*
+G54D11*
+X456952Y-114955D02*
+X456952Y-103400D01*
+G54D11*
+X453485Y-103400D02*
+X460419Y-103400D01*
+G54D11*
+X464462Y-114955D02*
+X464462Y-103400D01*
+X468796Y-110622D01*
+X473129Y-103400D01*
+X473129Y-114955D01*
+G54D11*
+X483240Y-114955D02*
+X477173Y-114955D01*
+X477173Y-103400D01*
+X483240Y-103400D01*
+G54D11*
+X477173Y-109178D02*
+X483240Y-109178D01*
+G54D11*
+X490751Y-109178D02*
+X494218Y-109178D01*
+X494218Y-112789D01*
+X493351Y-114233D01*
+X491618Y-114955D01*
+X489884Y-114955D01*
+X488151Y-114233D01*
+X487284Y-112789D01*
+X487284Y-105566D01*
+X488151Y-104122D01*
+X489884Y-103400D01*
+X491618Y-103400D01*
+X493351Y-104122D01*
+X494218Y-105566D01*
+G54D11*
+X498261Y-114955D02*
+X502595Y-103400D01*
+X506928Y-114955D01*
+G54D11*
+X499995Y-110622D02*
+X505195Y-110622D01*
+G54D11*
+X517906Y-105566D02*
+X517039Y-104122D01*
+X515306Y-103400D01*
+X513572Y-103400D01*
+X511839Y-104122D01*
+X510972Y-105566D01*
+X510972Y-109178D01*
+X510972Y-109900D01*
+X513572Y-108455D01*
+X515306Y-108455D01*
+X517039Y-109178D01*
+X517906Y-110622D01*
+X517906Y-112789D01*
+X517039Y-114233D01*
+X515306Y-114955D01*
+X513572Y-114955D01*
+X511839Y-114233D01*
+X510972Y-112789D01*
+X510972Y-109178D01*
+G54D11*
+X527149Y-114955D02*
+X527149Y-103400D01*
+X521949Y-110622D01*
+X521949Y-112066D01*
+X528883Y-112066D01*
+G54D15*
+X418200Y-58400D02*
+X550200Y-58400D01*
+X550200Y-190400D01*
+X418200Y-190400D01*
+X418200Y-58400D01*
+G54D16*
+X145604Y-405883D02*
+X145604Y-420328D01*
+X144271Y-422550D01*
+X141604Y-423661D01*
+X138937Y-423661D01*
+X136271Y-422550D01*
+X134937Y-420328D01*
+G54D16*
+X157160Y-423661D02*
+X157160Y-405883D01*
+G54D16*
+X151826Y-405883D02*
+X162493Y-405883D01*
+G54D16*
+X168715Y-423661D02*
+X175382Y-405883D01*
+X182049Y-423661D01*
+G54D16*
+X171382Y-416994D02*
+X179382Y-416994D01*
+G54D16*
+X193604Y-414772D02*
+X198937Y-414772D01*
+X198937Y-420328D01*
+X197604Y-422550D01*
+X194937Y-423661D01*
+X192270Y-423661D01*
+X189604Y-422550D01*
+X188270Y-420328D01*
+X188270Y-409217D01*
+X189604Y-406994D01*
+X192270Y-405883D01*
+X194937Y-405883D01*
+X197604Y-406994D01*
+X198937Y-409217D01*
+G54D16*
+X205159Y-423661D02*
+X215826Y-405883D01*
+G54D16*
+X227382Y-414772D02*
+X232715Y-414772D01*
+X232715Y-420328D01*
+X231382Y-422550D01*
+X228715Y-423661D01*
+X226048Y-423661D01*
+X223382Y-422550D01*
+X222048Y-420328D01*
+X222048Y-409217D01*
+X223382Y-406994D01*
+X226048Y-405883D01*
+X228715Y-405883D01*
+X231382Y-406994D01*
+X232715Y-409217D01*
+G54D16*
+X238937Y-423661D02*
+X238937Y-405883D01*
+X245604Y-405883D01*
+X248271Y-406994D01*
+X249604Y-409217D01*
+X249604Y-411439D01*
+X248271Y-413661D01*
+X245604Y-414772D01*
+X238937Y-414772D01*
+G54D16*
+X255826Y-423661D02*
+X255826Y-405883D01*
+G54D16*
+X272715Y-409217D02*
+X272715Y-420328D01*
+X271382Y-422550D01*
+X268715Y-423661D01*
+X266048Y-423661D01*
+X263382Y-422550D01*
+X262048Y-420328D01*
+X262048Y-409217D01*
+X263382Y-406994D01*
+X266048Y-405883D01*
+X268715Y-405883D01*
+X271382Y-406994D01*
+X272715Y-409217D01*
+G54D12*
+X389342Y-500020D02*
+X389342Y-492082D01*
+X408505Y-492082D01*
+X408505Y-500020D01*
+X389342Y-500020D01*
+G54D12*
+X389320Y-483944D02*
+X389320Y-476005D01*
+X408483Y-476005D01*
+X408483Y-483944D01*
+X389320Y-483944D01*
+G54D12*
+X430911Y-504000D02*
+X468922Y-504000D01*
+X468922Y-521581D01*
+X430911Y-521581D01*
+X430911Y-504000D01*
+G54D12*
+X516922Y-521481D02*
+X478911Y-521481D01*
+X478911Y-503900D01*
+X516922Y-503900D01*
+X516922Y-521481D01*
+G54D16*
+X27998Y-33047D02*
+X27998Y-15269D01*
+X37332Y-15269D01*
+G54D16*
+X27998Y-24158D02*
+X37332Y-24158D01*
+G54D16*
+X43553Y-24158D02*
+X46220Y-23047D01*
+X49420Y-23047D01*
+X51553Y-25269D01*
+X51553Y-33047D01*
+G54D16*
+X51553Y-29714D02*
+X50220Y-27491D01*
+X47553Y-27047D01*
+X44887Y-27491D01*
+X43553Y-29714D01*
+X44087Y-31936D01*
+X46220Y-33047D01*
+X47553Y-33047D01*
+X48087Y-33047D01*
+X50220Y-31936D01*
+X51553Y-29714D01*
+G54D16*
+X57775Y-33047D02*
+X57775Y-23047D01*
+G54D16*
+X57775Y-24825D02*
+X60442Y-23047D01*
+X63109Y-23714D01*
+X64442Y-25269D01*
+X64442Y-33047D01*
+G54D16*
+X64442Y-24825D02*
+X67109Y-23047D01*
+X69775Y-23714D01*
+X71109Y-25269D01*
+X71109Y-33047D01*
+G54D16*
+X77330Y-33047D02*
+X77330Y-23047D01*
+G54D16*
+X77330Y-19714D02*
+X77330Y-19714D01*
+G54D16*
+X90219Y-23714D02*
+X87552Y-23047D01*
+X84886Y-23714D01*
+X83552Y-25936D01*
+X83552Y-30380D01*
+X84886Y-32602D01*
+X87552Y-33047D01*
+X90219Y-32602D01*
+G54D16*
+X104441Y-30380D02*
+X104441Y-25936D01*
+X103108Y-23714D01*
+X100441Y-23047D01*
+X97775Y-23714D01*
+X96441Y-25936D01*
+X96441Y-30380D01*
+X97775Y-32602D01*
+X100441Y-33047D01*
+X103108Y-32602D01*
+X104441Y-30380D01*
+G54D16*
+X110663Y-33047D02*
+X110663Y-23047D01*
+G54D16*
+X110663Y-24825D02*
+X113330Y-23047D01*
+X115997Y-23714D01*
+X117330Y-25269D01*
+X117330Y-33047D01*
+G54D16*
+X117330Y-24825D02*
+X119997Y-23047D01*
+X122663Y-23714D01*
+X123997Y-25269D01*
+X123997Y-33047D01*
+G54D16*
+X136707Y-33047D02*
+X136707Y-15269D01*
+X143374Y-15269D01*
+X146041Y-16380D01*
+X147374Y-18602D01*
+X147374Y-29714D01*
+X146041Y-31936D01*
+X143374Y-33047D01*
+X136707Y-33047D01*
+G54D16*
+X161596Y-23047D02*
+X161596Y-33047D01*
+G54D16*
+X161596Y-30825D02*
+X160263Y-32602D01*
+X157596Y-33047D01*
+X154930Y-32602D01*
+X153596Y-30825D01*
+X153596Y-23047D01*
+G54D16*
+X167818Y-33047D02*
+X167818Y-23047D01*
+G54D16*
+X167818Y-24825D02*
+X170485Y-23047D01*
+X173152Y-23714D01*
+X174485Y-25269D01*
+X174485Y-33047D01*
+G54D16*
+X174485Y-24825D02*
+X177152Y-23047D01*
+X179818Y-23714D01*
+X181152Y-25269D01*
+X181152Y-33047D01*
+G54D16*
+X187373Y-23047D02*
+X187373Y-37491D01*
+G54D16*
+X187373Y-29714D02*
+X188707Y-32602D01*
+X191373Y-33047D01*
+X194040Y-32602D01*
+X195373Y-30380D01*
+X195373Y-25936D01*
+X194040Y-23714D01*
+X191373Y-23047D01*
+X188707Y-23714D01*
+X187373Y-26380D01*
+G54D16*
+X209595Y-31936D02*
+X207462Y-33047D01*
+X204795Y-33047D01*
+X202129Y-31936D01*
+X201595Y-29714D01*
+X201595Y-25936D01*
+X202929Y-23714D01*
+X205595Y-23047D01*
+X208262Y-23714D01*
+X209595Y-25269D01*
+X209595Y-27491D01*
+X201595Y-27491D01*
+G54D16*
+X215817Y-33047D02*
+X215817Y-23047D01*
+G54D16*
+X215817Y-25269D02*
+X218484Y-23047D01*
+X221151Y-23047D01*
+G54D16*
+X227372Y-33047D02*
+X238039Y-15269D01*
+G54D16*
+X244261Y-33047D02*
+X244261Y-15269D01*
+X250928Y-15269D01*
+X253595Y-16380D01*
+X254928Y-18602D01*
+X254928Y-20825D01*
+X253595Y-23047D01*
+X250928Y-24158D01*
+X244261Y-24158D01*
+G54D16*
+X261150Y-33047D02*
+X261150Y-23047D01*
+G54D16*
+X261150Y-25269D02*
+X263817Y-23047D01*
+X266484Y-23047D01*
+G54D16*
+X280705Y-30380D02*
+X280705Y-25936D01*
+X279372Y-23714D01*
+X276705Y-23047D01*
+X274039Y-23714D01*
+X272705Y-25936D01*
+X272705Y-30380D01*
+X274039Y-32602D01*
+X276705Y-33047D01*
+X279372Y-32602D01*
+X280705Y-30380D01*
+G54D16*
+X286927Y-36380D02*
+X289594Y-37491D01*
+X291461Y-37491D01*
+X294127Y-36380D01*
+X294927Y-34158D01*
+X294927Y-23047D01*
+G54D16*
+X294927Y-25936D02*
+X293594Y-23714D01*
+X290927Y-23047D01*
+X288261Y-23714D01*
+X286927Y-25936D01*
+X286927Y-30380D01*
+X288261Y-32602D01*
+X290927Y-33047D01*
+X293594Y-32602D01*
+X294927Y-30380D01*
+G54D16*
+X301149Y-33047D02*
+X301149Y-23047D01*
+G54D16*
+X301149Y-25269D02*
+X303816Y-23047D01*
+X306483Y-23047D01*
+G54D16*
+X312704Y-24158D02*
+X315371Y-23047D01*
+X318571Y-23047D01*
+X320704Y-25269D01*
+X320704Y-33047D01*
+G54D16*
+X320704Y-29714D02*
+X319371Y-27491D01*
+X316704Y-27047D01*
+X314038Y-27491D01*
+X312704Y-29714D01*
+X313238Y-31936D01*
+X315371Y-33047D01*
+X316704Y-33047D01*
+X317238Y-33047D01*
+X319371Y-31936D01*
+X320704Y-29714D01*
+G54D16*
+X326926Y-33047D02*
+X326926Y-23047D01*
+G54D16*
+X326926Y-24825D02*
+X329593Y-23047D01*
+X332260Y-23714D01*
+X333593Y-25269D01*
+X333593Y-33047D01*
+G54D16*
+X333593Y-24825D02*
+X336260Y-23047D01*
+X338926Y-23714D01*
+X340260Y-25269D01*
+X340260Y-33047D01*
+G54D16*
+X346481Y-33047D02*
+X346481Y-23047D01*
+G54D16*
+X346481Y-24825D02*
+X349148Y-23047D01*
+X351815Y-23714D01*
+X353148Y-25269D01*
+X353148Y-33047D01*
+G54D16*
+X353148Y-24825D02*
+X355815Y-23047D01*
+X358481Y-23714D01*
+X359815Y-25269D01*
+X359815Y-33047D01*
+G54D16*
+X374036Y-31936D02*
+X371903Y-33047D01*
+X369236Y-33047D01*
+X366570Y-31936D01*
+X366036Y-29714D01*
+X366036Y-25936D01*
+X367370Y-23714D01*
+X370036Y-23047D01*
+X372703Y-23714D01*
+X374036Y-25269D01*
+X374036Y-27491D01*
+X366036Y-27491D01*
+G54D16*
+X380258Y-33047D02*
+X380258Y-23047D01*
+G54D16*
+X380258Y-25269D02*
+X382925Y-23047D01*
+X385592Y-23047D01*
+G54D17*
+X131986Y-61997D02*
+X131986Y-45108D01*
+G54D17*
+X131986Y-55242D02*
+X133253Y-53130D01*
+X135786Y-52497D01*
+X138320Y-53130D01*
+X139586Y-55242D01*
+X139586Y-59464D01*
+X138320Y-61575D01*
+X135786Y-61997D01*
+X133253Y-61575D01*
+X131986Y-59464D01*
+G54D17*
+X145497Y-52497D02*
+X150564Y-61997D01*
+X155630Y-52497D01*
+G54D17*
+X150564Y-61997D02*
+X149297Y-65164D01*
+X148030Y-66219D01*
+X146764Y-66219D01*
+G54D17*
+X167705Y-61997D02*
+X174038Y-45108D01*
+X180372Y-61997D01*
+G54D17*
+X170238Y-55664D02*
+X177838Y-55664D01*
+G54D17*
+X186283Y-61997D02*
+X186283Y-45108D01*
+G54D17*
+X199794Y-60942D02*
+X197768Y-61997D01*
+X195234Y-61997D01*
+X192701Y-60942D01*
+X192194Y-58830D01*
+X192194Y-55242D01*
+X193461Y-53130D01*
+X195994Y-52497D01*
+X198528Y-53130D01*
+X199794Y-54608D01*
+X199794Y-56719D01*
+X192194Y-56719D01*
+G54D17*
+X205705Y-52497D02*
+X215838Y-61997D01*
+G54D17*
+X205705Y-61997D02*
+X215838Y-52497D01*
+G54D17*
+X229349Y-60942D02*
+X227322Y-61997D01*
+X224789Y-61997D01*
+X222256Y-60942D01*
+X221749Y-58830D01*
+X221749Y-55242D01*
+X223016Y-53130D01*
+X225549Y-52497D01*
+X228082Y-53130D01*
+X229349Y-54608D01*
+X229349Y-56719D01*
+X221749Y-56719D01*
+G54D17*
+X235260Y-52497D02*
+X240327Y-61997D01*
+X245394Y-52497D01*
+G54D17*
+X240327Y-61997D02*
+X239060Y-65164D01*
+X237794Y-66219D01*
+X236527Y-66219D01*
+G54D17*
+X257468Y-61997D02*
+X263802Y-45108D01*
+X270135Y-61997D01*
+G54D17*
+X260002Y-55664D02*
+X267602Y-55664D01*
+G54D17*
+X276046Y-52497D02*
+X281113Y-61997D01*
+X286180Y-52497D01*
+G54D17*
+X299690Y-61997D02*
+X299690Y-45108D01*
+G54D17*
+X299690Y-55242D02*
+X298424Y-53130D01*
+X295890Y-52497D01*
+X293357Y-53130D01*
+X292090Y-55242D01*
+X292090Y-59464D01*
+X293357Y-61575D01*
+X295890Y-61997D01*
+X298424Y-61575D01*
+X299690Y-59464D01*
+G54D17*
+X305601Y-52497D02*
+X310668Y-61997D01*
+X315734Y-52497D01*
+G54D17*
+X310668Y-61997D02*
+X309401Y-65164D01*
+X308134Y-66219D01*
+X306868Y-66219D01*
+G54D17*
+X329245Y-52497D02*
+X329245Y-61997D01*
+G54D17*
+X329245Y-59886D02*
+X327978Y-61575D01*
+X325445Y-61997D01*
+X322912Y-61575D01*
+X321645Y-59886D01*
+X321645Y-52497D01*
+G54D17*
+X335156Y-61997D02*
+X335156Y-45108D01*
+G54D17*
+X338956Y-55664D02*
+X342756Y-61997D01*
+G54D17*
+X335156Y-57775D02*
+X342756Y-52497D01*
+G54D17*
+X348667Y-61997D02*
+X348667Y-45108D01*
+G54D17*
+X348667Y-55242D02*
+X349934Y-53130D01*
+X352467Y-52497D01*
+X355001Y-53130D01*
+X356267Y-55242D01*
+X356267Y-61997D01*
+G54D17*
+X362178Y-61997D02*
+X362178Y-52497D01*
+G54D17*
+X362178Y-49330D02*
+X362178Y-49330D01*
+G54D17*
+X368089Y-61997D02*
+X368089Y-52497D01*
+G54D17*
+X368089Y-54608D02*
+X369356Y-53130D01*
+X371889Y-52497D01*
+X374422Y-53130D01*
+X375689Y-54608D01*
+X375689Y-61997D01*
+G54D17*
+X220690Y-76556D02*
+X223224Y-75500D01*
+X226264Y-75500D01*
+X228290Y-77611D01*
+X228290Y-85000D01*
+G54D17*
+X228290Y-81833D02*
+X227024Y-79722D01*
+X224490Y-79300D01*
+X221957Y-79722D01*
+X220690Y-81833D01*
+X221197Y-83944D01*
+X223224Y-85000D01*
+X224490Y-85000D01*
+X224997Y-85000D01*
+X227024Y-83944D01*
+X228290Y-81833D01*
+G54D17*
+X234201Y-85000D02*
+X234201Y-68111D01*
+G54D17*
+X238001Y-78667D02*
+X241801Y-85000D01*
+G54D17*
+X234201Y-80778D02*
+X241801Y-75500D01*
+G54D17*
+X247712Y-76556D02*
+X250246Y-75500D01*
+X253286Y-75500D01*
+X255312Y-77611D01*
+X255312Y-85000D01*
+G54D17*
+X255312Y-81833D02*
+X254046Y-79722D01*
+X251512Y-79300D01*
+X248979Y-79722D01*
+X247712Y-81833D01*
+X248219Y-83944D01*
+X250246Y-85000D01*
+X251512Y-85000D01*
+X252019Y-85000D01*
+X254046Y-83944D01*
+X255312Y-81833D01*
+G54D17*
+X277521Y-81833D02*
+X276254Y-83944D01*
+X273721Y-85000D01*
+X271187Y-85000D01*
+X268654Y-83944D01*
+X267387Y-81833D01*
+X267387Y-71278D01*
+X268654Y-69167D01*
+X271187Y-68111D01*
+X273721Y-68111D01*
+X276254Y-69167D01*
+X277521Y-71278D01*
+G54D17*
+X283431Y-85000D02*
+X283431Y-68111D01*
+G54D17*
+X296942Y-75500D02*
+X296942Y-85000D01*
+G54D17*
+X296942Y-82889D02*
+X295676Y-84578D01*
+X293142Y-85000D01*
+X290609Y-84578D01*
+X289342Y-82889D01*
+X289342Y-75500D01*
+G54D17*
+X302853Y-83944D02*
+X305387Y-85000D01*
+X307920Y-85000D01*
+X310453Y-83944D01*
+X310453Y-81833D01*
+X309187Y-80778D01*
+X304120Y-79722D01*
+X302853Y-78667D01*
+X302853Y-76556D01*
+X305387Y-75500D01*
+X307920Y-75500D01*
+X310453Y-76556D01*
+G54D17*
+X318898Y-68111D02*
+X318898Y-83944D01*
+X320164Y-85000D01*
+X321431Y-84578D01*
+G54D17*
+X316364Y-75500D02*
+X321431Y-75500D01*
+G54D17*
+X334942Y-83944D02*
+X332916Y-85000D01*
+X330382Y-85000D01*
+X327849Y-83944D01*
+X327342Y-81833D01*
+X327342Y-78244D01*
+X328609Y-76133D01*
+X331142Y-75500D01*
+X333676Y-76133D01*
+X334942Y-77611D01*
+X334942Y-79722D01*
+X327342Y-79722D01*
+G54D17*
+X340853Y-85000D02*
+X340853Y-75500D01*
+G54D17*
+X340853Y-77611D02*
+X343387Y-75500D01*
+X345920Y-75500D01*
+G54D16*
+X564210Y-488975D02*
+X564210Y-471197D01*
+G54D16*
+X574877Y-488975D02*
+X574877Y-471197D01*
+G54D16*
+X564210Y-480086D02*
+X574877Y-480086D01*
+G54D16*
+X586433Y-488975D02*
+X586433Y-471197D01*
+G54D16*
+X581099Y-471197D02*
+X591766Y-471197D01*
+G54D16*
+X603322Y-488975D02*
+X603322Y-471197D01*
+G54D16*
+X597988Y-471197D02*
+X608655Y-471197D01*
+G54D16*
+X614877Y-488975D02*
+X614877Y-471197D01*
+X621544Y-471197D01*
+X624211Y-472308D01*
+X625544Y-474530D01*
+X625544Y-476753D01*
+X624211Y-478975D01*
+X621544Y-480086D01*
+X614877Y-480086D01*
+G54D16*
+X631766Y-488975D02*
+X631766Y-488975D01*
+G54D16*
+X631766Y-478975D02*
+X631766Y-478975D01*
+G54D16*
+X637988Y-488975D02*
+X648655Y-471197D01*
+G54D16*
+X654877Y-488975D02*
+X665544Y-471197D01*
+G54D16*
+X682433Y-485642D02*
+X681100Y-487864D01*
+X678433Y-488975D01*
+X675766Y-488975D01*
+X673100Y-487864D01*
+X671766Y-485642D01*
+X671766Y-474530D01*
+X673100Y-472308D01*
+X675766Y-471197D01*
+X678433Y-471197D01*
+X681100Y-472308D01*
+X682433Y-474530D01*
+G54D16*
+X688655Y-471197D02*
+X688655Y-488975D01*
+X697989Y-488975D01*
+G54D16*
+X704210Y-471197D02*
+X704210Y-485642D01*
+X705544Y-487864D01*
+X708210Y-488975D01*
+X710877Y-488975D01*
+X713544Y-487864D01*
+X714877Y-485642D01*
+X714877Y-471197D01*
+G54D16*
+X721099Y-485642D02*
+X722433Y-487864D01*
+X725099Y-488975D01*
+X727766Y-488975D01*
+X730433Y-487864D01*
+X731766Y-485642D01*
+X731766Y-483419D01*
+X730433Y-481197D01*
+X727766Y-480086D01*
+X725099Y-480086D01*
+X722433Y-478975D01*
+X721099Y-476753D01*
+X721099Y-474530D01*
+X722433Y-472308D01*
+X725099Y-471197D01*
+X727766Y-471197D01*
+X730433Y-472308D01*
+X731766Y-474530D01*
+G54D16*
+X743322Y-488975D02*
+X743322Y-471197D01*
+G54D16*
+X737988Y-471197D02*
+X748655Y-471197D01*
+G54D16*
+X764211Y-488975D02*
+X754877Y-488975D01*
+X754877Y-471197D01*
+X764211Y-471197D01*
+G54D16*
+X754877Y-480086D02*
+X764211Y-480086D01*
+G54D16*
+X775766Y-480086D02*
+X779766Y-482308D01*
+X781099Y-484530D01*
+X781099Y-488975D01*
+G54D16*
+X770432Y-488975D02*
+X770432Y-471197D01*
+X777099Y-471197D01*
+X779766Y-472308D01*
+X781099Y-474530D01*
+X781099Y-476753D01*
+X779766Y-478975D01*
+X777099Y-480086D01*
+X770432Y-480086D01*
+G54D16*
+X792655Y-480086D02*
+X796655Y-482308D01*
+X797988Y-484530D01*
+X797988Y-488975D01*
+G54D16*
+X787321Y-488975D02*
+X787321Y-471197D01*
+X793988Y-471197D01*
+X796655Y-472308D01*
+X797988Y-474530D01*
+X797988Y-476753D01*
+X796655Y-478975D01*
+X793988Y-480086D01*
+X787321Y-480086D01*
+G54D16*
+X809544Y-480086D02*
+X813544Y-482308D01*
+X814877Y-484530D01*
+X814877Y-488975D01*
+G54D16*
+X804210Y-488975D02*
+X804210Y-471197D01*
+X810877Y-471197D01*
+X813544Y-472308D01*
+X814877Y-474530D01*
+X814877Y-476753D01*
+X813544Y-478975D01*
+X810877Y-480086D01*
+X804210Y-480086D01*
+G54D16*
+X821099Y-488975D02*
+X821099Y-488975D01*
+G54D16*
+X837988Y-485642D02*
+X836655Y-487864D01*
+X833988Y-488975D01*
+X831321Y-488975D01*
+X828655Y-487864D01*
+X827321Y-485642D01*
+X827321Y-474530D01*
+X828655Y-472308D01*
+X831321Y-471197D01*
+X833988Y-471197D01*
+X836655Y-472308D01*
+X837988Y-474530D01*
+G54D16*
+X854877Y-474530D02*
+X854877Y-485642D01*
+X853544Y-487864D01*
+X850877Y-488975D01*
+X848210Y-488975D01*
+X845544Y-487864D01*
+X844210Y-485642D01*
+X844210Y-474530D01*
+X845544Y-472308D01*
+X848210Y-471197D01*
+X850877Y-471197D01*
+X853544Y-472308D01*
+X854877Y-474530D01*
+G54D16*
+X861099Y-488975D02*
+X861099Y-471197D01*
+X867766Y-482308D01*
+X874433Y-471197D01*
+X874433Y-488975D01*
+G54D12*
+X847930Y-139370D02*
+X847930Y-146970D01*
+G54D12*
+X851730Y-143170D02*
+X844130Y-143170D01*
+G54D12*
+G75*
+G01X860630Y-124125D02*
+G03X860630Y-124125I0J-31450D01*
+G01*
+G54D11*
+X579427Y-53222D02*
+X579427Y-60444D01*
+X578560Y-61889D01*
+X576827Y-62611D01*
+X575094Y-62611D01*
+X573360Y-61889D01*
+X572494Y-60444D01*
+X572494Y-53222D01*
+X573360Y-51778D01*
+X575094Y-51055D01*
+X576827Y-51055D01*
+X578560Y-51778D01*
+X579427Y-53222D01*
+G54D11*
+X583470Y-62611D02*
+X583470Y-62611D01*
+G54D11*
+X587514Y-55389D02*
+X591848Y-51055D01*
+X591848Y-62611D01*
+G54D11*
+X601092Y-56111D02*
+X601092Y-62611D01*
+G54D11*
+X601092Y-61167D02*
+X600225Y-62322D01*
+X598492Y-62611D01*
+X596758Y-62322D01*
+X595892Y-61167D01*
+X595892Y-56111D01*
+G54D11*
+X605136Y-62611D02*
+X605136Y-51055D01*
+X611202Y-51055D01*
+G54D11*
+X605136Y-56833D02*
+X611202Y-56833D01*
+G54D18*
+X689599Y-65644D02*
+X689599Y-73422D01*
+X688665Y-74977D01*
+X686799Y-75755D01*
+X684932Y-75755D01*
+X683065Y-74977D01*
+X682132Y-73422D01*
+X682132Y-65644D01*
+X683065Y-64088D01*
+X684932Y-63311D01*
+X686799Y-63311D01*
+X688665Y-64088D01*
+X689599Y-65644D01*
+G54D18*
+X693955Y-75755D02*
+X693955Y-75755D01*
+G54D18*
+X698311Y-67977D02*
+X702978Y-63311D01*
+X702978Y-75755D01*
+G54D18*
+X712934Y-68755D02*
+X712934Y-75755D01*
+G54D18*
+X712934Y-74199D02*
+X712001Y-75444D01*
+X710134Y-75755D01*
+X708267Y-75444D01*
+X707334Y-74199D01*
+X707334Y-68755D01*
+G54D18*
+X717290Y-75755D02*
+X717290Y-63311D01*
+X723823Y-63311D01*
+G54D18*
+X717290Y-69533D02*
+X723823Y-69533D01*
+G54D11*
+X798502Y-5597D02*
+X798502Y-12819D01*
+X797635Y-14264D01*
+X795902Y-14986D01*
+X794168Y-14986D01*
+X792435Y-14264D01*
+X791568Y-12819D01*
+X791568Y-5597D01*
+X792435Y-4153D01*
+X794168Y-3430D01*
+X795902Y-3430D01*
+X797635Y-4153D01*
+X798502Y-5597D01*
+G54D11*
+X802546Y-14986D02*
+X802546Y-14986D01*
+G54D11*
+X806590Y-7764D02*
+X810923Y-3430D01*
+X810923Y-14986D01*
+G54D11*
+X820166Y-8486D02*
+X820166Y-14986D01*
+G54D11*
+X820166Y-13542D02*
+X819300Y-14697D01*
+X817566Y-14986D01*
+X815833Y-14697D01*
+X814966Y-13542D01*
+X814966Y-8486D01*
+G54D11*
+X824210Y-14986D02*
+X824210Y-3430D01*
+X830277Y-3430D01*
+G54D11*
+X824210Y-9208D02*
+X830277Y-9208D01*
+G54D19*
+X788248Y-161925D02*
+X788248Y-148592D01*
+X782248Y-156925D01*
+X782248Y-158592D01*
+X790248Y-158592D01*
+G54D19*
+X794916Y-161925D02*
+X794916Y-161925D01*
+G54D19*
+X799582Y-148592D02*
+X807582Y-148592D01*
+X806582Y-150258D01*
+X804582Y-152758D01*
+X802582Y-156092D01*
+X801582Y-158592D01*
+X801582Y-161925D01*
+G54D19*
+X818250Y-154425D02*
+X818250Y-161925D01*
+G54D19*
+X818250Y-160258D02*
+X817250Y-161592D01*
+X815250Y-161925D01*
+X813250Y-161592D01*
+X812250Y-160258D01*
+X812250Y-154425D01*
+G54D19*
+X822916Y-161925D02*
+X822916Y-148592D01*
+X829916Y-148592D01*
+G54D19*
+X822916Y-155258D02*
+X829916Y-155258D01*
+G54D11*
+X359808Y-482908D02*
+X352874Y-482908D01*
+X352874Y-482185D01*
+X353741Y-480741D01*
+X358941Y-476408D01*
+X359808Y-474963D01*
+X359808Y-473519D01*
+X358941Y-472074D01*
+X357208Y-471352D01*
+X355474Y-471352D01*
+X353741Y-472074D01*
+X352874Y-473519D01*
+G54D11*
+X370785Y-473519D02*
+X370785Y-480741D01*
+X369918Y-482185D01*
+X368185Y-482908D01*
+X366451Y-482908D01*
+X364718Y-482185D01*
+X363851Y-480741D01*
+X363851Y-473519D01*
+X364718Y-472074D01*
+X366451Y-471352D01*
+X368185Y-471352D01*
+X369918Y-472074D01*
+X370785Y-473519D01*
+G54D11*
+X381762Y-473519D02*
+X381762Y-480741D01*
+X380895Y-482185D01*
+X379162Y-482908D01*
+X377428Y-482908D01*
+X375695Y-482185D01*
+X374828Y-480741D01*
+X374828Y-473519D01*
+X375695Y-472074D01*
+X377428Y-471352D01*
+X379162Y-471352D01*
+X380895Y-472074D01*
+X381762Y-473519D01*
+G54D11*
+X360795Y-507320D02*
+X353862Y-507320D01*
+X353862Y-506598D01*
+X354728Y-505153D01*
+X359928Y-500820D01*
+X360795Y-499375D01*
+X360795Y-497931D01*
+X359928Y-496486D01*
+X358195Y-495764D01*
+X356462Y-495764D01*
+X354728Y-496486D01*
+X353862Y-497931D01*
+G54D11*
+X371772Y-497931D02*
+X371772Y-505153D01*
+X370905Y-506598D01*
+X369172Y-507320D01*
+X367439Y-507320D01*
+X365705Y-506598D01*
+X364839Y-505153D01*
+X364839Y-497931D01*
+X365705Y-496486D01*
+X367439Y-495764D01*
+X369172Y-495764D01*
+X370905Y-496486D01*
+X371772Y-497931D01*
+G54D11*
+X382749Y-497931D02*
+X382749Y-505153D01*
+X381882Y-506598D01*
+X380149Y-507320D01*
+X378416Y-507320D01*
+X376682Y-506598D01*
+X375816Y-505153D01*
+X375816Y-497931D01*
+X376682Y-496486D01*
+X378416Y-495764D01*
+X380149Y-495764D01*
+X381882Y-496486D01*
+X382749Y-497931D01*
+G54D11*
+X427877Y-497774D02*
+X429610Y-498496D01*
+X430823Y-498496D01*
+X432557Y-497774D01*
+X433077Y-496329D01*
+X433077Y-489107D01*
+G54D11*
+X433077Y-490985D02*
+X432210Y-489541D01*
+X430477Y-489107D01*
+X428743Y-489541D01*
+X427877Y-490985D01*
+X427877Y-493874D01*
+X428743Y-495318D01*
+X430477Y-495607D01*
+X432210Y-495318D01*
+X433077Y-493874D01*
+G54D11*
+X437121Y-495607D02*
+X437121Y-489107D01*
+G54D11*
+X437121Y-490552D02*
+X438854Y-489107D01*
+X440587Y-489107D01*
+G54D11*
+X449832Y-494885D02*
+X448445Y-495607D01*
+X446712Y-495607D01*
+X444978Y-494885D01*
+X444632Y-493441D01*
+X444632Y-490985D01*
+X445498Y-489541D01*
+X447232Y-489107D01*
+X448965Y-489541D01*
+X449832Y-490552D01*
+X449832Y-491996D01*
+X444632Y-491996D01*
+G54D11*
+X459076Y-494885D02*
+X457689Y-495607D01*
+X455956Y-495607D01*
+X454222Y-494885D01*
+X453876Y-493441D01*
+X453876Y-490985D01*
+X454742Y-489541D01*
+X456476Y-489107D01*
+X458209Y-489541D01*
+X459076Y-490552D01*
+X459076Y-491996D01*
+X453876Y-491996D01*
+G54D11*
+X463120Y-495607D02*
+X463120Y-489107D01*
+G54D11*
+X463120Y-490552D02*
+X463986Y-489541D01*
+X465720Y-489107D01*
+X467453Y-489541D01*
+X468320Y-490552D01*
+X468320Y-495607D01*
+G54D11*
+X486885Y-495606D02*
+X486885Y-489106D01*
+G54D11*
+X486885Y-490551D02*
+X488619Y-489106D01*
+X490352Y-489106D01*
+G54D11*
+X499596Y-494884D02*
+X498210Y-495606D01*
+X496476Y-495606D01*
+X494743Y-494884D01*
+X494396Y-493440D01*
+X494396Y-490984D01*
+X495263Y-489540D01*
+X496996Y-489106D01*
+X498730Y-489540D01*
+X499596Y-490551D01*
+X499596Y-491995D01*
+X494396Y-491995D01*
+G54D11*
+X508840Y-495606D02*
+X508840Y-484051D01*
+G54D11*
+X508840Y-490984D02*
+X507974Y-489540D01*
+X506240Y-489106D01*
+X504507Y-489540D01*
+X503640Y-490984D01*
+X503640Y-493873D01*
+X504507Y-495318D01*
+X506240Y-495606D01*
+X507974Y-495318D01*
+X508840Y-493873D01*
+G54D14*
+X409957Y-292425D02*
+X409957Y-257759D01*
+X422957Y-257759D01*
+X428157Y-259925D01*
+X430757Y-264259D01*
+X430757Y-268592D01*
+X428157Y-272925D01*
+X422957Y-275092D01*
+X428157Y-277259D01*
+X430757Y-281592D01*
+X430757Y-285925D01*
+X428157Y-290259D01*
+X422957Y-292425D01*
+X409957Y-292425D01*
+G54D14*
+X409957Y-275092D02*
+X422957Y-275092D01*
+G54D14*
+X442890Y-292425D02*
+X455890Y-257759D01*
+X468890Y-292425D01*
+G54D14*
+X448090Y-279425D02*
+X463690Y-279425D01*
+G54D14*
+X501823Y-285925D02*
+X499223Y-290259D01*
+X494023Y-292425D01*
+X488823Y-292425D01*
+X483623Y-290259D01*
+X481023Y-285925D01*
+X481023Y-264259D01*
+X483623Y-259925D01*
+X488823Y-257759D01*
+X494023Y-257759D01*
+X499223Y-259925D01*
+X501823Y-264259D01*
+G54D14*
+X513956Y-292425D02*
+X513956Y-257759D01*
+G54D14*
+X513956Y-281592D02*
+X534756Y-257759D01*
+G54D14*
+X521756Y-275092D02*
+X534756Y-292425D01*
+G54D11*
+X355589Y-113411D02*
+X348656Y-113411D01*
+X348656Y-112689D01*
+X349523Y-111244D01*
+X354723Y-106911D01*
+X355589Y-105467D01*
+X355589Y-104022D01*
+X354723Y-102578D01*
+X352989Y-101855D01*
+X351256Y-101855D01*
+X349523Y-102578D01*
+X348656Y-104022D01*
+G54D11*
+X359633Y-113411D02*
+X359633Y-113411D01*
+G54D11*
+X370610Y-113411D02*
+X363677Y-113411D01*
+X363677Y-112689D01*
+X364544Y-111244D01*
+X369744Y-106911D01*
+X370610Y-105467D01*
+X370610Y-104022D01*
+X369744Y-102578D01*
+X368010Y-101855D01*
+X366277Y-101855D01*
+X364544Y-102578D01*
+X363677Y-104022D01*
+G54D11*
+X374654Y-113411D02*
+X374654Y-101855D01*
+G54D11*
+X374654Y-109800D02*
+X381587Y-101855D01*
+G54D11*
+X377254Y-107633D02*
+X381587Y-113411D01*
+M02*
diff --git a/board/famicom_dumper_soldermask_bottom.gbr b/board/famicom_dumper_soldermask_bottom.gbr
index d53cc58..a6db2b3 100644
--- a/board/famicom_dumper_soldermask_bottom.gbr
+++ b/board/famicom_dumper_soldermask_bottom.gbr
@@ -1,272 +1,272 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNSOLDERMASK_BOTTOM*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11C, 2.70*%
-%ADD12C, 2.24*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-X842848Y-366888D02*
-G54D11*
-D03*
-X817448Y-366888D02*
-G54D11*
-D03*
-X792048Y-366888D02*
-G54D11*
-D03*
-X766648Y-366888D02*
-G54D11*
-D03*
-X741248Y-366888D02*
-G54D11*
-D03*
-X715848Y-366888D02*
-G54D11*
-D03*
-X690448Y-366888D02*
-G54D11*
-D03*
-X665048Y-366888D02*
-G54D11*
-D03*
-X639648Y-366888D02*
-G54D11*
-D03*
-X614248Y-366888D02*
-G54D11*
-D03*
-X588848Y-366888D02*
-G54D11*
-D03*
-X563448Y-366888D02*
-G54D11*
-D03*
-X538048Y-366888D02*
-G54D11*
-D03*
-X512648Y-366888D02*
-G54D11*
-D03*
-X487248Y-366888D02*
-G54D11*
-D03*
-X461848Y-366888D02*
-G54D11*
-D03*
-X436448Y-366888D02*
-G54D11*
-D03*
-X411048Y-366888D02*
-G54D11*
-D03*
-X385648Y-366888D02*
-G54D11*
-D03*
-X360248Y-366888D02*
-G54D11*
-D03*
-X334848Y-366888D02*
-G54D11*
-D03*
-X309448Y-366888D02*
-G54D11*
-D03*
-X284048Y-366888D02*
-G54D11*
-D03*
-X258648Y-366888D02*
-G54D11*
-D03*
-X233248Y-366888D02*
-G54D11*
-D03*
-X207848Y-366888D02*
-G54D11*
-D03*
-X182448Y-366888D02*
-G54D11*
-D03*
-X157047Y-366888D02*
-G54D11*
-D03*
-X131647Y-366888D02*
-G54D11*
-D03*
-X106247Y-366888D02*
-G54D11*
-D03*
-X842848Y-316089D02*
-G54D11*
-D03*
-X817448Y-316089D02*
-G54D11*
-D03*
-X792048Y-316089D02*
-G54D11*
-D03*
-X766648Y-316089D02*
-G54D11*
-D03*
-X741248Y-316089D02*
-G54D11*
-D03*
-X715848Y-316089D02*
-G54D11*
-D03*
-X690448Y-316089D02*
-G54D11*
-D03*
-X665048Y-316089D02*
-G54D11*
-D03*
-X639648Y-316089D02*
-G54D11*
-D03*
-X614248Y-316089D02*
-G54D11*
-D03*
-X588848Y-316089D02*
-G54D11*
-D03*
-X563448Y-316089D02*
-G54D11*
-D03*
-X538048Y-316089D02*
-G54D11*
-D03*
-X512648Y-316089D02*
-G54D11*
-D03*
-X436448Y-316089D02*
-G54D11*
-D03*
-X411048Y-316089D02*
-G54D11*
-D03*
-X385648Y-316089D02*
-G54D11*
-D03*
-X360248Y-316089D02*
-G54D11*
-D03*
-X334848Y-316089D02*
-G54D11*
-D03*
-X309448Y-316089D02*
-G54D11*
-D03*
-X284048Y-316089D02*
-G54D11*
-D03*
-X258648Y-316089D02*
-G54D11*
-D03*
-X233248Y-316089D02*
-G54D11*
-D03*
-X207848Y-316089D02*
-G54D11*
-D03*
-X182448Y-316089D02*
-G54D11*
-D03*
-X157047Y-316089D02*
-G54D11*
-D03*
-X131647Y-316089D02*
-G54D11*
-D03*
-X106247Y-316089D02*
-G54D11*
-D03*
-X461848Y-316088D02*
-G54D11*
-D03*
-X487248Y-316088D02*
-G54D11*
-D03*
-G36*
-X217900Y-505900D02*
-X217900Y-480900D01*
-X242900Y-480900D01*
-X242900Y-505900D01*
-X217900Y-505900D01*
-G37*
-G36*
-X192500Y-505900D02*
-X192500Y-480900D01*
-X217500Y-480900D01*
-X217500Y-505900D01*
-X192500Y-505900D01*
-G37*
-G36*
-X167100Y-505900D02*
-X167100Y-480900D01*
-X192100Y-480900D01*
-X192100Y-505900D01*
-X167100Y-505900D01*
-G37*
-G36*
-X167100Y-480500D02*
-X167100Y-455500D01*
-X192100Y-455500D01*
-X192100Y-480500D01*
-X167100Y-480500D01*
-G37*
-G36*
-X192500Y-480500D02*
-X192500Y-455500D01*
-X217500Y-455500D01*
-X217500Y-480500D01*
-X192500Y-480500D01*
-G37*
-G36*
-X217900Y-480500D02*
-X217900Y-455500D01*
-X242900Y-455500D01*
-X242900Y-480500D01*
-X217900Y-480500D01*
-G37*
-G36*
-X243300Y-505900D02*
-X243300Y-480900D01*
-X268300Y-480900D01*
-X268300Y-505900D01*
-X243300Y-505900D01*
-G37*
-G36*
-X243300Y-480500D02*
-X243300Y-455500D01*
-X268300Y-455500D01*
-X268300Y-480500D01*
-X243300Y-480500D01*
-G37*
-G36*
-X141700Y-505900D02*
-X141700Y-480900D01*
-X166700Y-480900D01*
-X166700Y-505900D01*
-X141700Y-505900D01*
-G37*
-G36*
-X141700Y-480500D02*
-X141700Y-455500D01*
-X166700Y-455500D01*
-X166700Y-480500D01*
-X141700Y-480500D01*
-G37*
-X860630Y-168070D02*
-G54D12*
-D03*
-X860630Y-143170D02*
-G54D12*
-D03*
-M02*
+%FSLAX34Y34*%
+%MOMM*%
+%LNSOLDERMASK_BOTTOM*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11C, 2.70*%
+%ADD12C, 2.24*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+X842848Y-366888D02*
+G54D11*
+D03*
+X817448Y-366888D02*
+G54D11*
+D03*
+X792048Y-366888D02*
+G54D11*
+D03*
+X766648Y-366888D02*
+G54D11*
+D03*
+X741248Y-366888D02*
+G54D11*
+D03*
+X715848Y-366888D02*
+G54D11*
+D03*
+X690448Y-366888D02*
+G54D11*
+D03*
+X665048Y-366888D02*
+G54D11*
+D03*
+X639648Y-366888D02*
+G54D11*
+D03*
+X614248Y-366888D02*
+G54D11*
+D03*
+X588848Y-366888D02*
+G54D11*
+D03*
+X563448Y-366888D02*
+G54D11*
+D03*
+X538048Y-366888D02*
+G54D11*
+D03*
+X512648Y-366888D02*
+G54D11*
+D03*
+X487248Y-366888D02*
+G54D11*
+D03*
+X461848Y-366888D02*
+G54D11*
+D03*
+X436448Y-366888D02*
+G54D11*
+D03*
+X411048Y-366888D02*
+G54D11*
+D03*
+X385648Y-366888D02*
+G54D11*
+D03*
+X360248Y-366888D02*
+G54D11*
+D03*
+X334848Y-366888D02*
+G54D11*
+D03*
+X309448Y-366888D02*
+G54D11*
+D03*
+X284048Y-366888D02*
+G54D11*
+D03*
+X258648Y-366888D02*
+G54D11*
+D03*
+X233248Y-366888D02*
+G54D11*
+D03*
+X207848Y-366888D02*
+G54D11*
+D03*
+X182448Y-366888D02*
+G54D11*
+D03*
+X157047Y-366888D02*
+G54D11*
+D03*
+X131647Y-366888D02*
+G54D11*
+D03*
+X106247Y-366888D02*
+G54D11*
+D03*
+X842848Y-316089D02*
+G54D11*
+D03*
+X817448Y-316089D02*
+G54D11*
+D03*
+X792048Y-316089D02*
+G54D11*
+D03*
+X766648Y-316089D02*
+G54D11*
+D03*
+X741248Y-316089D02*
+G54D11*
+D03*
+X715848Y-316089D02*
+G54D11*
+D03*
+X690448Y-316089D02*
+G54D11*
+D03*
+X665048Y-316089D02*
+G54D11*
+D03*
+X639648Y-316089D02*
+G54D11*
+D03*
+X614248Y-316089D02*
+G54D11*
+D03*
+X588848Y-316089D02*
+G54D11*
+D03*
+X563448Y-316089D02*
+G54D11*
+D03*
+X538048Y-316089D02*
+G54D11*
+D03*
+X512648Y-316089D02*
+G54D11*
+D03*
+X436448Y-316089D02*
+G54D11*
+D03*
+X411048Y-316089D02*
+G54D11*
+D03*
+X385648Y-316089D02*
+G54D11*
+D03*
+X360248Y-316089D02*
+G54D11*
+D03*
+X334848Y-316089D02*
+G54D11*
+D03*
+X309448Y-316089D02*
+G54D11*
+D03*
+X284048Y-316089D02*
+G54D11*
+D03*
+X258648Y-316089D02*
+G54D11*
+D03*
+X233248Y-316089D02*
+G54D11*
+D03*
+X207848Y-316089D02*
+G54D11*
+D03*
+X182448Y-316089D02*
+G54D11*
+D03*
+X157047Y-316089D02*
+G54D11*
+D03*
+X131647Y-316089D02*
+G54D11*
+D03*
+X106247Y-316089D02*
+G54D11*
+D03*
+X461848Y-316088D02*
+G54D11*
+D03*
+X487248Y-316088D02*
+G54D11*
+D03*
+G36*
+X217900Y-505900D02*
+X217900Y-480900D01*
+X242900Y-480900D01*
+X242900Y-505900D01*
+X217900Y-505900D01*
+G37*
+G36*
+X192500Y-505900D02*
+X192500Y-480900D01*
+X217500Y-480900D01*
+X217500Y-505900D01*
+X192500Y-505900D01*
+G37*
+G36*
+X167100Y-505900D02*
+X167100Y-480900D01*
+X192100Y-480900D01*
+X192100Y-505900D01*
+X167100Y-505900D01*
+G37*
+G36*
+X167100Y-480500D02*
+X167100Y-455500D01*
+X192100Y-455500D01*
+X192100Y-480500D01*
+X167100Y-480500D01*
+G37*
+G36*
+X192500Y-480500D02*
+X192500Y-455500D01*
+X217500Y-455500D01*
+X217500Y-480500D01*
+X192500Y-480500D01*
+G37*
+G36*
+X217900Y-480500D02*
+X217900Y-455500D01*
+X242900Y-455500D01*
+X242900Y-480500D01*
+X217900Y-480500D01*
+G37*
+G36*
+X243300Y-505900D02*
+X243300Y-480900D01*
+X268300Y-480900D01*
+X268300Y-505900D01*
+X243300Y-505900D01*
+G37*
+G36*
+X243300Y-480500D02*
+X243300Y-455500D01*
+X268300Y-455500D01*
+X268300Y-480500D01*
+X243300Y-480500D01*
+G37*
+G36*
+X141700Y-505900D02*
+X141700Y-480900D01*
+X166700Y-480900D01*
+X166700Y-505900D01*
+X141700Y-505900D01*
+G37*
+G36*
+X141700Y-480500D02*
+X141700Y-455500D01*
+X166700Y-455500D01*
+X166700Y-480500D01*
+X141700Y-480500D01*
+G37*
+X860630Y-168070D02*
+G54D12*
+D03*
+X860630Y-143170D02*
+G54D12*
+D03*
+M02*
diff --git a/board/famicom_dumper_soldermask_top.gbr b/board/famicom_dumper_soldermask_top.gbr
index c8fdc1b..4b0e70e 100644
--- a/board/famicom_dumper_soldermask_top.gbr
+++ b/board/famicom_dumper_soldermask_top.gbr
@@ -1,853 +1,853 @@
-%FSLAX34Y34*%
-%MOMM*%
-%LNSOLDERMASK_TOP*%
-G71*
-G01*
-%ADD10C, 0.00*%
-%ADD11R, 0.50X1.50*%
-%ADD12R, 2.70X2.20*%
-%ADD13R, 2.50X0.60*%
-%ADD14R, 1.40X1.00*%
-%ADD15R, 1.00X1.40*%
-%ADD16R, 1.70X0.60*%
-%ADD17C, 2.70*%
-%ADD18R, 0.60X1.70*%
-%ADD19C, 2.24*%
-%LPD*%
-G54D10*
-X0Y0D02*
-X950000Y0D01*
-X950000Y-530000D01*
-X0Y-530000D01*
-X0Y0D01*
-X842610Y-27751D02*
-G54D11*
-D03*
-X842610Y-105751D02*
-G54D11*
-D03*
-X836110Y-27751D02*
-G54D11*
-D03*
-X836110Y-105751D02*
-G54D11*
-D03*
-X829610Y-27751D02*
-G54D11*
-D03*
-X829610Y-105751D02*
-G54D11*
-D03*
-X823110Y-27751D02*
-G54D11*
-D03*
-X823110Y-105751D02*
-G54D11*
-D03*
-X816610Y-27751D02*
-G54D11*
-D03*
-X816610Y-105751D02*
-G54D11*
-D03*
-X810110Y-27751D02*
-G54D11*
-D03*
-X810110Y-105751D02*
-G54D11*
-D03*
-X803610Y-27751D02*
-G54D11*
-D03*
-X803610Y-105751D02*
-G54D11*
-D03*
-X797110Y-27751D02*
-G54D11*
-D03*
-X797110Y-105751D02*
-G54D11*
-D03*
-X790610Y-27751D02*
-G54D11*
-D03*
-X790610Y-105751D02*
-G54D11*
-D03*
-X784110Y-27751D02*
-G54D11*
-D03*
-X784110Y-105751D02*
-G54D11*
-D03*
-X777610Y-27751D02*
-G54D11*
-D03*
-X777610Y-105751D02*
-G54D11*
-D03*
-X771110Y-27751D02*
-G54D11*
-D03*
-X771110Y-105751D02*
-G54D11*
-D03*
-X764610Y-27751D02*
-G54D11*
-D03*
-X764610Y-105751D02*
-G54D11*
-D03*
-X758110Y-27751D02*
-G54D11*
-D03*
-X758110Y-105751D02*
-G54D11*
-D03*
-G36*
-X728072Y-79244D02*
-X728072Y-67244D01*
-X740072Y-67244D01*
-X740072Y-79244D01*
-X728072Y-79244D01*
-G37*
-G36*
-X728072Y-68844D02*
-X728072Y-56844D01*
-X740072Y-56844D01*
-X740072Y-68844D01*
-X728072Y-68844D01*
-G37*
-X934500Y-14579D02*
-G54D12*
-D03*
-X934500Y-103579D02*
-G54D12*
-D03*
-X887500Y-14579D02*
-G54D12*
-D03*
-X887500Y-103579D02*
-G54D12*
-D03*
-X886200Y-43179D02*
-G54D13*
-D03*
-X886200Y-51179D02*
-G54D13*
-D03*
-X886200Y-59179D02*
-G54D13*
-D03*
-X886200Y-67179D02*
-G54D13*
-D03*
-X886200Y-75179D02*
-G54D13*
-D03*
-X365572Y-81868D02*
-G54D14*
-D03*
-X466410Y-12140D02*
-G54D15*
-D03*
-X560072Y-72531D02*
-G54D16*
-D03*
-X842848Y-366888D02*
-G54D17*
-D03*
-X817448Y-366888D02*
-G54D17*
-D03*
-X792048Y-366888D02*
-G54D17*
-D03*
-X766648Y-366888D02*
-G54D17*
-D03*
-X741248Y-366888D02*
-G54D17*
-D03*
-X715848Y-366888D02*
-G54D17*
-D03*
-X690448Y-366888D02*
-G54D17*
-D03*
-X665048Y-366888D02*
-G54D17*
-D03*
-X639648Y-366888D02*
-G54D17*
-D03*
-X614248Y-366888D02*
-G54D17*
-D03*
-X588848Y-366888D02*
-G54D17*
-D03*
-X563448Y-366888D02*
-G54D17*
-D03*
-X538048Y-366888D02*
-G54D17*
-D03*
-X512648Y-366888D02*
-G54D17*
-D03*
-X487248Y-366888D02*
-G54D17*
-D03*
-X461848Y-366888D02*
-G54D17*
-D03*
-X436448Y-366888D02*
-G54D17*
-D03*
-X411048Y-366888D02*
-G54D17*
-D03*
-X385648Y-366888D02*
-G54D17*
-D03*
-X360248Y-366888D02*
-G54D17*
-D03*
-X334848Y-366888D02*
-G54D17*
-D03*
-X309448Y-366888D02*
-G54D17*
-D03*
-X284048Y-366888D02*
-G54D17*
-D03*
-X258648Y-366888D02*
-G54D17*
-D03*
-X233248Y-366888D02*
-G54D17*
-D03*
-X207848Y-366888D02*
-G54D17*
-D03*
-X182448Y-366888D02*
-G54D17*
-D03*
-X157047Y-366888D02*
-G54D17*
-D03*
-X131647Y-366888D02*
-G54D17*
-D03*
-X106247Y-366888D02*
-G54D17*
-D03*
-X842848Y-316089D02*
-G54D17*
-D03*
-X817448Y-316089D02*
-G54D17*
-D03*
-X792048Y-316089D02*
-G54D17*
-D03*
-X766648Y-316089D02*
-G54D17*
-D03*
-X741248Y-316089D02*
-G54D17*
-D03*
-X715848Y-316089D02*
-G54D17*
-D03*
-X690448Y-316089D02*
-G54D17*
-D03*
-X665048Y-316089D02*
-G54D17*
-D03*
-X639648Y-316089D02*
-G54D17*
-D03*
-X614248Y-316089D02*
-G54D17*
-D03*
-X588848Y-316089D02*
-G54D17*
-D03*
-X563448Y-316089D02*
-G54D17*
-D03*
-X538048Y-316089D02*
-G54D17*
-D03*
-X512648Y-316089D02*
-G54D17*
-D03*
-X436448Y-316089D02*
-G54D17*
-D03*
-X411048Y-316089D02*
-G54D17*
-D03*
-X385648Y-316089D02*
-G54D17*
-D03*
-X360248Y-316089D02*
-G54D17*
-D03*
-X334848Y-316089D02*
-G54D17*
-D03*
-X309448Y-316089D02*
-G54D17*
-D03*
-X284048Y-316089D02*
-G54D17*
-D03*
-X258648Y-316089D02*
-G54D17*
-D03*
-X233248Y-316089D02*
-G54D17*
-D03*
-X207848Y-316089D02*
-G54D17*
-D03*
-X182448Y-316089D02*
-G54D17*
-D03*
-X157047Y-316089D02*
-G54D17*
-D03*
-X131647Y-316089D02*
-G54D17*
-D03*
-X106247Y-316089D02*
-G54D17*
-D03*
-X544372Y-48931D02*
-G54D18*
-D03*
-X536372Y-48931D02*
-G54D18*
-D03*
-X528372Y-48931D02*
-G54D18*
-D03*
-X520372Y-48931D02*
-G54D18*
-D03*
-X512372Y-48931D02*
-G54D18*
-D03*
-X504372Y-48931D02*
-G54D18*
-D03*
-X496372Y-48931D02*
-G54D18*
-D03*
-X560072Y-64531D02*
-G54D16*
-D03*
-X560072Y-72531D02*
-G54D16*
-D03*
-X560072Y-80531D02*
-G54D16*
-D03*
-X560072Y-88531D02*
-G54D16*
-D03*
-X560072Y-96531D02*
-G54D16*
-D03*
-X560072Y-104531D02*
-G54D16*
-D03*
-X560072Y-112531D02*
-G54D16*
-D03*
-X488372Y-200331D02*
-G54D18*
-D03*
-X496372Y-200331D02*
-G54D18*
-D03*
-X504372Y-200331D02*
-G54D18*
-D03*
-X512372Y-200331D02*
-G54D18*
-D03*
-X520372Y-200331D02*
-G54D18*
-D03*
-X528372Y-200331D02*
-G54D18*
-D03*
-X536372Y-200331D02*
-G54D18*
-D03*
-X409072Y-120331D02*
-G54D16*
-D03*
-X409072Y-112331D02*
-G54D16*
-D03*
-X409072Y-104331D02*
-G54D16*
-D03*
-X409072Y-96331D02*
-G54D16*
-D03*
-X409072Y-88331D02*
-G54D16*
-D03*
-X409072Y-80331D02*
-G54D16*
-D03*
-X409072Y-72331D02*
-G54D16*
-D03*
-X409072Y-64331D02*
-G54D16*
-D03*
-X409072Y-72331D02*
-G54D16*
-D03*
-X409072Y-80331D02*
-G54D16*
-D03*
-X409072Y-88331D02*
-G54D16*
-D03*
-X409072Y-96331D02*
-G54D16*
-D03*
-X409072Y-104331D02*
-G54D16*
-D03*
-X409072Y-112331D02*
-G54D16*
-D03*
-X488372Y-48931D02*
-G54D18*
-D03*
-X496372Y-48931D02*
-G54D18*
-D03*
-X504372Y-48931D02*
-G54D18*
-D03*
-X512372Y-48931D02*
-G54D18*
-D03*
-X520372Y-48931D02*
-G54D18*
-D03*
-X528372Y-48931D02*
-G54D18*
-D03*
-X536372Y-48931D02*
-G54D18*
-D03*
-X560072Y-120531D02*
-G54D16*
-D03*
-X560072Y-112531D02*
-G54D16*
-D03*
-X560072Y-104531D02*
-G54D16*
-D03*
-X560072Y-96531D02*
-G54D16*
-D03*
-X560072Y-88531D02*
-G54D16*
-D03*
-X560072Y-80531D02*
-G54D16*
-D03*
-X560072Y-72531D02*
-G54D16*
-D03*
-X544372Y-200331D02*
-G54D18*
-D03*
-X536372Y-200331D02*
-G54D18*
-D03*
-X528372Y-200331D02*
-G54D18*
-D03*
-X520372Y-200331D02*
-G54D18*
-D03*
-X512372Y-200331D02*
-G54D18*
-D03*
-X504372Y-200331D02*
-G54D18*
-D03*
-X496372Y-200331D02*
-G54D18*
-D03*
-X560072Y-128531D02*
-G54D16*
-D03*
-X560072Y-136531D02*
-G54D16*
-D03*
-X560072Y-144531D02*
-G54D16*
-D03*
-X560072Y-152531D02*
-G54D16*
-D03*
-X560072Y-160531D02*
-G54D16*
-D03*
-X560072Y-168531D02*
-G54D16*
-D03*
-X560072Y-176531D02*
-G54D16*
-D03*
-X560072Y-184531D02*
-G54D16*
-D03*
-X560072Y-176531D02*
-G54D16*
-D03*
-X560072Y-168531D02*
-G54D16*
-D03*
-X560072Y-160531D02*
-G54D16*
-D03*
-X560072Y-152531D02*
-G54D16*
-D03*
-X560072Y-144531D02*
-G54D16*
-D03*
-X560072Y-136531D02*
-G54D16*
-D03*
-X480372Y-48931D02*
-G54D18*
-D03*
-X472372Y-48931D02*
-G54D18*
-D03*
-X464372Y-48931D02*
-G54D18*
-D03*
-X456372Y-48931D02*
-G54D18*
-D03*
-X448372Y-48931D02*
-G54D18*
-D03*
-X440372Y-48931D02*
-G54D18*
-D03*
-X432372Y-48931D02*
-G54D18*
-D03*
-X424372Y-48931D02*
-G54D18*
-D03*
-X432372Y-48931D02*
-G54D18*
-D03*
-X440372Y-48931D02*
-G54D18*
-D03*
-X448372Y-48931D02*
-G54D18*
-D03*
-X456372Y-48931D02*
-G54D18*
-D03*
-X464372Y-48931D02*
-G54D18*
-D03*
-X472372Y-48931D02*
-G54D18*
-D03*
-X424372Y-200331D02*
-G54D18*
-D03*
-X432372Y-200331D02*
-G54D18*
-D03*
-X448372Y-200331D02*
-G54D18*
-D03*
-X456372Y-200331D02*
-G54D18*
-D03*
-X464372Y-200331D02*
-G54D18*
-D03*
-X472372Y-200331D02*
-G54D18*
-D03*
-X480372Y-200331D02*
-G54D18*
-D03*
-X480372Y-200331D02*
-G54D18*
-D03*
-X472372Y-200331D02*
-G54D18*
-D03*
-X464372Y-200331D02*
-G54D18*
-D03*
-X456372Y-200331D02*
-G54D18*
-D03*
-X448372Y-200331D02*
-G54D18*
-D03*
-X432372Y-200331D02*
-G54D18*
-D03*
-X409072Y-184331D02*
-G54D16*
-D03*
-X409072Y-176331D02*
-G54D16*
-D03*
-X409072Y-168331D02*
-G54D16*
-D03*
-X409072Y-160331D02*
-G54D16*
-D03*
-X409072Y-152331D02*
-G54D16*
-D03*
-X409072Y-144331D02*
-G54D16*
-D03*
-X409072Y-136331D02*
-G54D16*
-D03*
-X409072Y-128331D02*
-G54D16*
-D03*
-X409072Y-136331D02*
-G54D16*
-D03*
-X409072Y-144331D02*
-G54D16*
-D03*
-X409072Y-152331D02*
-G54D16*
-D03*
-X409072Y-160331D02*
-G54D16*
-D03*
-X409072Y-168331D02*
-G54D16*
-D03*
-X409072Y-176331D02*
-G54D16*
-D03*
-X440372Y-200331D02*
-G54D18*
-D03*
-X461848Y-316088D02*
-G54D17*
-D03*
-X487248Y-316088D02*
-G54D17*
-D03*
-G36*
-X429500Y-503192D02*
-X448500Y-503192D01*
-X448500Y-522192D01*
-X429500Y-522192D01*
-X429500Y-503192D01*
-G37*
-G36*
-X451250Y-503192D02*
-X470250Y-503192D01*
-X470250Y-522192D01*
-X451250Y-522192D01*
-X451250Y-503192D01*
-G37*
-X624372Y-21239D02*
-G54D14*
-D03*
-X624372Y-35068D02*
-G54D14*
-D03*
-G36*
-X832019Y-5979D02*
-X844019Y-5979D01*
-X844019Y-17979D01*
-X832019Y-17979D01*
-X832019Y-5979D01*
-G37*
-G36*
-X842419Y-5979D02*
-X854419Y-5979D01*
-X854419Y-17979D01*
-X842419Y-17979D01*
-X842419Y-5979D01*
-G37*
-G36*
-X217900Y-505900D02*
-X217900Y-480900D01*
-X242900Y-480900D01*
-X242900Y-505900D01*
-X217900Y-505900D01*
-G37*
-G36*
-X192500Y-505900D02*
-X192500Y-480900D01*
-X217500Y-480900D01*
-X217500Y-505900D01*
-X192500Y-505900D01*
-G37*
-G36*
-X167100Y-505900D02*
-X167100Y-480900D01*
-X192100Y-480900D01*
-X192100Y-505900D01*
-X167100Y-505900D01*
-G37*
-G36*
-X167100Y-480500D02*
-X167100Y-455500D01*
-X192100Y-455500D01*
-X192100Y-480500D01*
-X167100Y-480500D01*
-G37*
-G36*
-X192500Y-480500D02*
-X192500Y-455500D01*
-X217500Y-455500D01*
-X217500Y-480500D01*
-X192500Y-480500D01*
-G37*
-G36*
-X217900Y-480500D02*
-X217900Y-455500D01*
-X242900Y-455500D01*
-X242900Y-480500D01*
-X217900Y-480500D01*
-G37*
-G36*
-X243300Y-505900D02*
-X243300Y-480900D01*
-X268300Y-480900D01*
-X268300Y-505900D01*
-X243300Y-505900D01*
-G37*
-G36*
-X243300Y-480500D02*
-X243300Y-455500D01*
-X268300Y-455500D01*
-X268300Y-480500D01*
-X243300Y-480500D01*
-G37*
-G36*
-X141700Y-505900D02*
-X141700Y-480900D01*
-X166700Y-480900D01*
-X166700Y-505900D01*
-X141700Y-505900D01*
-G37*
-G36*
-X141700Y-480500D02*
-X141700Y-455500D01*
-X166700Y-455500D01*
-X166700Y-480500D01*
-X141700Y-480500D01*
-G37*
-G36*
-X590082Y-65528D02*
-X590082Y-77528D01*
-X578082Y-77528D01*
-X578082Y-65528D01*
-X590082Y-65528D01*
-G37*
-G36*
-X590082Y-75928D02*
-X590082Y-87928D01*
-X578082Y-87928D01*
-X578082Y-75928D01*
-X590082Y-75928D01*
-G37*
-G36*
-X389925Y-77883D02*
-X389925Y-89883D01*
-X377925Y-89883D01*
-X377925Y-77883D01*
-X389925Y-77883D01*
-G37*
-G36*
-X389925Y-88283D02*
-X389925Y-100283D01*
-X377925Y-100283D01*
-X377925Y-88283D01*
-X389925Y-88283D01*
-G37*
-G36*
-X410137Y-502059D02*
-X398137Y-502059D01*
-X398137Y-490059D01*
-X410137Y-490059D01*
-X410137Y-502059D01*
-G37*
-G36*
-X399737Y-502059D02*
-X387737Y-502059D01*
-X387737Y-490059D01*
-X399737Y-490059D01*
-X399737Y-502059D01*
-G37*
-G36*
-X410116Y-485982D02*
-X398116Y-485982D01*
-X398116Y-473982D01*
-X410116Y-473982D01*
-X410116Y-485982D01*
-G37*
-G36*
-X399716Y-485982D02*
-X387716Y-485982D01*
-X387716Y-473982D01*
-X399716Y-473982D01*
-X399716Y-485982D01*
-G37*
-G36*
-X518333Y-522289D02*
-X499333Y-522289D01*
-X499333Y-503289D01*
-X518333Y-503289D01*
-X518333Y-522289D01*
-G37*
-G36*
-X496583Y-522289D02*
-X477583Y-522289D01*
-X477583Y-503289D01*
-X496583Y-503289D01*
-X496583Y-522289D01*
-G37*
-X860630Y-168070D02*
-G54D19*
-D03*
-X860630Y-143170D02*
-G54D19*
-D03*
-M02*
+%FSLAX34Y34*%
+%MOMM*%
+%LNSOLDERMASK_TOP*%
+G71*
+G01*
+%ADD10C, 0.00*%
+%ADD11R, 0.50X1.50*%
+%ADD12R, 2.70X2.20*%
+%ADD13R, 2.50X0.60*%
+%ADD14R, 1.40X1.00*%
+%ADD15R, 1.00X1.40*%
+%ADD16R, 1.70X0.60*%
+%ADD17C, 2.70*%
+%ADD18R, 0.60X1.70*%
+%ADD19C, 2.24*%
+%LPD*%
+G54D10*
+X0Y0D02*
+X950000Y0D01*
+X950000Y-530000D01*
+X0Y-530000D01*
+X0Y0D01*
+X842610Y-27751D02*
+G54D11*
+D03*
+X842610Y-105751D02*
+G54D11*
+D03*
+X836110Y-27751D02*
+G54D11*
+D03*
+X836110Y-105751D02*
+G54D11*
+D03*
+X829610Y-27751D02*
+G54D11*
+D03*
+X829610Y-105751D02*
+G54D11*
+D03*
+X823110Y-27751D02*
+G54D11*
+D03*
+X823110Y-105751D02*
+G54D11*
+D03*
+X816610Y-27751D02*
+G54D11*
+D03*
+X816610Y-105751D02*
+G54D11*
+D03*
+X810110Y-27751D02*
+G54D11*
+D03*
+X810110Y-105751D02*
+G54D11*
+D03*
+X803610Y-27751D02*
+G54D11*
+D03*
+X803610Y-105751D02*
+G54D11*
+D03*
+X797110Y-27751D02*
+G54D11*
+D03*
+X797110Y-105751D02*
+G54D11*
+D03*
+X790610Y-27751D02*
+G54D11*
+D03*
+X790610Y-105751D02*
+G54D11*
+D03*
+X784110Y-27751D02*
+G54D11*
+D03*
+X784110Y-105751D02*
+G54D11*
+D03*
+X777610Y-27751D02*
+G54D11*
+D03*
+X777610Y-105751D02*
+G54D11*
+D03*
+X771110Y-27751D02*
+G54D11*
+D03*
+X771110Y-105751D02*
+G54D11*
+D03*
+X764610Y-27751D02*
+G54D11*
+D03*
+X764610Y-105751D02*
+G54D11*
+D03*
+X758110Y-27751D02*
+G54D11*
+D03*
+X758110Y-105751D02*
+G54D11*
+D03*
+G36*
+X728072Y-79244D02*
+X728072Y-67244D01*
+X740072Y-67244D01*
+X740072Y-79244D01*
+X728072Y-79244D01*
+G37*
+G36*
+X728072Y-68844D02*
+X728072Y-56844D01*
+X740072Y-56844D01*
+X740072Y-68844D01*
+X728072Y-68844D01*
+G37*
+X934500Y-14579D02*
+G54D12*
+D03*
+X934500Y-103579D02*
+G54D12*
+D03*
+X887500Y-14579D02*
+G54D12*
+D03*
+X887500Y-103579D02*
+G54D12*
+D03*
+X886200Y-43179D02*
+G54D13*
+D03*
+X886200Y-51179D02*
+G54D13*
+D03*
+X886200Y-59179D02*
+G54D13*
+D03*
+X886200Y-67179D02*
+G54D13*
+D03*
+X886200Y-75179D02*
+G54D13*
+D03*
+X365572Y-81868D02*
+G54D14*
+D03*
+X466410Y-12140D02*
+G54D15*
+D03*
+X560072Y-72531D02*
+G54D16*
+D03*
+X842848Y-366888D02*
+G54D17*
+D03*
+X817448Y-366888D02*
+G54D17*
+D03*
+X792048Y-366888D02*
+G54D17*
+D03*
+X766648Y-366888D02*
+G54D17*
+D03*
+X741248Y-366888D02*
+G54D17*
+D03*
+X715848Y-366888D02*
+G54D17*
+D03*
+X690448Y-366888D02*
+G54D17*
+D03*
+X665048Y-366888D02*
+G54D17*
+D03*
+X639648Y-366888D02*
+G54D17*
+D03*
+X614248Y-366888D02*
+G54D17*
+D03*
+X588848Y-366888D02*
+G54D17*
+D03*
+X563448Y-366888D02*
+G54D17*
+D03*
+X538048Y-366888D02*
+G54D17*
+D03*
+X512648Y-366888D02*
+G54D17*
+D03*
+X487248Y-366888D02*
+G54D17*
+D03*
+X461848Y-366888D02*
+G54D17*
+D03*
+X436448Y-366888D02*
+G54D17*
+D03*
+X411048Y-366888D02*
+G54D17*
+D03*
+X385648Y-366888D02*
+G54D17*
+D03*
+X360248Y-366888D02*
+G54D17*
+D03*
+X334848Y-366888D02*
+G54D17*
+D03*
+X309448Y-366888D02*
+G54D17*
+D03*
+X284048Y-366888D02*
+G54D17*
+D03*
+X258648Y-366888D02*
+G54D17*
+D03*
+X233248Y-366888D02*
+G54D17*
+D03*
+X207848Y-366888D02*
+G54D17*
+D03*
+X182448Y-366888D02*
+G54D17*
+D03*
+X157047Y-366888D02*
+G54D17*
+D03*
+X131647Y-366888D02*
+G54D17*
+D03*
+X106247Y-366888D02*
+G54D17*
+D03*
+X842848Y-316089D02*
+G54D17*
+D03*
+X817448Y-316089D02*
+G54D17*
+D03*
+X792048Y-316089D02*
+G54D17*
+D03*
+X766648Y-316089D02*
+G54D17*
+D03*
+X741248Y-316089D02*
+G54D17*
+D03*
+X715848Y-316089D02*
+G54D17*
+D03*
+X690448Y-316089D02*
+G54D17*
+D03*
+X665048Y-316089D02*
+G54D17*
+D03*
+X639648Y-316089D02*
+G54D17*
+D03*
+X614248Y-316089D02*
+G54D17*
+D03*
+X588848Y-316089D02*
+G54D17*
+D03*
+X563448Y-316089D02*
+G54D17*
+D03*
+X538048Y-316089D02*
+G54D17*
+D03*
+X512648Y-316089D02*
+G54D17*
+D03*
+X436448Y-316089D02*
+G54D17*
+D03*
+X411048Y-316089D02*
+G54D17*
+D03*
+X385648Y-316089D02*
+G54D17*
+D03*
+X360248Y-316089D02*
+G54D17*
+D03*
+X334848Y-316089D02*
+G54D17*
+D03*
+X309448Y-316089D02*
+G54D17*
+D03*
+X284048Y-316089D02*
+G54D17*
+D03*
+X258648Y-316089D02*
+G54D17*
+D03*
+X233248Y-316089D02*
+G54D17*
+D03*
+X207848Y-316089D02*
+G54D17*
+D03*
+X182448Y-316089D02*
+G54D17*
+D03*
+X157047Y-316089D02*
+G54D17*
+D03*
+X131647Y-316089D02*
+G54D17*
+D03*
+X106247Y-316089D02*
+G54D17*
+D03*
+X544372Y-48931D02*
+G54D18*
+D03*
+X536372Y-48931D02*
+G54D18*
+D03*
+X528372Y-48931D02*
+G54D18*
+D03*
+X520372Y-48931D02*
+G54D18*
+D03*
+X512372Y-48931D02*
+G54D18*
+D03*
+X504372Y-48931D02*
+G54D18*
+D03*
+X496372Y-48931D02*
+G54D18*
+D03*
+X560072Y-64531D02*
+G54D16*
+D03*
+X560072Y-72531D02*
+G54D16*
+D03*
+X560072Y-80531D02*
+G54D16*
+D03*
+X560072Y-88531D02*
+G54D16*
+D03*
+X560072Y-96531D02*
+G54D16*
+D03*
+X560072Y-104531D02*
+G54D16*
+D03*
+X560072Y-112531D02*
+G54D16*
+D03*
+X488372Y-200331D02*
+G54D18*
+D03*
+X496372Y-200331D02*
+G54D18*
+D03*
+X504372Y-200331D02*
+G54D18*
+D03*
+X512372Y-200331D02*
+G54D18*
+D03*
+X520372Y-200331D02*
+G54D18*
+D03*
+X528372Y-200331D02*
+G54D18*
+D03*
+X536372Y-200331D02*
+G54D18*
+D03*
+X409072Y-120331D02*
+G54D16*
+D03*
+X409072Y-112331D02*
+G54D16*
+D03*
+X409072Y-104331D02*
+G54D16*
+D03*
+X409072Y-96331D02*
+G54D16*
+D03*
+X409072Y-88331D02*
+G54D16*
+D03*
+X409072Y-80331D02*
+G54D16*
+D03*
+X409072Y-72331D02*
+G54D16*
+D03*
+X409072Y-64331D02*
+G54D16*
+D03*
+X409072Y-72331D02*
+G54D16*
+D03*
+X409072Y-80331D02*
+G54D16*
+D03*
+X409072Y-88331D02*
+G54D16*
+D03*
+X409072Y-96331D02*
+G54D16*
+D03*
+X409072Y-104331D02*
+G54D16*
+D03*
+X409072Y-112331D02*
+G54D16*
+D03*
+X488372Y-48931D02*
+G54D18*
+D03*
+X496372Y-48931D02*
+G54D18*
+D03*
+X504372Y-48931D02*
+G54D18*
+D03*
+X512372Y-48931D02*
+G54D18*
+D03*
+X520372Y-48931D02*
+G54D18*
+D03*
+X528372Y-48931D02*
+G54D18*
+D03*
+X536372Y-48931D02*
+G54D18*
+D03*
+X560072Y-120531D02*
+G54D16*
+D03*
+X560072Y-112531D02*
+G54D16*
+D03*
+X560072Y-104531D02*
+G54D16*
+D03*
+X560072Y-96531D02*
+G54D16*
+D03*
+X560072Y-88531D02*
+G54D16*
+D03*
+X560072Y-80531D02*
+G54D16*
+D03*
+X560072Y-72531D02*
+G54D16*
+D03*
+X544372Y-200331D02*
+G54D18*
+D03*
+X536372Y-200331D02*
+G54D18*
+D03*
+X528372Y-200331D02*
+G54D18*
+D03*
+X520372Y-200331D02*
+G54D18*
+D03*
+X512372Y-200331D02*
+G54D18*
+D03*
+X504372Y-200331D02*
+G54D18*
+D03*
+X496372Y-200331D02*
+G54D18*
+D03*
+X560072Y-128531D02*
+G54D16*
+D03*
+X560072Y-136531D02*
+G54D16*
+D03*
+X560072Y-144531D02*
+G54D16*
+D03*
+X560072Y-152531D02*
+G54D16*
+D03*
+X560072Y-160531D02*
+G54D16*
+D03*
+X560072Y-168531D02*
+G54D16*
+D03*
+X560072Y-176531D02*
+G54D16*
+D03*
+X560072Y-184531D02*
+G54D16*
+D03*
+X560072Y-176531D02*
+G54D16*
+D03*
+X560072Y-168531D02*
+G54D16*
+D03*
+X560072Y-160531D02*
+G54D16*
+D03*
+X560072Y-152531D02*
+G54D16*
+D03*
+X560072Y-144531D02*
+G54D16*
+D03*
+X560072Y-136531D02*
+G54D16*
+D03*
+X480372Y-48931D02*
+G54D18*
+D03*
+X472372Y-48931D02*
+G54D18*
+D03*
+X464372Y-48931D02*
+G54D18*
+D03*
+X456372Y-48931D02*
+G54D18*
+D03*
+X448372Y-48931D02*
+G54D18*
+D03*
+X440372Y-48931D02*
+G54D18*
+D03*
+X432372Y-48931D02*
+G54D18*
+D03*
+X424372Y-48931D02*
+G54D18*
+D03*
+X432372Y-48931D02*
+G54D18*
+D03*
+X440372Y-48931D02*
+G54D18*
+D03*
+X448372Y-48931D02*
+G54D18*
+D03*
+X456372Y-48931D02*
+G54D18*
+D03*
+X464372Y-48931D02*
+G54D18*
+D03*
+X472372Y-48931D02*
+G54D18*
+D03*
+X424372Y-200331D02*
+G54D18*
+D03*
+X432372Y-200331D02*
+G54D18*
+D03*
+X448372Y-200331D02*
+G54D18*
+D03*
+X456372Y-200331D02*
+G54D18*
+D03*
+X464372Y-200331D02*
+G54D18*
+D03*
+X472372Y-200331D02*
+G54D18*
+D03*
+X480372Y-200331D02*
+G54D18*
+D03*
+X480372Y-200331D02*
+G54D18*
+D03*
+X472372Y-200331D02*
+G54D18*
+D03*
+X464372Y-200331D02*
+G54D18*
+D03*
+X456372Y-200331D02*
+G54D18*
+D03*
+X448372Y-200331D02*
+G54D18*
+D03*
+X432372Y-200331D02*
+G54D18*
+D03*
+X409072Y-184331D02*
+G54D16*
+D03*
+X409072Y-176331D02*
+G54D16*
+D03*
+X409072Y-168331D02*
+G54D16*
+D03*
+X409072Y-160331D02*
+G54D16*
+D03*
+X409072Y-152331D02*
+G54D16*
+D03*
+X409072Y-144331D02*
+G54D16*
+D03*
+X409072Y-136331D02*
+G54D16*
+D03*
+X409072Y-128331D02*
+G54D16*
+D03*
+X409072Y-136331D02*
+G54D16*
+D03*
+X409072Y-144331D02*
+G54D16*
+D03*
+X409072Y-152331D02*
+G54D16*
+D03*
+X409072Y-160331D02*
+G54D16*
+D03*
+X409072Y-168331D02*
+G54D16*
+D03*
+X409072Y-176331D02*
+G54D16*
+D03*
+X440372Y-200331D02*
+G54D18*
+D03*
+X461848Y-316088D02*
+G54D17*
+D03*
+X487248Y-316088D02*
+G54D17*
+D03*
+G36*
+X429500Y-503192D02*
+X448500Y-503192D01*
+X448500Y-522192D01*
+X429500Y-522192D01*
+X429500Y-503192D01*
+G37*
+G36*
+X451250Y-503192D02*
+X470250Y-503192D01*
+X470250Y-522192D01*
+X451250Y-522192D01*
+X451250Y-503192D01*
+G37*
+X624372Y-21239D02*
+G54D14*
+D03*
+X624372Y-35068D02*
+G54D14*
+D03*
+G36*
+X832019Y-5979D02*
+X844019Y-5979D01*
+X844019Y-17979D01*
+X832019Y-17979D01*
+X832019Y-5979D01*
+G37*
+G36*
+X842419Y-5979D02*
+X854419Y-5979D01*
+X854419Y-17979D01*
+X842419Y-17979D01*
+X842419Y-5979D01*
+G37*
+G36*
+X217900Y-505900D02*
+X217900Y-480900D01*
+X242900Y-480900D01*
+X242900Y-505900D01*
+X217900Y-505900D01*
+G37*
+G36*
+X192500Y-505900D02*
+X192500Y-480900D01*
+X217500Y-480900D01*
+X217500Y-505900D01*
+X192500Y-505900D01*
+G37*
+G36*
+X167100Y-505900D02*
+X167100Y-480900D01*
+X192100Y-480900D01*
+X192100Y-505900D01*
+X167100Y-505900D01*
+G37*
+G36*
+X167100Y-480500D02*
+X167100Y-455500D01*
+X192100Y-455500D01*
+X192100Y-480500D01*
+X167100Y-480500D01*
+G37*
+G36*
+X192500Y-480500D02*
+X192500Y-455500D01*
+X217500Y-455500D01*
+X217500Y-480500D01*
+X192500Y-480500D01*
+G37*
+G36*
+X217900Y-480500D02*
+X217900Y-455500D01*
+X242900Y-455500D01*
+X242900Y-480500D01*
+X217900Y-480500D01*
+G37*
+G36*
+X243300Y-505900D02*
+X243300Y-480900D01*
+X268300Y-480900D01*
+X268300Y-505900D01*
+X243300Y-505900D01*
+G37*
+G36*
+X243300Y-480500D02*
+X243300Y-455500D01*
+X268300Y-455500D01*
+X268300Y-480500D01*
+X243300Y-480500D01*
+G37*
+G36*
+X141700Y-505900D02*
+X141700Y-480900D01*
+X166700Y-480900D01*
+X166700Y-505900D01*
+X141700Y-505900D01*
+G37*
+G36*
+X141700Y-480500D02*
+X141700Y-455500D01*
+X166700Y-455500D01*
+X166700Y-480500D01*
+X141700Y-480500D01*
+G37*
+G36*
+X590082Y-65528D02*
+X590082Y-77528D01*
+X578082Y-77528D01*
+X578082Y-65528D01*
+X590082Y-65528D01*
+G37*
+G36*
+X590082Y-75928D02*
+X590082Y-87928D01*
+X578082Y-87928D01*
+X578082Y-75928D01*
+X590082Y-75928D01*
+G37*
+G36*
+X389925Y-77883D02*
+X389925Y-89883D01*
+X377925Y-89883D01*
+X377925Y-77883D01*
+X389925Y-77883D01*
+G37*
+G36*
+X389925Y-88283D02*
+X389925Y-100283D01*
+X377925Y-100283D01*
+X377925Y-88283D01*
+X389925Y-88283D01*
+G37*
+G36*
+X410137Y-502059D02*
+X398137Y-502059D01*
+X398137Y-490059D01*
+X410137Y-490059D01*
+X410137Y-502059D01*
+G37*
+G36*
+X399737Y-502059D02*
+X387737Y-502059D01*
+X387737Y-490059D01*
+X399737Y-490059D01*
+X399737Y-502059D01*
+G37*
+G36*
+X410116Y-485982D02*
+X398116Y-485982D01*
+X398116Y-473982D01*
+X410116Y-473982D01*
+X410116Y-485982D01*
+G37*
+G36*
+X399716Y-485982D02*
+X387716Y-485982D01*
+X387716Y-473982D01*
+X399716Y-473982D01*
+X399716Y-485982D01*
+G37*
+G36*
+X518333Y-522289D02*
+X499333Y-522289D01*
+X499333Y-503289D01*
+X518333Y-503289D01*
+X518333Y-522289D01*
+G37*
+G36*
+X496583Y-522289D02*
+X477583Y-522289D01*
+X477583Y-503289D01*
+X496583Y-503289D01*
+X496583Y-522289D01*
+G37*
+X860630Y-168070D02*
+G54D19*
+D03*
+X860630Y-143170D02*
+G54D19*
+D03*
+M02*
diff --git a/bootloader/main.c b/bootloader/main.c
index 92c1d4d..b2a0212 100644
--- a/bootloader/main.c
+++ b/bootloader/main.c
@@ -38,7 +38,7 @@
/* Частота контроллера (кварца) */
#ifndef F_CPU
// #define F_CPU 7372800
-//#define F_CPU (7372800/2)
+//#define F_CPU (7372800/2)
//#define F_CPU 11059200UL
#define F_CPU 8000000UL
#endif
@@ -70,19 +70,19 @@
#define BLPIN PIND
#define BLPNUM PIND7
-
+
/*
* Выбор порта для индикатора работы загрузчика
* Светодиод горит - мы в загрузчике
- */
-
+ */
+
#define ENABLE_BOOT_LED
#define BIPORT PORTB
#define BIDDR DDRB
#define BIPIN PINB
-#define BIPNUM PINB6
-#define BIPNUM2 PINB7
-
+#define BIPNUM PINB6
+#define BIPNUM2 PINB7
+
/*
* Выключить Собачий таймер на время загрузчика
@@ -154,13 +154,13 @@
#define GET_EXTENDED_FUSE_BITS 0x0002
/* Расчет делителя частоты для USART*/
-#ifdef UART_DOUBLESPEED
+#ifdef UART_DOUBLESPEED
- #define UART_CALC_BAUDRATE(baudRate) ((uint32_t)((F_CPU) + ((uint32_t)baudRate * 4UL)) / ((uint32_t)(baudRate) * 8UL) - 1)
+ #define UART_CALC_BAUDRATE(baudRate) ((uint32_t)((F_CPU) + ((uint32_t)baudRate * 4UL)) / ((uint32_t)(baudRate) * 8UL) - 1)
-#else
+#else
- #define UART_CALC_BAUDRATE(baudRate) ((uint32_t)((F_CPU) + ((uint32_t)baudRate * 8UL)) / ((uint32_t)(baudRate) * 16UL) - 1)
+ #define UART_CALC_BAUDRATE(baudRate) ((uint32_t)((F_CPU) + ((uint32_t)baudRate * 8UL)) / ((uint32_t)(baudRate) * 16UL) - 1)
#endif
@@ -201,7 +201,7 @@ static inline void eraseFlash(void)
{
// erase only main section (bootloader protection)
uint32_t addr = 0;
- while (APP_END > addr)
+ while (APP_END > addr)
{
boot_page_erase(addr); // Perform page erase
boot_spm_busy_wait(); // Wait until the memory is erased.
@@ -215,7 +215,7 @@ static inline void recvBuffer(pagebuf_t size)
pagebuf_t cnt;
uint8_t *tmp = gBuffer;
- for (cnt = 0; cnt < sizeof(gBuffer); cnt++)
+ for (cnt = 0; cnt < sizeof(gBuffer); cnt++)
{
*tmp++ = (cnt < size) ? recvchar() : 0xFF;
}
@@ -228,7 +228,7 @@ static inline uint16_t writeFlashPage(uint16_t waddr, pagebuf_t size)
uint16_t data;
uint8_t *tmp = gBuffer;
- do
+ do
{
data = *tmp++;
data |= *tmp++ << 8;
@@ -236,7 +236,7 @@ static inline uint16_t writeFlashPage(uint16_t waddr, pagebuf_t size)
baddr += 2; // Select next word in memory
size -= 2; // Reduce number of bytes to write by two
- }
+ }
while (size); // Loop until all bytes written
boot_page_write(pagestart);
@@ -250,12 +250,12 @@ static inline uint16_t writeEEpromPage(uint16_t address, pagebuf_t size)
{
uint8_t *tmp = gBuffer;
- do
+ do
{
eeprom_write_byte( (uint8_t*)address, *tmp++ );
address++; // Select next byte
size--; // Decreas number of bytes to write
- }
+ }
while (size); // Loop until all bytes written
// eeprom_busy_wait();
@@ -268,29 +268,29 @@ static inline uint16_t readFlashPage(uint16_t waddr, pagebuf_t size)
uint32_t baddr = (uint32_t)waddr<<1;
uint16_t data;
- do
- {
+ do
+ {
#ifndef READ_PROTECT_BOOTLOADER
-#warning "Bootloader not read-protected"
+#warning "Bootloader not read-protected"
#if defined(RAMPZ)
data = pgm_read_word_far(baddr);
#else
data = pgm_read_word_near(baddr);
- #endif
+ #endif
#else
// don't read bootloader
- if ( baddr < APP_END )
- {
+ if ( baddr < APP_END )
+ {
#if defined(RAMPZ)
data = pgm_read_word_far(baddr);
#else
data = pgm_read_word_near(baddr);
#endif
}
- else
+ else
{
data = 0xFFFF; // fake empty
}
@@ -299,19 +299,19 @@ static inline uint16_t readFlashPage(uint16_t waddr, pagebuf_t size)
sendchar((data >> 8)); // send MSB
baddr += 2; // Select next word in memory
size -= 2; // Subtract two bytes from number of bytes to read
- }
+ }
while (size); // Repeat until block has been read
return baddr>>1;
}
static inline uint16_t readEEpromPage(uint16_t address, pagebuf_t size)
{
- do
+ do
{
sendchar( eeprom_read_byte( (uint8_t*)address ) );
address++;
size--; // Decrease number of bytes to read
- }
+ }
while (size); // Repeat until block has been read
return address;
@@ -357,16 +357,16 @@ int main(void)
if (MCUCSR & (1<<WDRF)) jump_to_app();
MCUCSR = 0;
uint16_t address = 0;
- uint8_t device = 0, val;
-
-
-
-#ifdef ENABLE_BOOT_LED // LED ON
- BIPORT |= ((1<<BIPNUM)|(1<<BIPNUM2));
- BIDDR |= ((1<<BIPNUM)|(1<<BIPNUM2));
-#endif
-
-
+ uint8_t device = 0, val;
+
+
+
+#ifdef ENABLE_BOOT_LED // LED ON
+ BIPORT |= ((1<<BIPNUM)|(1<<BIPNUM2));
+ BIDDR |= ((1<<BIPNUM)|(1<<BIPNUM2));
+#endif
+
+
#ifdef DISABLE_WDT_AT_STARTUP
#ifdef WDT_OFF_SPECIAL
#warning "using target specific watchdog_off"
@@ -403,41 +403,41 @@ int main(void)
the main parser-loop gives a lot a possibilities (timeout, sleep-modes
etc.).
*/
- for(;OK;)
+ for(;OK;)
{
- if ((BLPIN & (1<<BLPNUM)))
+ if ((BLPIN & (1<<BLPNUM)))
{
// jump to main app if pin is not grounded
- BLPORT &= ~(1<<BLPNUM); // set to default
+ BLPORT &= ~(1<<BLPNUM); // set to default
#ifdef UART_DOUBLESPEED
UART_STATUS &= ~( 1<<UART_DOUBLE );
- #endif
-
-
- #ifdef ENABLE_BOOT_LED // LED OFF
- BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
- BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
- #endif
+ #endif
+
+
+ #ifdef ENABLE_BOOT_LED // LED OFF
+ BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ #endif
jump_to_app(); // Jump to application sector
- }
- else
+ }
+ else
{
val = recvchar();
/* ESC */
- if (val == 0x1B)
+ if (val == 0x1B)
{
// AVRPROG connection
// Wait for signon
while (val != 'S')
- val = recvchar();
+ val = recvchar();
send_boot(); // Report signon
OK = 0;
- }
- else
+ }
+ else
{
sendchar('?');
}
@@ -449,16 +449,16 @@ int main(void)
if ((BLPIN & (1<<BLPNUM))) {
// jump to main app if pin is not grounded
- BLPORT &= ~(1<<BLPNUM); // set to default
+ BLPORT &= ~(1<<BLPNUM); // set to default
#ifdef UART_DOUBLESPEED
UART_STATUS &= ~( 1<<UART_DOUBLE );
- #endif
-
- #ifdef ENABLE_BOOT_LED // LED OFF
- BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
- BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
- #endif
+ #endif
+
+ #ifdef ENABLE_BOOT_LED // LED OFF
+ BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ #endif
jump_to_app(); // Jump to application sector
}
@@ -473,12 +473,12 @@ int main(void)
break;
if (cnt++ >= WAIT_VALUE) {
- BLPORT &= ~(1<<BLPNUM); // set to default
-
-
- #ifdef ENABLE_BOOT_LED // LED OFF
- BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
- BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ BLPORT &= ~(1<<BLPNUM); // set to default
+
+
+ #ifdef ENABLE_BOOT_LED // LED OFF
+ BIPORT &= ~((1<<BIPNUM)|(1<<BIPNUM2));
+ BIDDR &= ~((1<<BIPNUM)|(1<<BIPNUM2));
#endif
jump_to_app(); // Jump to application sector
}
@@ -492,36 +492,36 @@ int main(void)
#else
#error "Select START_ condition for bootloader in main.c"
-#endif
+#endif
- for(;;)
+ for(;;)
{
val = recvchar();
// Autoincrement?
- if (val == 'a')
+ if (val == 'a')
{
sendchar('Y'); // Autoincrement is quicker
//write address
- }
- else if (val == 'A')
+ }
+ else if (val == 'A')
{
address = recvchar(); //read address 8 MSB
address = (address<<8) | recvchar();
sendchar('\r');
// Buffer load support
- }
- else if (val == 'b')
+ }
+ else if (val == 'b')
{
sendchar('Y'); // Report buffer load supported
sendchar((sizeof(gBuffer) >> 8) & 0xFF); // Report buffer size in bytes
sendchar(sizeof(gBuffer) & 0xFF);
// Start buffer load
- }
- else if (val == 'B')
+ }
+ else if (val == 'B')
{
pagebuf_t size;
size = recvchar() << 8; // Load high byte of buffersize
@@ -529,54 +529,54 @@ int main(void)
val = recvchar(); // Load memory type ('E' or 'F')
recvBuffer(size);
- if (device == DEVTYPE)
+ if (device == DEVTYPE)
{
- if (val == 'F')
+ if (val == 'F')
{
address = writeFlashPage(address, size);
- }
- else if (val == 'E')
+ }
+ else if (val == 'E')
{
address = writeEEpromPage(address, size);
}
sendchar('\r');
- }
- else
+ }
+ else
{
sendchar(0);
}
// Block read
- }
- else if (val == 'g')
+ }
+ else if (val == 'g')
{
pagebuf_t size;
size = recvchar() << 8; // Load high byte of buffersize
size |= recvchar(); // Load low byte of buffersize
val = recvchar(); // Get memtype
- if (val == 'F')
+ if (val == 'F')
{
address = readFlashPage(address, size);
- }
- else if (val == 'E')
+ }
+ else if (val == 'E')
{
address = readEEpromPage(address, size);
}
// Chip erase
- }
- else if (val == 'e')
+ }
+ else if (val == 'e')
{
- if (device == DEVTYPE)
+ if (device == DEVTYPE)
{
eraseFlash();
}
sendchar('\r');
// Exit upgrade
- }
- else if (val == 'E')
+ }
+ else if (val == 'E')
{
wdt_enable(EXIT_WDT_TIME); // Enable Watchdog Timer to give reset
sendchar('\r');
@@ -585,10 +585,10 @@ int main(void)
#warning "Extension 'WriteLockBits' enabled"
// TODO: does not work reliably
// write lockbits
- }
- else if (val == 'l')
+ }
+ else if (val == 'l')
{
- if (device == DEVTYPE)
+ if (device == DEVTYPE)
{
// write_lock_bits(recvchar());
boot_lock_bits_set(recvchar()); // boot.h takes care of mask
@@ -597,75 +597,75 @@ int main(void)
sendchar('\r');
#endif
// Enter programming mode
- }
- else if (val == 'P')
+ }
+ else if (val == 'P')
{
sendchar('\r');
// Leave programming mode
- }
- else if (val == 'L')
+ }
+ else if (val == 'L')
{
sendchar('\r');
// return programmer type
- }
- else if (val == 'p')
+ }
+ else if (val == 'p')
{
sendchar('S'); // always serial programmer
#ifdef ENABLEREADFUSELOCK
#warning "Extension 'ReadFuseLock' enabled"
// read "low" fuse bits
- }
- else if (val == 'F')
+ }
+ else if (val == 'F')
{
sendchar(read_fuse_lock(GET_LOW_FUSE_BITS));
// read lock bits
- }
- else if (val == 'r')
+ }
+ else if (val == 'r')
{
sendchar(read_fuse_lock(GET_LOCK_BITS));
// read high fuse bits
- }
- else if (val == 'N')
+ }
+ else if (val == 'N')
{
sendchar(read_fuse_lock(GET_HIGH_FUSE_BITS));
// read extended fuse bits
- }
- else if (val == 'Q')
+ }
+ else if (val == 'Q')
{
sendchar(read_fuse_lock(GET_EXTENDED_FUSE_BITS));
#endif
// Return device type
- }
- else if (val == 't')
+ }
+ else if (val == 't')
{
sendchar(DEVTYPE);
sendchar(0);
// clear and set LED ignored
- }
- else if ((val == 'x') || (val == 'y'))
+ }
+ else if ((val == 'x') || (val == 'y'))
{
recvchar();
sendchar('\r');
// set device
- }
- else if (val == 'T')
+ }
+ else if (val == 'T')
{
device = recvchar();
sendchar('\r');
// Return software identifier
- }
- else if (val == 'S')
+ }
+ else if (val == 'S')
{
send_boot();
// Return Software Version
- }
+ }
else if (val == 'V') {
sendchar(VERSION_HIGH);
sendchar(VERSION_LOW);
@@ -673,16 +673,16 @@ int main(void)
// Return Signature Bytes (it seems that
// AVRProg expects the "Atmel-byte" 0x1E last
// but shows it first in the dialog-window)
- }
- else if (val == 's')
+ }
+ else if (val == 's')
{
sendchar(SIG_BYTE3);
sendchar(SIG_BYTE2);
sendchar(SIG_BYTE1);
/* ESC */
- }
- else if(val != 0x1b)
+ }
+ else if(val != 0x1b)
{
sendchar('?');
}
diff --git a/bootloader/main.hex b/bootloader/main.hex
index 9359daf..d6c83c0 100644
--- a/bootloader/main.hex
+++ b/bootloader/main.hex
@@ -1,70 +1,62 @@
-:10F8000011241FBECFEFD0E1DEBFCDBF12E0A0E0DC
-:10F81000B1E001C01D92A030B107E1F70E94327C37
-:10F820000C941E7E0C94147C08955D9BFECF81E4A5
-:10F830008CB95D9BFECF86E58CB95D9BFECF82E5E2
-:10F840008CB95D9BFECF82E48CB95D9BFECF8FE4CB
-:10F850008CB95D9BFECF8FE48CB95D9BFECF84E5B8
-:10F860008CB908952F923F924F925F926F927F9240
-:10F870008F929F92AF92BF92CF92DF92EF92FF92C0
-:10F880000F931F93DF93CF9300D00F92CDB7DEB7C6
-:10F8900004B603FE03C0E0E0F0E0099514BE88B3AF
-:10F8A000806C88BB87B3806C87BBF894A89598E17F
-:10F8B0000FB6F89491BD11BC0FBE8F98979A109215
-:10F8C000900089E189B99AB986E080939500CC24AB
-:10F8D000DD24EE24FF2400E21EE45F9B03C08CB114
-:10F8E0008335A9F020E2C21623E0D20648F09798AB
-:10F8F00088B38F7388BB87B38F7387BBF701099574
-:10F900000894C11CD11CC8010197F1F7E6CF0E94F1
-:10F91000157C1982AA24BB245F9BFECF9CB1913633
-:10F9200021F45D9BFECF39E5A2C0913479F45F9B51
-:10F93000FECF9CB15F9BFECF8CB15D9BFECF392E7D
-:10F940002224A82EBB24A228B3280EC1923659F433
-:10F950005D9BFECF89E58CB95D9BFECF91E09CB9A4
-:10F960005D9BFECF19C1923409F086C05F9BFECF2C
-:10F970009CB15F9BFECF8CB1592E4424C82EDD2450
-:10F98000C428D5285F9BFECF3CB180E090E0E0E04A
-:10F99000F1E08C159D0510F02FEF03C05F9BFECFAB
-:10F9A0002CB12083019621E08030920711F031962E
-:10F9B000F0CF6981663409F05CC0363409F039C093
-:10F9C000750100E010E0EE0CFF1C001F111FA801E4
-:10F9D0009701A0E0B1E08C9190E011969C90119776
-:10F9E000882488299929129661E0F9010C01609315
-:10F9F0006800E89511242E5F3F4F4F4F5F4F8EEF09
-:10FA00009FEFC80ED91EC114D10429F765E0F70194
-:10FA100060936800E8958091680080FDFCCF81E1EB
-:10FA200080936800E8955695479537952795590135
-:10FA30001BC03534C9F4DB82CA82850140E0E42E64
-:10FA400041E0F42EF70161917F01C8010E94117E0F
-:10FA50000F5F1F4F2A813B81215030403B832A8317
-:10FA6000232B81F7AC0CBD1C5D9BFECF3DE03CB968
-:10FA700053CF5D9BFECF90C0973609F047C05F9B88
-:10FA8000FECF9CB15F9BFECF8CB1792E6624C82E31
-:10FA9000DD24C628D7285F9BFECF8CB1863401F5C4
-:10FAA000C501A0E0B0E0880F991FAA1FBB1FFC0191
-:10FAB000259134915D9BFECF2CB95D9BFECF3CB967
-:10FAC0000296A11DB11DEEEFFFEFCE0EDF1EC11499
-:10FAD000D10469F7B695A795979587955C011CCFDA
-:10FAE000853409F019CF76018501C8010E94097E8D
-:10FAF0005D9BFECF8CB90F5F1F4F0894E108F108A2
-:10FB0000E114F10491F7AC0CBD1C06CF9536D1F48D
-:10FB1000F981F634A1F4E0E0F0E023E020936800FE
-:10FB2000E8958091680080FDFCCFE050FF4F38EFF2
-:10FB3000E030F30791F761E160936800E8955D9B21
-:10FB4000FECF19C0953461F4E8E1F0E02CE00FB687
-:10FB5000F894A895E1BD0FBE21BD5D9BFECF86CF79
-:10FB6000903529F45D9BFECF6DE06CB9D5CE9C3409
-:10FB700021F45D9BFECF8DE033C0903729F45D9B6F
-:10FB8000FECF93E59CB9C8CE943741F45D9BFECF80
-:10FB9000E6E4ECB95D9BFECF1CB8BECE892F88573A
-:10FBA000823038F45F9BFECF8CB15D9BFECFFDE0D1
-:10FBB00026C0943539F45F9BFECF2CB129835D9B21
-:10FBC000FECF54CF933519F40E94157CA5CE9635FF
-:10FBD00049F45D9BFECF60E36CB95D9BFECF88E38B
-:10FBE0008CB99ACE933769F45D9BFECF92E09CB9B5
-:10FBF0005D9BFECFE6E9ECB95D9BFECFFEE1FCB973
-:10FC00008BCE9B3109F488CE5D9BFECF2FE32CB9C0
-:10FC100083CEE199FECF9FBB8EBBE09A99278DB32F
-:10FC20000895262FE199FECF9FBB8EBB2DBB0FB64B
-:10FC3000F894E29AE19A0FBE01960895F894FFCFE6
-:040000030000F80001
-:00000001FF
+:10F8000011241FBECFEFD0E1DEBFCDBF22E0A0E0CC
+:10F81000B1E001C01D92A030B207E1F70E94327C36
+:10F820000C94DE7D0C94317C5D9BFECF8CB90895E9
+:10F830005F9BFECF8CB1089581E40E94147C86E525
+:10F840000E94147C82E50E94147C82E40E94147C55
+:10F850008FE40E94147C8FE40E94147C84E50C9455
+:10F86000147C0895CF93DF9300D01F92CDB7DEB7FD
+:10F8700004B603FE03C0E0E0F0E0099514BE88B3CF
+:10F88000806C88BB87B3806C87BBF894A8950FB653
+:10F89000F894A89581B5886181BD11BC0FBE8F9881
+:10F8A000979A1092900089E189B988E18AB986E037
+:10F8B00080939500E12CF12C00E010E05F9B03C0E9
+:10F8C0008CB18335C1F0F0E2EF16F3E0FF0648F0AB
+:10F8D000979888B38F7388BB87B38F7387BBF80102
+:10F8E00009958FE19EE40197F1F700C000009FEFBA
+:10F8F000E91AF90AE3CF0E941C7CF12C1B821A82C0
+:10F90000E8E13E2EFCE04F2EA3E07A2EB1E1EB2E93
+:10F910006624639415E0512E0E94187C813611F400
+:10F9200089E534C1813459F40E94187C082F10E015
+:10F93000102F00270E94187C9801282B83C0823644
+:10F9400029F489E50E94147C81E0F4C0823409F036
+:10F950007CC00E94187C082F10E0102F00270E9406
+:10F96000187C082B0E94187C982F60E0862E61E09E
+:10F97000962E6401A12CB12CA016B10628F499830F
+:10F980000E94187C998101C08FEFF60181936F016D
+:10F99000FFEFAF1ABF0AA11421E0B20669F736E4FF
+:10F9A000F312CAC0963409F036C02A813B8149015E
+:10F9B000A12CB12C880C991CAA1CBB1C2091000105
+:10F9C000B501A401A0E0B1E01296FD01319780815C
+:10F9D00030E0382BFA01090160926800E8951124A3
+:10F9E0004E5F5F4F6F4F7F4F0250110911F02C9106
+:10F9F000EBCFF40150926800E8958091680080FD9B
+:10FA0000FCCFE0926800E895769567955795479505
+:10FA10005B834A839FC0953409F09CC06801AA802B
+:10FA2000BB80F40161914F01C5010E94D17DFFEFC0
+:10FA3000AF1ABF0A21E0C21AD10899F72A813B8187
+:10FA4000200F311F3B832A8385C0873609F047C0CA
+:10FA50000E94187C082F10E0102F00270E94187CAD
+:10FA6000082B0E94187C863409F52A813B814901C4
+:10FA7000A12CB12C880C991CAA1CBB1CF401C590AC
+:10FA8000D4908C2D0E94147C8D2D0E94147C32E029
+:10FA9000830E911CA11CB11C0250110979F7B69478
+:10FAA000A794979487949B828A8236CF853409F0F5
+:10FAB00033CF6801AA80BB80C5010E94C97D0E9426
+:10FAC000147C8FEFA81AB80A91E0C91AD108A1F7DF
+:10FAD0002A813B81200F311F3B832A831DCF85362E
+:10FAE000A9F436E4F31236C0E0E0F0E0709268006A
+:10FAF000E8958091680080FDFCCFF395E11588EFD3
+:10FB0000F807A1F7E0926800E89524C0853439F43D
+:10FB10000FB6F894A89531BC0FBE41BC1BC0803510
+:10FB2000C9F08C34B9F0803711F483E52FC08437E5
+:10FB300029F486E40E94147C80E028C098E8980F9D
+:10FB4000923018F40E94187C05C0843529F40E9474
+:10FB5000187CF82E8DE01AC0833519F40E941C7CA5
+:10FB6000DBCE863529F480E30E94147C88E30EC046
+:10FB7000833741F482E00E94147C86E90E94147C61
+:10FB80008EE104C08B3109F4C7CE8FE30E94147C50
+:10FB9000C3CEE199FECF9FBB8EBBE09A99278DB370
+:10FBA0000895262FE199FECF9FBB8EBB2DBB0FB6CC
+:10FBB000F894E29AE19A0FBE01960895F894FFCF67
+:040000030000F80001
+:00000001FF
diff --git a/bootloader/mega64.h b/bootloader/mega64.h
index 22009c8..954915d 100644
--- a/bootloader/mega64.h
+++ b/bootloader/mega64.h
@@ -1,39 +1,39 @@
-#ifndef _MEGA64_H_
-#define _MEGA64_H_
-
-/* Part-Code ISP */
-#define DEVTYPE_ISP 0x45
-/* Part-Code Boot */
-#define DEVTYPE_BOOT 0x46
-
-#define SIG_BYTE1 0x1E
-#define SIG_BYTE2 0x96
-#define SIG_BYTE3 0x02
-
-#ifndef UART_USE_SECOND
-#define UART_BAUD_HIGH UBRR0H
-#define UART_BAUD_LOW UBRR0L
-#define UART_STATUS UCSR0A
-#define UART_TXREADY UDRE0
-#define UART_RXREADY RXC0
-#define UART_DOUBLE U2X0
-#define UART_CTRL UCSR0B
-#define UART_CTRL_DATA ((1<<TXEN0) | (1<<RXEN0))
-#define UART_CTRL2 UCSR0C
-#define UART_CTRL2_DATA ((1<<UCSZ01) | (1<<UCSZ00))
-#define UART_DATA UDR0
-#else
-#define UART_BAUD_HIGH UBRR1H
-#define UART_BAUD_LOW UBRR1L
-#define UART_STATUS UCSR1A
-#define UART_TXREADY UDRE1
-#define UART_RXREADY RXC1
-#define UART_DOUBLE U2X1
-#define UART_CTRL UCSR1B
-#define UART_CTRL_DATA ((1<<TXEN1) | (1<<RXEN1))
-#define UART_CTRL2 UCSR1C
-#define UART_CTRL2_DATA ((1<<UCSZ11) | (1<<UCSZ10))
-#define UART_DATA UDR1
-#endif
-
-#endif // #ifndef _MEGA64_H_
+#ifndef _MEGA64_H_
+#define _MEGA64_H_
+
+/* Part-Code ISP */
+#define DEVTYPE_ISP 0x45
+/* Part-Code Boot */
+#define DEVTYPE_BOOT 0x46
+
+#define SIG_BYTE1 0x1E
+#define SIG_BYTE2 0x96
+#define SIG_BYTE3 0x02
+
+#ifndef UART_USE_SECOND
+#define UART_BAUD_HIGH UBRR0H
+#define UART_BAUD_LOW UBRR0L
+#define UART_STATUS UCSR0A
+#define UART_TXREADY UDRE0
+#define UART_RXREADY RXC0
+#define UART_DOUBLE U2X0
+#define UART_CTRL UCSR0B
+#define UART_CTRL_DATA ((1<<TXEN0) | (1<<RXEN0))
+#define UART_CTRL2 UCSR0C
+#define UART_CTRL2_DATA ((1<<UCSZ01) | (1<<UCSZ00))
+#define UART_DATA UDR0
+#else
+#define UART_BAUD_HIGH UBRR1H
+#define UART_BAUD_LOW UBRR1L
+#define UART_STATUS UCSR1A
+#define UART_TXREADY UDRE1
+#define UART_RXREADY RXC1
+#define UART_DOUBLE U2X1
+#define UART_CTRL UCSR1B
+#define UART_CTRL_DATA ((1<<TXEN1) | (1<<RXEN1))
+#define UART_CTRL2 UCSR1C
+#define UART_CTRL2_DATA ((1<<UCSZ11) | (1<<UCSZ10))
+#define UART_DATA UDR1
+#endif
+
+#endif // #ifndef _MEGA64_H_
diff --git a/bootloader/readme.txt b/bootloader/readme.txt
index b4c3486..e1af4e3 100644
--- a/bootloader/readme.txt
+++ b/bootloader/readme.txt
@@ -1,267 +1,267 @@
-
-======================================================
-
- ATMEL AVR UART Bootloader for AVR-GCC/avr-libc
-
- by Martin Thomas, Kaiserslautern, Germany
- mthomas@rhrk.uni-kl.de
- eversmith@heizung-thomas.de
- http://www.siwawi.arubi.uni-kl.de/avr_projects
-
- ** Addtional code and improvements contributed **
- ** by Uwe Bonnes, Bjoern Riemer and Olaf Rempel. **
-
- Eearly versions of this bootloader-code have been
- based on the AVR Butterfly bootloader-source REV02
- which has been available from atmel.com.
-
-======================================================
-
-
-Programming-Software (on the "PC-Side"):
-
-* AVRProg (included in AVRStudio) available at www.atmel.com.
- MS-Windows only. AVRProg can be used as stand-alone application.
- (avrprog.exe)
-
-* avrdude available at http://savannah.nongnu.org/projects/avrdude/
- "Multiplattform"
-
-* Installation instructions at the end of this file.
-
-
-3. Dec. 2008 - Version 0.85
-
-* disable U2X before jump to app as suggested be Alexander Dцller
-* moved UBRR-macros to main.c and changed them. Inspired by code from avr-libc setbaud.
- (macros which are commented out (//) are from Pavel Fertser)
-
-6. Nov. 2008 - Version 0.84
-
-* Added definitions for ATmega64 provided by Pavel Fertser - Thanks.
-
-12. Apr. 2008 - Version 0.83
-
-* Added definitions for ATmega644P and ATmega324P
-* Tested with ATmega324P, gcc 4.2.2, avr-libc 1.4.6
-* Added testapp to verify "exit bootloader" with
- watchdog (n.b.: watchdog-disable called early in testapp)
-
-27. Jan. 2007 - Version 0.82
-
-* Added definitions for ATmega644.
-* Using avr-lib's eeprom-functions (old "direct-access"-code
- has not been compatible with ATmega644).
-* Watchdog-disable at startup (configurable): avoids problems with
- repeated login to bootloader. Not needed if the bootloader is
- never re-entered again between an "exit programming" and
- a system-reset/power-toogle.
-* Additional watchdog disable-function for ATmega644.
-* Made watchdog-enable time at exit-programming a configuration-value
- (define).
-* Bootloader read-protection: if enabled the bootloader fakes
- an empty boot-section (configurable by define)
-Since more of the avr-libc functions's are used this version
-should be more portable for other AVRs but the size of the
-binary increases a little bit.
-Make sure to disable the watchdog early in the user-application
-esp. when using a "modern" AVR (i.e. ATmega48/88/168/644/324P/644P).
-
-3. Dec. 2006 - Version 0.81
-
-* Added definitions for ATmega162.
-* Fixed init for double-speed (bitmask). Thanks to Bernhard Roth
-
-28. May 2006 - Version 0.8beta3
-
-* Supports discarding of interrupt-vectors which saves some space
- if no interrupts are needed in the bootloader. Added option
- in makefile to enable this feature, modified LDFLAGS,
- additional code in main.c for a pseudo default_interrupt ISR.
- The modified linker-scripts have been contributed by
- Olaf Rempel (basicly just the .vector-section is not linked).
-* Reverted the order of signatur-byte-numbers in part-
- configurations to the usual order in the datasheet,
- also reverted in main.c for sending the signature.
-* Definitions for lock/fuse-readout.
-* Updated installation-instruction at the end of this file.
-* Added DEVTYPE_ISP/DEVTYPE_BOOT to part-configurations,
- added configuration-option for this in main.c.
-* A remark about the DEVTYPE: Usualy there are two
- Part-Codes/Device-Codes. One is for ISP: AVRProg shows
- the type of the AVR. The other code is for bootloading:
- AVRprog shows the type plus "BOOT". When a boot-device-code
- gets detected by AVRprog it "knows" how do handle the
- limited functionality of bootloaders. (When receiving the
- ISP-code AVRProg expects an AVR910-type programmer.)
- The offset between the codes is usualy 0x01 where the
- ISP-code is the smaller value, i.e. ATmega32 ISP-code
- is 0x72->"ATmega32" and boot-code is 0x73->"ATmega32 BOOT".
- When using avrdude the bootloader's device-code must match
- the device-code in the avrdude.conf. Check the avrdude-
- code to see if both codes (AVR910 and AVR109) are supported.
- -- I have got some e-mails from users which have been
- confused by this. Hopefully this explanation is good enough.
-* This bootloader lets the watchdog do a reset when the
- user selects "Exit programmer" (i.e. in AVRProg) after an
- update. Make sure to disable or reset the watchdog early in
- your application.
-
-27. May 2006 - Version 0.8beta2
-
-* More very well done improvements contributed by Olaf Rempel.
-* Olaf Rempel also modified the STARTUP_WAIT method.
-
-21. May 2006 - Version 0.8beta
-
-* Version contributed by Olaf Rempel. He has done a lot of modifications.
- -> "cleaner code", smaller binaries.
-
-09. Feb. 2006 - Version 0.75
-
-* additional STARTUP_WAIT support contributed by Bjoern Riemer
-
-18. Aug. 2005 - Version 0.74
-
-* AT90CAN128 support contributed by Uwe Bonnes
-* Makefile modifications contributed by Uwe Bonnes
-
-23. Feb. 2005 - Version 0.7
-
-* (Version 0.6 has never been available on the web-page)
-* ATmega128 support
-* code cleanup
-* This version has been tested with ATmega8, ATmega32 and
- ATmega128
-
-7. Apr. 2004 - Version 0.5
-
-* added different startup-methods
-* compatible with ATmega8 now
-* included makefile adapted to ATmega8 now
- (ATmega16 options still available)
-* fixed jump to application which did not work
- reliably before
-* tested with ATmega8
-* minimal options and startup-code result in
- bootloader-size < 512 words
-
-6. Apr. 2004 - Version 0.4
-
-* Buffered read of chars from UART during programming
-since eeprom-write is too slow for unbuffered
-operation. So EEPROM-upload does work now.
-* Added BOOTICE-mode to flash JTAGICE-compatible
-hardware (ATmega16@7,3Mhz) (if you know about BOOTICE,
-you may unterstand why this has been added, if not
-just keep the option disabled)
-* small changes in (my)boot.h (lock-bit-mask) found
-out during the development of the STK-500-compatible
-bootloader. But setting lock-bits still does not
-work with this bootloader.
-* read of the low-fuse byte works (high byte still TODO)
-* read of the lock-byte works (write still TODO)
-
-27. Mar 2004 - Version 0.3
-
-Felt that as much functions from avr-libc's boot.h
-as possible should be used without modifications.
-Latest CVS-version of boot.h is included.
-Only the read-routine is still "self-made" based
-on ATMELs assembler-code.
-EEPROM write on Mega16 does not work (and did not
-work with V0.2 too). May be caused by my old Mega16
-chip. Needs testing. Flash read/write and EEPROM
-read works. Still only tested with ATmega16.
-This version may not work with the ATmega169 any
-more.
-
-24. Mar 2004 - Version 0.2
-
-During the development of a data-logger application
-with the AVR-Butterfly there was a need to make
-some changes in the bootloader. The same problem
-again: no IAR compiler. The same way to solve the
-problem: a port of the code to avr-gcc/avr-libc.
-So this code is based on the ATMEL Butterfly
-bootloader source code Rev 0.2 for IAR.
-
-The bootloader-port for the Butterfly which mimics
-the complete functionality of the original
-BF-bootloader is availabe at:
-www.siwawi.arubi.uni-kl.de/avr_projects
-
-Atmel used a separate "lib" written in "pure"
-assembly to access the low-level functions
-for flash read/write. Well, so far I
-don't know how to use "mixed language sources"
-with the avr-gcc toolchain, so the low-level
-routines have been implemented as inline assembler.
-The avr-libc boot.h module written by Eric
-Weddington served as a template Three of the four
-low-level routines found in lowlevel.c come from
-boot.h with minimal changes. The read routine has
-been developed based on the ATMEL assembler code.
-
-Ignore the fuse and lock-bit readout. Read and Set is
-not enabled (TODO).
-
-
---------------- Installation -----------------
-
-- Change the MCU type in the makefile.
-
-- Change the boot(loader)-size in Makefile. The needed
- space depends on the features selected in main.c
-
-- Set baudrate in main.c, a doublespeed configuration-option
- is available too.
-
-- Change the F_CPU in main.c to the clock-frequency
- of your board. See the datasheet for frequencies
- with minimum error at the selected baudrate.
-
-- Select the start-condition in main.c.
-
-- Please use at least avr-gcc 3.3.1/avr-libc 1.0
- or WINAVR Sept. 2003 or later to compile and link
- this bootloader.
-
-- Upload the hex-File to the AVR (STK500, STK200, SP12
- evertool, AVR910 etc.)
-
-- Program the "Boot Flash section size" (BOOTSZ fuses)
- according to the boot-size selected in the makefile
- i.e. BOOTSZ=00 for boot-size 1024 words (2048 bytes)
- on ATmega16
-
-- enable the BOOT Reset Vector fuse (BOOTRST=0)
-
-- Set the lock bits to protect the bootloader from
- SPM-writes (Boot Loader Protection Mode 2 in STK500-
- plugin) so that it can not overwrite itself.
-
-- Connect the AVR UART Pins via level-shifter/inverter
- (i.e. MAX232) to your PCs COM-Port.
-
-- Reset the AVR while fullfilling the bootloader start-
- condition. (Default: selected pin connected to GND).
- The condition must be "true" until you see the
- AVRPROG dialog or avrdude connects.
-
-- Start AVRPROG (AVRStudio/Tools or stand-alone avrprog.exe)
- AVRDUDE is supported too, check it's manual
- for command-line options. Read the text above for
- information about Device-Types and AVRDUDE
-
-- AVRPROG or AVRDUDE should detect the bootloader.
-
-- see AVRStudio's online-help for more information how
- to use AVRPROG
-
-- make sure to EXIT from AVRPROG (button) to start
- your main-application or toogle power/reset.
-
-
-Feedback welcome, Good luck.
-Martin
+
+======================================================
+
+ ATMEL AVR UART Bootloader for AVR-GCC/avr-libc
+
+ by Martin Thomas, Kaiserslautern, Germany
+ mthomas@rhrk.uni-kl.de
+ eversmith@heizung-thomas.de
+ http://www.siwawi.arubi.uni-kl.de/avr_projects
+
+ ** Addtional code and improvements contributed **
+ ** by Uwe Bonnes, Bjoern Riemer and Olaf Rempel. **
+
+ Eearly versions of this bootloader-code have been
+ based on the AVR Butterfly bootloader-source REV02
+ which has been available from atmel.com.
+
+======================================================
+
+
+Programming-Software (on the "PC-Side"):
+
+* AVRProg (included in AVRStudio) available at www.atmel.com.
+ MS-Windows only. AVRProg can be used as stand-alone application.
+ (avrprog.exe)
+
+* avrdude available at http://savannah.nongnu.org/projects/avrdude/
+ "Multiplattform"
+
+* Installation instructions at the end of this file.
+
+
+3. Dec. 2008 - Version 0.85
+
+* disable U2X before jump to app as suggested be Alexander Dцller
+* moved UBRR-macros to main.c and changed them. Inspired by code from avr-libc setbaud.
+ (macros which are commented out (//) are from Pavel Fertser)
+
+6. Nov. 2008 - Version 0.84
+
+* Added definitions for ATmega64 provided by Pavel Fertser - Thanks.
+
+12. Apr. 2008 - Version 0.83
+
+* Added definitions for ATmega644P and ATmega324P
+* Tested with ATmega324P, gcc 4.2.2, avr-libc 1.4.6
+* Added testapp to verify "exit bootloader" with
+ watchdog (n.b.: watchdog-disable called early in testapp)
+
+27. Jan. 2007 - Version 0.82
+
+* Added definitions for ATmega644.
+* Using avr-lib's eeprom-functions (old "direct-access"-code
+ has not been compatible with ATmega644).
+* Watchdog-disable at startup (configurable): avoids problems with
+ repeated login to bootloader. Not needed if the bootloader is
+ never re-entered again between an "exit programming" and
+ a system-reset/power-toogle.
+* Additional watchdog disable-function for ATmega644.
+* Made watchdog-enable time at exit-programming a configuration-value
+ (define).
+* Bootloader read-protection: if enabled the bootloader fakes
+ an empty boot-section (configurable by define)
+Since more of the avr-libc functions's are used this version
+should be more portable for other AVRs but the size of the
+binary increases a little bit.
+Make sure to disable the watchdog early in the user-application
+esp. when using a "modern" AVR (i.e. ATmega48/88/168/644/324P/644P).
+
+3. Dec. 2006 - Version 0.81
+
+* Added definitions for ATmega162.
+* Fixed init for double-speed (bitmask). Thanks to Bernhard Roth
+
+28. May 2006 - Version 0.8beta3
+
+* Supports discarding of interrupt-vectors which saves some space
+ if no interrupts are needed in the bootloader. Added option
+ in makefile to enable this feature, modified LDFLAGS,
+ additional code in main.c for a pseudo default_interrupt ISR.
+ The modified linker-scripts have been contributed by
+ Olaf Rempel (basicly just the .vector-section is not linked).
+* Reverted the order of signatur-byte-numbers in part-
+ configurations to the usual order in the datasheet,
+ also reverted in main.c for sending the signature.
+* Definitions for lock/fuse-readout.
+* Updated installation-instruction at the end of this file.
+* Added DEVTYPE_ISP/DEVTYPE_BOOT to part-configurations,
+ added configuration-option for this in main.c.
+* A remark about the DEVTYPE: Usualy there are two
+ Part-Codes/Device-Codes. One is for ISP: AVRProg shows
+ the type of the AVR. The other code is for bootloading:
+ AVRprog shows the type plus "BOOT". When a boot-device-code
+ gets detected by AVRprog it "knows" how do handle the
+ limited functionality of bootloaders. (When receiving the
+ ISP-code AVRProg expects an AVR910-type programmer.)
+ The offset between the codes is usualy 0x01 where the
+ ISP-code is the smaller value, i.e. ATmega32 ISP-code
+ is 0x72->"ATmega32" and boot-code is 0x73->"ATmega32 BOOT".
+ When using avrdude the bootloader's device-code must match
+ the device-code in the avrdude.conf. Check the avrdude-
+ code to see if both codes (AVR910 and AVR109) are supported.
+ -- I have got some e-mails from users which have been
+ confused by this. Hopefully this explanation is good enough.
+* This bootloader lets the watchdog do a reset when the
+ user selects "Exit programmer" (i.e. in AVRProg) after an
+ update. Make sure to disable or reset the watchdog early in
+ your application.
+
+27. May 2006 - Version 0.8beta2
+
+* More very well done improvements contributed by Olaf Rempel.
+* Olaf Rempel also modified the STARTUP_WAIT method.
+
+21. May 2006 - Version 0.8beta
+
+* Version contributed by Olaf Rempel. He has done a lot of modifications.
+ -> "cleaner code", smaller binaries.
+
+09. Feb. 2006 - Version 0.75
+
+* additional STARTUP_WAIT support contributed by Bjoern Riemer
+
+18. Aug. 2005 - Version 0.74
+
+* AT90CAN128 support contributed by Uwe Bonnes
+* Makefile modifications contributed by Uwe Bonnes
+
+23. Feb. 2005 - Version 0.7
+
+* (Version 0.6 has never been available on the web-page)
+* ATmega128 support
+* code cleanup
+* This version has been tested with ATmega8, ATmega32 and
+ ATmega128
+
+7. Apr. 2004 - Version 0.5
+
+* added different startup-methods
+* compatible with ATmega8 now
+* included makefile adapted to ATmega8 now
+ (ATmega16 options still available)
+* fixed jump to application which did not work
+ reliably before
+* tested with ATmega8
+* minimal options and startup-code result in
+ bootloader-size < 512 words
+
+6. Apr. 2004 - Version 0.4
+
+* Buffered read of chars from UART during programming
+since eeprom-write is too slow for unbuffered
+operation. So EEPROM-upload does work now.
+* Added BOOTICE-mode to flash JTAGICE-compatible
+hardware (ATmega16@7,3Mhz) (if you know about BOOTICE,
+you may unterstand why this has been added, if not
+just keep the option disabled)
+* small changes in (my)boot.h (lock-bit-mask) found
+out during the development of the STK-500-compatible
+bootloader. But setting lock-bits still does not
+work with this bootloader.
+* read of the low-fuse byte works (high byte still TODO)
+* read of the lock-byte works (write still TODO)
+
+27. Mar 2004 - Version 0.3
+
+Felt that as much functions from avr-libc's boot.h
+as possible should be used without modifications.
+Latest CVS-version of boot.h is included.
+Only the read-routine is still "self-made" based
+on ATMELs assembler-code.
+EEPROM write on Mega16 does not work (and did not
+work with V0.2 too). May be caused by my old Mega16
+chip. Needs testing. Flash read/write and EEPROM
+read works. Still only tested with ATmega16.
+This version may not work with the ATmega169 any
+more.
+
+24. Mar 2004 - Version 0.2
+
+During the development of a data-logger application
+with the AVR-Butterfly there was a need to make
+some changes in the bootloader. The same problem
+again: no IAR compiler. The same way to solve the
+problem: a port of the code to avr-gcc/avr-libc.
+So this code is based on the ATMEL Butterfly
+bootloader source code Rev 0.2 for IAR.
+
+The bootloader-port for the Butterfly which mimics
+the complete functionality of the original
+BF-bootloader is availabe at:
+www.siwawi.arubi.uni-kl.de/avr_projects
+
+Atmel used a separate "lib" written in "pure"
+assembly to access the low-level functions
+for flash read/write. Well, so far I
+don't know how to use "mixed language sources"
+with the avr-gcc toolchain, so the low-level
+routines have been implemented as inline assembler.
+The avr-libc boot.h module written by Eric
+Weddington served as a template Three of the four
+low-level routines found in lowlevel.c come from
+boot.h with minimal changes. The read routine has
+been developed based on the ATMEL assembler code.
+
+Ignore the fuse and lock-bit readout. Read and Set is
+not enabled (TODO).
+
+
+--------------- Installation -----------------
+
+- Change the MCU type in the makefile.
+
+- Change the boot(loader)-size in Makefile. The needed
+ space depends on the features selected in main.c
+
+- Set baudrate in main.c, a doublespeed configuration-option
+ is available too.
+
+- Change the F_CPU in main.c to the clock-frequency
+ of your board. See the datasheet for frequencies
+ with minimum error at the selected baudrate.
+
+- Select the start-condition in main.c.
+
+- Please use at least avr-gcc 3.3.1/avr-libc 1.0
+ or WINAVR Sept. 2003 or later to compile and link
+ this bootloader.
+
+- Upload the hex-File to the AVR (STK500, STK200, SP12
+ evertool, AVR910 etc.)
+
+- Program the "Boot Flash section size" (BOOTSZ fuses)
+ according to the boot-size selected in the makefile
+ i.e. BOOTSZ=00 for boot-size 1024 words (2048 bytes)
+ on ATmega16
+
+- enable the BOOT Reset Vector fuse (BOOTRST=0)
+
+- Set the lock bits to protect the bootloader from
+ SPM-writes (Boot Loader Protection Mode 2 in STK500-
+ plugin) so that it can not overwrite itself.
+
+- Connect the AVR UART Pins via level-shifter/inverter
+ (i.e. MAX232) to your PCs COM-Port.
+
+- Reset the AVR while fullfilling the bootloader start-
+ condition. (Default: selected pin connected to GND).
+ The condition must be "true" until you see the
+ AVRPROG dialog or avrdude connects.
+
+- Start AVRPROG (AVRStudio/Tools or stand-alone avrprog.exe)
+ AVRDUDE is supported too, check it's manual
+ for command-line options. Read the text above for
+ information about Device-Types and AVRDUDE
+
+- AVRPROG or AVRDUDE should detect the bootloader.
+
+- see AVRStudio's online-help for more information how
+ to use AVRPROG
+
+- make sure to EXIT from AVRPROG (button) to start
+ your main-application or toogle power/reset.
+
+
+Feedback welcome, Good luck.
+Martin
diff --git a/comm.c b/comm.c
index 839d968..ae676b4 100644
--- a/comm.c
+++ b/comm.c
@@ -1,142 +1,142 @@
-#include "defines.h"
-#include <inttypes.h>
-#include <util/delay.h>
-#include "comm.h"
-#include "usart.h"
-
-static uint8_t comm_send_crc;
-static unsigned int comm_send_length;
-static unsigned int comm_send_pos;
-
-static int comm_recv_pos;
-static uint8_t comm_recv_crc;
-static uint8_t comm_recv_error;
-
-volatile uint8_t comm_recv_command;
-volatile unsigned int comm_recv_length;
-volatile uint8_t recv_buffer[RECV_BUFFER];
-volatile uint8_t comm_recv_done;
-
-static void comm_calc_send_crc(uint8_t inbyte)
-{
- uint8_t j;
- for (j=0;j<8;j++)
- {
- uint8_t mix = (comm_send_crc ^ inbyte) & 0x01;
- comm_send_crc >>= 1;
- if (mix)
- comm_send_crc ^= 0x8C;
- inbyte >>= 1;
- }
-}
-
-static void comm_calc_recv_crc(uint8_t inbyte)
-{
- uint8_t j;
- for (j=0;j<8;j++)
- {
- uint8_t mix = (comm_recv_crc ^ inbyte) & 0x01;
- comm_recv_crc >>= 1;
- if (mix)
- comm_recv_crc ^= 0x8C;
- inbyte >>= 1;
- }
-}
-
-static void comm_send_and_calc(uint8_t data)
-{
- comm_calc_send_crc(data);
- USART_TransmitByte(data);
-#ifdef SEND_DELAY
- _delay_us(SEND_DELAY);
-#endif
-}
-
-void comm_start(uint8_t command, unsigned int length)
-{
- comm_send_crc = 0;
- comm_send_and_calc('F');
- comm_send_and_calc(command);
- comm_send_and_calc(length & 0xff);
- comm_send_and_calc((length >> 8) & 0xff);
- comm_send_length = length;
- comm_send_pos = 0;
-
- if (!comm_send_length)
- USART_TransmitByte(comm_send_crc);
-}
-
-void comm_send_byte(uint8_t data)
-{
- comm_send_and_calc(data);
- comm_send_pos++;
-
- if (comm_send_pos == comm_send_length)
- USART_TransmitByte(comm_send_crc);
-}
-
-void comm_proceed(uint8_t data)
-{
- if (comm_recv_error && data != 'F') return;
- comm_recv_error = 0;
- if (!comm_recv_pos)
- {
- comm_recv_crc = 0;
- comm_recv_done = 0;
- }
- comm_calc_recv_crc(data);
- unsigned int l = comm_recv_pos-4;
- switch (comm_recv_pos)
- {
- case 0:
- if (data != 'F')
- {
- comm_recv_error = 1;
- comm_start(COMMAND_ERROR_INVALID, 0);
- }
- break;
- case 1:
- comm_recv_command = data;
- break;
- case 2:
- comm_recv_length = data;
- break;
- case 3:
- comm_recv_length |= (uint16_t)data << 8;
- break;
- default:
- if (l >= RECV_BUFFER)
- {
- comm_recv_pos = 0;
- comm_recv_error = 1;
- comm_start(COMMAND_ERROR_OVERFLOW, 0);
- return;
- }
- else if (l < comm_recv_length)
- {
- recv_buffer[l] = data;
- } else if (l == comm_recv_length)
- {
- if (!comm_recv_crc)
- {
- comm_recv_done = 1;
- }
- else
- {
- comm_recv_error = 1;
- comm_start(COMMAND_ERROR_CRC, 0);
- }
- comm_recv_pos = 0;
- return;
- }
- break;
- }
- comm_recv_pos++;
-}
-
-void comm_init()
-{
- comm_recv_pos = 0;
- comm_recv_done = 0;
- comm_recv_error = 0;
-}
+#include "defines.h"
+#include <inttypes.h>
+#include <util/delay.h>
+#include "comm.h"
+#include "usart.h"
+
+static uint8_t comm_send_crc;
+static unsigned int comm_send_length;
+static unsigned int comm_send_pos;
+
+static int comm_recv_pos;
+static uint8_t comm_recv_crc;
+static uint8_t comm_recv_error;
+
+volatile uint8_t comm_recv_command;
+volatile unsigned int comm_recv_length;
+volatile uint8_t recv_buffer[RECV_BUFFER];
+volatile uint8_t comm_recv_done;
+
+static void comm_calc_send_crc(uint8_t inbyte)
+{
+ uint8_t j;
+ for (j=0;j<8;j++)
+ {
+ uint8_t mix = (comm_send_crc ^ inbyte) & 0x01;
+ comm_send_crc >>= 1;
+ if (mix)
+ comm_send_crc ^= 0x8C;
+ inbyte >>= 1;
+ }
+}
+
+static void comm_calc_recv_crc(uint8_t inbyte)
+{
+ uint8_t j;
+ for (j=0;j<8;j++)
+ {
+ uint8_t mix = (comm_recv_crc ^ inbyte) & 0x01;
+ comm_recv_crc >>= 1;
+ if (mix)
+ comm_recv_crc ^= 0x8C;
+ inbyte >>= 1;
+ }
+}
+
+static void comm_send_and_calc(uint8_t data)
+{
+ comm_calc_send_crc(data);
+ USART_TransmitByte(data);
+#ifdef SEND_DELAY
+ _delay_us(SEND_DELAY);
+#endif
+}
+
+void comm_start(uint8_t command, unsigned int length)
+{
+ comm_send_crc = 0;
+ comm_send_and_calc('F');
+ comm_send_and_calc(command);
+ comm_send_and_calc(length & 0xff);
+ comm_send_and_calc((length >> 8) & 0xff);
+ comm_send_length = length;
+ comm_send_pos = 0;
+
+ if (!comm_send_length)
+ USART_TransmitByte(comm_send_crc);
+}
+
+void comm_send_byte(uint8_t data)
+{
+ comm_send_and_calc(data);
+ comm_send_pos++;
+
+ if (comm_send_pos == comm_send_length)
+ USART_TransmitByte(comm_send_crc);
+}
+
+void comm_proceed(uint8_t data)
+{
+ if (comm_recv_error && data != 'F') return;
+ comm_recv_error = 0;
+ if (!comm_recv_pos)
+ {
+ comm_recv_crc = 0;
+ comm_recv_done = 0;
+ }
+ comm_calc_recv_crc(data);
+ unsigned int l = comm_recv_pos-4;
+ switch (comm_recv_pos)
+ {
+ case 0:
+ if (data != 'F')
+ {
+ comm_recv_error = 1;
+ comm_start(COMMAND_ERROR_INVALID, 0);
+ }
+ break;
+ case 1:
+ comm_recv_command = data;
+ break;
+ case 2:
+ comm_recv_length = data;
+ break;
+ case 3:
+ comm_recv_length |= (uint16_t)data << 8;
+ break;
+ default:
+ if (l >= RECV_BUFFER)
+ {
+ comm_recv_pos = 0;
+ comm_recv_error = 1;
+ comm_start(COMMAND_ERROR_OVERFLOW, 0);
+ return;
+ }
+ else if (l < comm_recv_length)
+ {
+ recv_buffer[l] = data;
+ } else if (l == comm_recv_length)
+ {
+ if (!comm_recv_crc)
+ {
+ comm_recv_done = 1;
+ }
+ else
+ {
+ comm_recv_error = 1;
+ comm_start(COMMAND_ERROR_CRC, 0);
+ }
+ comm_recv_pos = 0;
+ return;
+ }
+ break;
+ }
+ comm_recv_pos++;
+}
+
+void comm_init()
+{
+ comm_recv_pos = 0;
+ comm_recv_done = 0;
+ comm_recv_error = 0;
+}
diff --git a/comm.h b/comm.h
index ab1af26..387e63f 100644
--- a/comm.h
+++ b/comm.h
@@ -1,54 +1,56 @@
-#include <inttypes.h>
-
-#define COMMAND_PRG_STARTED 0
-#define COMMAND_CHR_STARTED 1
-#define COMMAND_ERROR_INVALID 2
-#define COMMAND_ERROR_CRC 3
-#define COMMAND_ERROR_OVERFLOW 4
-#define COMMAND_PRG_INIT 5
-#define COMMAND_CHR_INIT 6
-#define COMMAND_PRG_READ_REQUEST 7
-#define COMMAND_PRG_READ_RESULT 8
-#define COMMAND_PRG_WRITE_REQUEST 9
-#define COMMAND_PRG_WRITE_DONE 10
-#define COMMAND_CHR_READ_REQUEST 11
-#define COMMAND_CHR_READ_RESULT 12
-#define COMMAND_CHR_WRITE_REQUEST 13
-#define COMMAND_CHR_WRITE_DONE 14
-#define COMMAND_PHI2_INIT 15
-#define COMMAND_PHI2_INIT_DONE 16
-#define COMMAND_MIRRORING_REQUEST 17
-#define COMMAND_MIRRORING_RESULT 18
-#define COMMAND_RESET 19
-#define COMMAND_RESET_ACK 20
-#define COMMAND_PRG_EPROM_WRITE_REQUEST 21
-#define COMMAND_CHR_EPROM_WRITE_REQUEST 22
-#define COMMAND_EPROM_PREPARE 23
-#define COMMAND_PRG_FLASH_ERASE_REQUEST 24
-#define COMMAND_PRG_FLASH_WRITE_REQUEST 25
-#define COMMAND_CHR_FLASH_ERASE_REQUEST 26
-#define COMMAND_CHR_FLASH_WRITE_REQUEST 27
-#define COMMAND_JTAG_SETUP 28
-#define COMMAND_JTAG_SHUTDOWN 29
-#define COMMAND_JTAG_EXECUTE 30
-#define COMMAND_JTAG_RESULT 31
-#define COMMAND_TEST_SET 32
-#define COMMAND_TEST_RESULT 33
-#define COMMAND_COOLBOY_READ_REQUEST 34
-#define COMMAND_COOLBOY_ERASE_REQUEST 35
-#define COMMAND_COOLBOY_WRITE_REQUEST 36
-#define COMMAND_COOLGIRL_ERASE_SECTOR_REQUEST 37
-#define COMMAND_COOLGIRL_WRITE_REQUEST 38
-
-#define COMMAND_BOOTLOADER 0xFE
-#define COMMAND_DEBUG 0xFF
-
-void comm_init();
-void comm_start(uint8_t command, unsigned int length);
-void comm_send_byte(uint8_t data);
-void comm_proceed(uint8_t data);
-
-extern volatile uint8_t comm_recv_command;
-extern volatile unsigned int comm_recv_length;
-extern volatile uint8_t recv_buffer[RECV_BUFFER];
-extern volatile uint8_t comm_recv_done;
+#include <inttypes.h>
+
+#define COMMAND_PRG_STARTED 0
+#define COMMAND_CHR_STARTED 1
+#define COMMAND_ERROR_INVALID 2
+#define COMMAND_ERROR_CRC 3
+#define COMMAND_ERROR_OVERFLOW 4
+#define COMMAND_PRG_INIT 5
+#define COMMAND_CHR_INIT 6
+#define COMMAND_PRG_READ_REQUEST 7
+#define COMMAND_PRG_READ_RESULT 8
+#define COMMAND_PRG_WRITE_REQUEST 9
+#define COMMAND_PRG_WRITE_DONE 10
+#define COMMAND_CHR_READ_REQUEST 11
+#define COMMAND_CHR_READ_RESULT 12
+#define COMMAND_CHR_WRITE_REQUEST 13
+#define COMMAND_CHR_WRITE_DONE 14
+#define COMMAND_PHI2_INIT 15
+#define COMMAND_PHI2_INIT_DONE 16
+#define COMMAND_MIRRORING_REQUEST 17
+#define COMMAND_MIRRORING_RESULT 18
+#define COMMAND_RESET 19
+#define COMMAND_RESET_ACK 20
+#define COMMAND_PRG_EPROM_WRITE_REQUEST 21
+#define COMMAND_CHR_EPROM_WRITE_REQUEST 22
+#define COMMAND_EPROM_PREPARE 23
+#define COMMAND_PRG_FLASH_ERASE_REQUEST 24
+#define COMMAND_PRG_FLASH_WRITE_REQUEST 25
+#define COMMAND_CHR_FLASH_ERASE_REQUEST 26
+#define COMMAND_CHR_FLASH_WRITE_REQUEST 27
+#define COMMAND_JTAG_SETUP 28
+#define COMMAND_JTAG_SHUTDOWN 29
+#define COMMAND_JTAG_EXECUTE 30
+#define COMMAND_JTAG_RESULT 31
+#define COMMAND_TEST_SET 32
+#define COMMAND_TEST_RESULT 33
+#define COMMAND_COOLBOY_READ_REQUEST 34
+#define COMMAND_COOLBOY_ERASE_REQUEST 35
+#define COMMAND_COOLBOY_WRITE_REQUEST 36
+#define COMMAND_COOLGIRL_ERASE_SECTOR_REQUEST 37
+#define COMMAND_COOLGIRL_WRITE_REQUEST 38
+#define COMMAND_PRG_CRC_READ_REQUEST 39
+#define COMMAND_CHR_CRC_READ_REQUEST 40
+
+#define COMMAND_BOOTLOADER 0xFE
+#define COMMAND_DEBUG 0xFF
+
+void comm_init();
+void comm_start(uint8_t command, unsigned int length);
+void comm_send_byte(uint8_t data);
+void comm_proceed(uint8_t data);
+
+extern volatile uint8_t comm_recv_command;
+extern volatile unsigned int comm_recv_length;
+extern volatile uint8_t recv_buffer[RECV_BUFFER];
+extern volatile uint8_t comm_recv_done;
diff --git a/defines.h b/defines.h
index e6d824f..53116a7 100644
--- a/defines.h
+++ b/defines.h
@@ -1,12 +1,12 @@
-#define F_CPU 8000000UL
-//#define F_CPU 11059200UL
-//#define UART_BAUD 38400UL
-#define UART_BAUD 250000UL
-#define RECV_BUFFER 1050
-//#define SEND_DELAY 100
-
-#define JTAG_PORT B
-#define TMS_PIN 2
-#define TCK_PIN 4
-#define TDO_PIN 3
-#define TDI_PIN 1
+#define F_CPU 8000000UL
+//#define F_CPU 11059200UL
+//#define UART_BAUD 38400UL
+#define UART_BAUD 250000UL
+#define RECV_BUFFER 1050
+//#define SEND_DELAY 100
+
+#define JTAG_PORT B
+#define TMS_PIN 2
+#define TCK_PIN 4
+#define TDO_PIN 3
+#define TDI_PIN 1
diff --git a/dumper.c b/dumper.c
index b327c10..0ef57f7 100644
--- a/dumper.c
+++ b/dumper.c
@@ -1,899 +1,971 @@
-/* Famicom Dumper/Programmer
- *
- * Copyright notice for this file:
- * Copyright (C) 2016 Cluster
- * http://clusterrr.com
- * clusterrr@clusterrr.com
- *
- * 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
- *
- */
-
-#include "defines.h"
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <avr/wdt.h>
-#include <util/delay.h>
-#include <inttypes.h>
-#include "usart.h"
-#include "comm.h"
-#include "jtag.h"
-
-#define LED_RED_ON PORTB |= (1<<7)
-#define LED_RED_OFF PORTB &= ~(1<<7)
-#define LED_GREEN_ON PORTB |= (1<<6)
-#define LED_GREEN_OFF PORTB &= ~(1<<6)
-#define ROMSEL_HI PORTF |= (1<<1)
-#define ROMSEL_LOW PORTF &= ~(1<<1)
-#define PHI2_HI PORTF |= (1<<0)
-#define PHI2_LOW PORTF &= ~(1<<0)
-#define MODE_READ { PORTD = 0xFF; DDRD = 0; }
-#define MODE_WRITE DDRD = 0xFF
-#define PRG_READ PORTF |= (1<<7)
-#define PRG_WRITE PORTF &= ~(1<<7)
-#define CHR_READ_HI PORTF |= (1<<5)
-#define CHR_READ_LOW PORTF &= ~(1<<5)
-#define CHR_WRITE_HI PORTF |= (1<<2)
-#define CHR_WRITE_LOW PORTF &= ~(1<<2)
-
-static void (*jump_to_bootloader)(void) = 0xF800;
-
-ISR(USART0_RX_vect)
-{
- unsigned char b;
- while (UCSR0A & (1<<RXC0))
- {
- b = UDR0;
- comm_proceed(b);
- }
-}
-
-static void phi2_init()
-{
- int i = 0x80;
- unsigned char h = PORTF |= (1<<0);
- unsigned char l = PORTF &= ~(1<<0);
- while(i != 0){
- PORTA = l;
- PORTA = h;
- i--;
- }
-}
-
-static void set_address(unsigned int address)
-{
- unsigned char l = address & 0xFF;
- unsigned char h = address>>8;
-
- PORTA = l;
- PORTC = h;
-
- // PPU /A13
- if ((address >> 13) & 1)
- PORTF &= ~(1<<4);
- else
- PORTF |= 1<<4;
-}
-
-static void set_romsel(unsigned int address)
-{
- if (address & 0x8000)
- {
- ROMSEL_LOW;
- } else {
- ROMSEL_HI;
- }
-}
-
-static unsigned char read_prg_byte(unsigned int address)
-{
- MODE_READ;
- PRG_READ;
- set_address(address);
- PHI2_HI;
- set_romsel(address);
- _delay_us(1);
- return PIND;
-}
-
-static unsigned char read_chr_byte(unsigned int address)
-{
- MODE_READ;
- PHI2_HI;
- ROMSEL_HI;
- set_address(address);
- CHR_READ_LOW;
-
- _delay_us(1);
-
- uint8_t result = PIND;
-
- CHR_READ_HI;
- return result;
-}
-
-static unsigned char read_coolboy_byte(unsigned int address)
-{
- MODE_READ;
- PRG_READ;
- set_address(address);
- PHI2_HI;
- ROMSEL_LOW;
- PORTB |= 1<<TDO_PIN;
- PORTB &= ~(1<<TCK_PIN);
- _delay_us(1);
- return PIND;
-}
-
-static void read_prg_send(unsigned int address, unsigned int len)
-{
- LED_GREEN_ON;
- comm_start(COMMAND_PRG_READ_RESULT, len);
- while (len > 0)
- {
- comm_send_byte(read_prg_byte(address));
- len--;
- address++;
- }
- set_address(0);
- PHI2_HI;
- ROMSEL_HI;
- LED_GREEN_OFF;
-}
-
-static void read_chr_send(unsigned int address, unsigned int len)
-{
- LED_GREEN_ON;
- comm_start(COMMAND_CHR_READ_RESULT, len);
- while (len > 0)
- {
- comm_send_byte(read_chr_byte(address));
- len--;
- address++;
- }
- set_address(0);
- PHI2_HI;
- ROMSEL_HI;
- LED_GREEN_OFF;
-}
-
-static void read_coolboy_send(unsigned int address, unsigned int len)
-{
- LED_GREEN_ON;
- PORTB |= 1<<TCK_PIN;
- PORTB |= 1<<TDO_PIN;
- DDRB |= 1<<TCK_PIN;
- DDRB |= 1<<TDO_PIN;
- comm_start(COMMAND_PRG_READ_RESULT, len);
- while (len > 0)
- {
- comm_send_byte(read_coolboy_byte(address));
- len--;
- address++;
- }
- set_address(0);
- ROMSEL_HI;
- PORTB |= 1<<TCK_PIN;
- PORTB |= 1<<TDO_PIN;
-
- jtag_shutdown();
- LED_GREEN_OFF;
-}
-
-static void write_prg_byte(unsigned int address, uint8_t data)
-{
- PHI2_LOW;
- ROMSEL_HI;
- MODE_WRITE;
- PRG_WRITE;
- PORTD = data;
- set_address(address); // PHI2 low, ROMSEL always HIGH
-// _delay_us(1);
-
- PHI2_HI;
-// _delay_us(1);
- set_romsel(address); // ROMSEL is low if need, PHI2 high
-
- _delay_us(1); // WRITING
-
- // PHI2 low, ROMSEL high
- PHI2_LOW;
- _delay_us(1);
- ROMSEL_HI;
-
- // Back to read mode
-// _delay_us(1);
- PRG_READ;
- MODE_READ;
- set_address(0);
-
- // Set phi2 to high state to keep cartridge unreseted
-// _delay_us(1);
- PHI2_HI;
-
-// _delay_us(1);
-}
-
-static void write_chr_byte(unsigned int address, uint8_t data)
-{
- PHI2_LOW;
- ROMSEL_HI;
- MODE_WRITE;
- PORTD = data;
- set_address(address); // PHI2 low, ROMSEL always HIGH
- //_delay_us(1);
-
- CHR_WRITE_LOW;
-
- //_delay_us(1); // WRITING
-
- CHR_WRITE_HI;
-
- //_delay_us(1);
-
- MODE_READ;
- set_address(0);
- PHI2_HI;
-
- //_delay_us(1);
-}
-
-static void write_prg(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- while (len > 0)
- {
- write_prg_byte(address, *data);
- address++;
- len--;
- data++;
- }
- //_delay_ms(1);
- LED_RED_OFF;
-}
-
-static void write_chr(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- while (len > 0)
- {
- write_chr_byte(address, *data);
- address++;
- len--;
- data++;
- }
- //_delay_ms(1);
- LED_RED_OFF;
-}
-
-static void write_prg_flash_command(unsigned int address, uint8_t data)
-{
- write_prg_byte(address | 0x8000, data);
-}
-
-static void write_coolboy_flash_command(unsigned int address, uint8_t data)
-{
- PORTB |= 1<<TCK_PIN;
- PORTB |= 1<<TDO_PIN;
- ROMSEL_HI;
- PRG_READ;
- set_address(address);
- MODE_WRITE;
- PORTD = data;
- PHI2_HI;
- ROMSEL_LOW;
- _delay_us(1);
-
- PORTB &= ~(1<<TDO_PIN);
-
- _delay_us(1);
-
- PORTB |= 1<<TDO_PIN;
- set_address(0);
- ROMSEL_HI;
- MODE_READ;
-}
-
-static void write_chr_flash_command(unsigned int address, uint8_t data)
-{
- write_chr_byte(address, data);
-}
-
-static int write_prg_flash_byte(unsigned int address, uint8_t data)
-{
- write_prg_flash_command(0x0000, 0xF0);
- write_prg_flash_command(0x0555, 0xAA);
- write_prg_flash_command(0x02AA, 0x55);
- write_prg_flash_command(0x0555, 0xA0);
-
- write_prg_flash_command(address, data);
- _delay_us(50);
-
- int timeout = 0;
- uint8_t res, last_res = 0;
- while (timeout < 200)
- {
- res = read_prg_byte(address | 0x8000);
- ROMSEL_HI;
- if (res == last_res && last_res == data) break;
- last_res = res;
- _delay_us(50);
- timeout++;
- }
- //PHI2_LOW;
- ROMSEL_HI;
- set_address(0);
-
- return timeout < 10;
-}
-
-
-static int write_chr_flash_byte(unsigned int address, uint8_t data)
-{
- write_chr_flash_command(0x0000, 0xF0);
- write_chr_flash_command(0x0555, 0xAA);
- write_chr_flash_command(0x02AA, 0x55);
- write_chr_flash_command(0x0555, 0xA0);
- write_chr_flash_command(address, data);
-
- int timeout = 0;
- while (read_chr_byte(address | 0x8000) != data && timeout < 10)
- {
- _delay_us(100);
- timeout++;
- }
- set_address(0);
- PHI2_LOW;
- ROMSEL_HI;
-
- return timeout < 10;
-}
-
-static int erase_prg_flash()
-{
- LED_RED_ON;
- write_prg_flash_command(0x0000, 0xF0);
- write_prg_flash_command(0x0AAA, 0xAA);
- write_prg_flash_command(0x0555, 0x55);
- write_prg_flash_command(0x0AAA, 0x80);
- write_prg_flash_command(0x0AAA, 0xAA);
- write_prg_flash_command(0x0555, 0x55);
- write_prg_flash_command(0x0AAA, 0x10);
-
- int timeout = 0;
- while ((read_prg_byte(0x8000) != 0xFF) && (timeout < 300000))
- {
- _delay_ms(1);
- timeout++;
- }
- set_address(0);
- PHI2_HI;
- ROMSEL_HI;
-
- LED_RED_OFF;
- return timeout < 300000;
-}
-
-static int erase_coolboy_sector()
-{
- LED_RED_ON;
- PORTB |= 1<<TCK_PIN;
- PORTB |= 1<<TDO_PIN;
- DDRB |= 1<<TCK_PIN;
- DDRB |= 1<<TDO_PIN;
- ROMSEL_HI;
-
- write_coolboy_flash_command(0x0000, 0xF0);
- write_coolboy_flash_command(0x0AAA, 0xAA);
- write_coolboy_flash_command(0x0555, 0x55);
- write_coolboy_flash_command(0x0AAA, 0x80);
- write_coolboy_flash_command(0x0AAA, 0xAA);
- write_coolboy_flash_command(0x0555, 0x55);
- write_coolboy_flash_command(0x0000, 0x30);
-
- int timeout = 0;
- uint8_t debug;
- while (((debug = read_coolboy_byte(0x8000)) != 0xFF) && (timeout < 3000))
- {
- //comm_start(0xFF, 1);
- //comm_send_byte(debug);
- _delay_ms(1);
- timeout++;
- }
-
- set_address(0);
- ROMSEL_HI;
-
- jtag_shutdown();
- LED_RED_OFF;
- return timeout < 3000;
-}
-
-static int erase_coolgirl_sector()
-{
- LED_RED_ON;
- write_prg_flash_command(0x0000, 0xF0);
- write_prg_flash_command(0x0AAA, 0xAA);
- write_prg_flash_command(0x0555, 0x55);
- write_prg_flash_command(0x0AAA, 0x80);
- write_prg_flash_command(0x0AAA, 0xAA);
- write_prg_flash_command(0x0555, 0x55);
- write_prg_flash_command(0x0000, 0x30);
-
- int timeout = 0;
- uint8_t debug;
- while (((debug = read_prg_byte(0x8000)) != 0xFF) && (timeout < 3000))
- {
- //comm_start(0xFF, 1);
- //comm_send_byte(debug);
- _delay_ms(1);
- timeout++;
- }
- set_address(0);
- PHI2_HI;
- ROMSEL_HI;
-
- LED_RED_OFF;
- return timeout < 3000;
-}
-
-static int erase_chr_flash()
-{
- LED_RED_ON;
- write_chr_flash_command(0x0000, 0xF0);
- write_chr_flash_command(0x0555, 0xAA);
- write_chr_flash_command(0x02AA, 0x55);
- write_chr_flash_command(0x0555, 0x80);
- write_chr_flash_command(0x0555, 0xAA);
- write_chr_flash_command(0x02AA, 0x55);
- write_chr_flash_command(0x0555, 0x10);
-
- int timeout = 0;
- while ((read_chr_byte(0) != 0xFF) && (timeout < 10000))
- {
- _delay_ms(1);
- timeout++;
- }
- set_address(0);
- PHI2_HI;
- ROMSEL_HI;
-
- LED_RED_OFF;
- return timeout < 10000;
-}
-
-static int write_prg_flash(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- int ok = 1;
- while (len > 0)
- {
- if (!write_prg_flash_byte(address, *data))
- {
- ok = 0;
- break;
- }
- address++;
- len--;
- data++;
- }
- LED_RED_OFF;
- return ok;
-}
-
-static int write_coolboy(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- PORTB |= 1<<TCK_PIN;
- PORTB |= 1<<TDO_PIN;
- DDRB |= 1<<TCK_PIN;
- DDRB |= 1<<TDO_PIN;
- ROMSEL_HI;
- uint8_t ok = 1;
- while (len > 0)
- {
-
- //uint8_t count = len > 16 ? 16 : len;
- uint8_t count = 0;
- uint8_t* d = data;
- unsigned int a = address;
- unsigned int address_base = a & 0xFFE0;
- while (len > 0 && ((a & 0xFFE0) == address_base))
- {
- if (*d != 0xFF) count++;
- a++;
- len--;
- d++;
- }
-
- if (count)
- {
- //write_prg_flash_command(0x0000, 0xF0);
- write_coolboy_flash_command(0x0AAA, 0xAA);
- write_coolboy_flash_command(0x0555, 0x55);
- write_coolboy_flash_command(0x0000, 0x25);
- write_coolboy_flash_command(0x0000, count-1);
-
- while (count > 0)
- {
- if (*data != 0xFF)
- {
- write_coolboy_flash_command(address, *data);
- count--;
- }
- address++;
- data++;
- }
-
- write_coolboy_flash_command(0x0000, 0x29);
- _delay_us(10);
-
- long int timeout = 0;
- uint8_t res, last_res = 0;
- while (timeout < 100000)
- {
- res = read_coolboy_byte((address-1) | 0x8000);
- ROMSEL_HI;
- if (res == last_res && last_res == *(data-1)) break;
- last_res = res;
- _delay_us(10);
- timeout++;
- }
- if (timeout >= 100000)
- {
- ok = 0;
- break;
- }
- }
-
- address = a;
- data = d;
- }
- ROMSEL_HI;
- jtag_shutdown();
- LED_RED_OFF;
- return ok;
-}
-
-static int write_coolgirl(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- ROMSEL_HI;
- uint8_t ok = 1;
- while (len > 0)
- {
-
- //uint8_t count = len > 16 ? 16 : len;
- uint8_t count = 0;
- uint8_t* d = data;
- unsigned int a = address;
- unsigned int address_base = a & 0xFFE0;
- while (len > 0 && ((a & 0xFFE0) == address_base))
- {
- if (*d != 0xFF) count++;
- a++;
- len--;
- d++;
- }
-
- if (count)
- {
- //write_prg_flash_command(0x0000, 0xF0);
- write_prg_flash_command(0x0AAA, 0xAA);
- write_prg_flash_command(0x0555, 0x55);
- write_prg_flash_command(0x0000, 0x25);
- write_prg_flash_command(0x0000, count-1);
-
- while (count > 0)
- {
- if (*data != 0xFF)
- {
- write_prg_flash_command(address, *data);
- count--;
- }
- address++;
- data++;
- }
-
- write_prg_flash_command(0x0000, 0x29);
- _delay_us(10);
-
- long int timeout = 0;
- uint8_t res, last_res = 0;
- while (timeout < 100000)
- {
- res = read_prg_byte((address-1) | 0x8000);
- ROMSEL_HI;
- if (res == last_res && last_res == *(data-1)) break;
- last_res = res;
- _delay_us(10);
- timeout++;
- }
- if (timeout >= 100000)
- {
- ok = 0;
- break;
- }
- }
-
- address = a;
- data = d;
- }
- ROMSEL_HI;
- LED_RED_OFF;
- return ok;
-}
-
-static int write_chr_flash(unsigned int address, unsigned int len, uint8_t* data)
-{
- LED_RED_ON;
- if (address >= 0x8000) address -= 0x8000;
- int ok = 1;
- while (len > 0)
- {
- if (!write_chr_flash_byte(address, *data))
- {
- ok = 0;
- break;
- }
- address++;
- len--;
- data++;
- }
- LED_RED_OFF;
- return ok;
-}
-
-void get_mirroring()
-{
- comm_start(COMMAND_MIRRORING_RESULT, 4);
- LED_GREEN_ON;
- set_address(0);
- _delay_us(1);
- comm_send_byte((PINE >> 2) & 1);
- set_address(1<<10);
- _delay_us(1);
- comm_send_byte((PINE >> 2) & 1);
- set_address(1<<11);
- _delay_us(1);
- comm_send_byte((PINE >> 2) & 1);
- set_address((1<<10) | (1<<11));
- _delay_us(1);
- comm_send_byte((PINE >> 2) & 1);
- set_address(0);
-}
-
-static void init_ports()
-{
- DDRB |= (1 << 6) | (1 << 7); // LEDS
- DDRF = 0b10110111; // CPU R/W, IRQ, PPU /RD, PPU /A13, CIRAM /CE, PPU /WR, /ROMSEL, PHI2
- PORTF = 0b11111111; // CPU R/W, IRQ, PPU /RD, PPU /A13, CIRAM /CE, PPU /WR, /ROMSEL, PHI2
- DDRE &= ~(1<<2); // CIRAM A10
- PORTE |= 1<<2; // CIRAM A10
- MODE_READ;
- set_address(0);
- DDRA = 0xFF; // Address low
- DDRC = 0xFF; // Address high
-}
-
-static void reset_phi2()
-{
- LED_RED_ON;
- LED_GREEN_ON;
- PHI2_LOW;
- ROMSEL_HI;
- _delay_ms(1000);
- PHI2_HI;
- LED_RED_OFF;
- LED_GREEN_OFF;
-}
-
-int main (void)
-{
- sei();
- USART_init();
- init_ports();
- jtag_shutdown();
-
- LED_RED_OFF;
- LED_GREEN_OFF;
-
- comm_init();
- comm_start(COMMAND_PRG_STARTED, 0);
-
- uint16_t address;
- uint16_t length;
-
- unsigned long int t = 0;
- char led_down = 0;
- int led_bright = 0;
-
- while (1)
- {
- TCCR1A |= (1<<COM1C1) | (1<<COM1B1) | (1<<WGM10);
- TCCR1B |= (1<<CS10);
- if (t++ >= 10000)
- {
- if (!led_down)
- {
- led_bright++;
- if (led_bright >= 110) led_down = 1;
- } else {
- led_bright--;
- if (!led_bright) led_down = 0;
- }
- if (led_bright >= 100) OCR1B = led_bright - 100;
- if (led_down)
- {
- int led_bright2 = 110-led_bright;
- if (led_bright2 <= 20)
- {
- if (led_bright2 > 10) led_bright2 = 20 - led_bright2;
- OCR1C = led_bright2*2;
- }
- }
- t = 0;
- }
-
- if (comm_recv_done)
- {
- comm_recv_done = 0;
- t = led_down = led_bright = 0;
- TCCR1A = OCR1B = OCR1C = 0;
-
- switch (comm_recv_command)
- {
- case COMMAND_PRG_INIT:
- comm_start(COMMAND_PRG_STARTED, 0);
- break;
-
- case COMMAND_PRG_READ_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- read_prg_send(address, length);
- break;
-
- case COMMAND_PRG_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- write_prg(address, length, (uint8_t*)&recv_buffer[4]);
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_COOLBOY_READ_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- read_coolboy_send(address, length);
- break;
-
- case COMMAND_PHI2_INIT:
- phi2_init();
- comm_start(COMMAND_PHI2_INIT_DONE, 0);
- break;
-
- case COMMAND_RESET:
- reset_phi2();
- comm_start(COMMAND_RESET_ACK, 0);
- break;
-
- case COMMAND_PRG_FLASH_ERASE_REQUEST:
- if (erase_prg_flash())
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_PRG_FLASH_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- if (write_prg_flash(address, length, (uint8_t*)&recv_buffer[4]))
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_COOLBOY_ERASE_REQUEST:
- if (erase_coolboy_sector())
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_COOLBOY_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- if (write_coolboy(address, length, (uint8_t*)&recv_buffer[4]))
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_COOLGIRL_ERASE_SECTOR_REQUEST:
- if (erase_coolgirl_sector())
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_COOLGIRL_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- if (write_coolgirl(address, length, (uint8_t*)&recv_buffer[4]))
- comm_start(COMMAND_PRG_WRITE_DONE, 0);
- break;
-
- case COMMAND_CHR_INIT:
- comm_start(COMMAND_CHR_STARTED, 0);
- break;
-
- case COMMAND_CHR_READ_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- read_chr_send(address, length);
- break;
-
- case COMMAND_CHR_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- write_chr(address, length, (uint8_t*)&recv_buffer[4]);
- comm_start(COMMAND_CHR_WRITE_DONE, 0);
- break;
-
- case COMMAND_MIRRORING_REQUEST:
- get_mirroring();
- break;
-
- /*
- case COMMAND_EPROM_PREPARE:
- write_eprom_prepare();
- break;
-
- case COMMAND_CHR_EPROM_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- write_eprom(address, length, (uint8_t*)&recv_buffer[4]);
- comm_start(COMMAND_CHR_WRITE_DONE, 0);
- break;
- */
-
- case COMMAND_CHR_FLASH_ERASE_REQUEST:
- if (erase_chr_flash())
- comm_start(COMMAND_CHR_WRITE_DONE, 0);
- break;
-
- case COMMAND_CHR_FLASH_WRITE_REQUEST:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
- if (write_chr_flash(address, length, (uint8_t*)&recv_buffer[4]))
- comm_start(COMMAND_CHR_WRITE_DONE, 0);
- break;
-
- case COMMAND_JTAG_SETUP:
- jtag_setup();
- comm_start(COMMAND_JTAG_RESULT, 1);
- comm_send_byte(1);
- break;
-
- case COMMAND_JTAG_SHUTDOWN:
- jtag_shutdown();
- comm_start(COMMAND_JTAG_RESULT, 1);
- comm_send_byte(1);
- break;
-
- case COMMAND_JTAG_EXECUTE:
- address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
- comm_start(COMMAND_JTAG_RESULT, 1);
- LED_RED_ON;
- comm_send_byte(jtag_execute(address, (uint8_t*) &recv_buffer[2]));
- LED_RED_OFF;
- break;
- case COMMAND_BOOTLOADER:
- cli();
- MCUCSR = 0;
- jump_to_bootloader();
- }
- }
- }
-}
+/* Famicom Dumper/Programmer
+ *
+ * Copyright notice for this file:
+ * Copyright (C) 2016 Cluster
+ * http://clusterrr.com
+ * clusterrr@clusterrr.com
+ *
+ * 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
+ *
+ */
+
+#include "defines.h"
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/wdt.h>
+#include <util/delay.h>
+#include <inttypes.h>
+#include "usart.h"
+#include "comm.h"
+#include "jtag.h"
+
+#define LED_RED_ON PORTB |= (1<<7)
+#define LED_RED_OFF PORTB &= ~(1<<7)
+#define LED_GREEN_ON PORTB |= (1<<6)
+#define LED_GREEN_OFF PORTB &= ~(1<<6)
+#define ROMSEL_HI PORTF |= (1<<1)
+#define ROMSEL_LOW PORTF &= ~(1<<1)
+#define PHI2_HI PORTF |= (1<<0)
+#define PHI2_LOW PORTF &= ~(1<<0)
+#define MODE_READ { PORTD = 0xFF; DDRD = 0; }
+#define MODE_WRITE DDRD = 0xFF
+#define PRG_READ PORTF |= (1<<7)
+#define PRG_WRITE PORTF &= ~(1<<7)
+#define CHR_READ_HI PORTF |= (1<<5)
+#define CHR_READ_LOW PORTF &= ~(1<<5)
+#define CHR_WRITE_HI PORTF |= (1<<2)
+#define CHR_WRITE_LOW PORTF &= ~(1<<2)
+
+static void (*jump_to_bootloader)(void) = (void*)0xF800;
+
+ISR(USART0_RX_vect)
+{
+ unsigned char b;
+ while (UCSR0A & (1<<RXC0))
+ {
+ b = UDR0;
+ comm_proceed(b);
+ }
+}
+
+static void phi2_init()
+{
+ int i = 0x80;
+ unsigned char h = PORTF |= (1<<0);
+ unsigned char l = PORTF &= ~(1<<0);
+ while(i != 0){
+ PORTA = l;
+ PORTA = h;
+ i--;
+ }
+}
+
+static void set_address(unsigned int address)
+{
+ unsigned char l = address & 0xFF;
+ unsigned char h = address>>8;
+
+ PORTA = l;
+ PORTC = h;
+
+ // PPU /A13
+ if ((address >> 13) & 1)
+ PORTF &= ~(1<<4);
+ else
+ PORTF |= 1<<4;
+}
+
+static void set_romsel(unsigned int address)
+{
+ if (address & 0x8000)
+ {
+ ROMSEL_LOW;
+ } else {
+ ROMSEL_HI;
+ }
+}
+
+static unsigned char read_prg_byte(unsigned int address)
+{
+ MODE_READ;
+ PRG_READ;
+ set_address(address);
+ PHI2_HI;
+ set_romsel(address);
+ _delay_us(1);
+ return PIND;
+}
+
+static unsigned char read_chr_byte(unsigned int address)
+{
+ MODE_READ;
+ PHI2_HI;
+ ROMSEL_HI;
+ set_address(address);
+ CHR_READ_LOW;
+
+ _delay_us(1);
+
+ uint8_t result = PIND;
+
+ CHR_READ_HI;
+ return result;
+}
+
+static unsigned char read_coolboy_byte(unsigned int address)
+{
+ MODE_READ;
+ PRG_READ;
+ set_address(address);
+ PHI2_HI;
+ ROMSEL_LOW;
+ PORTB |= 1<<TDO_PIN;
+ PORTB &= ~(1<<TCK_PIN);
+ _delay_us(1);
+ return PIND;
+}
+
+static void read_prg_send(unsigned int address, unsigned int len)
+{
+ LED_GREEN_ON;
+ comm_start(COMMAND_PRG_READ_RESULT, len);
+ while (len > 0)
+ {
+ comm_send_byte(read_prg_byte(address));
+ len--;
+ address++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+ LED_GREEN_OFF;
+}
+
+static void read_chr_send(unsigned int address, unsigned int len)
+{
+ LED_GREEN_ON;
+ comm_start(COMMAND_CHR_READ_RESULT, len);
+ while (len > 0)
+ {
+ comm_send_byte(read_chr_byte(address));
+ len--;
+ address++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+ LED_GREEN_OFF;
+}
+
+static uint16_t crc16_update(uint16_t crc, uint8_t a)
+{
+ int i;
+ crc ^= a;
+ for (i = 0; i < 8; ++i)
+ {
+ if (crc & 1)
+ crc = (crc >> 1) ^ 0xA001;
+ else
+ crc = (crc >> 1);
+ }
+ return crc;
+}
+
+static void read_prg_crc_send(unsigned int address, unsigned int len)
+{
+ LED_GREEN_ON;
+ uint16_t crc = 0;
+ read_prg_byte(address);
+ while (len > 0)
+ {
+ unsigned char l = address & 0xFF;
+ unsigned char h = address>>8;
+ PORTA = l;
+ PORTC = h;
+ _delay_us(1);
+ crc = crc16_update(crc, PIND);
+ len--;
+ address++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+ comm_start(COMMAND_PRG_READ_RESULT, 2);
+ comm_send_byte(crc & 0xFF);
+ comm_send_byte((crc >> 8) & 0xFF);
+ LED_GREEN_OFF;
+}
+
+static void read_chr_crc_send(unsigned int address, unsigned int len)
+{
+ LED_GREEN_ON;
+ uint16_t crc = 0;
+ while (len > 0)
+ {
+ crc = crc16_update(crc, read_chr_byte(address));
+ len--;
+ address++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+ comm_start(COMMAND_CHR_READ_RESULT, 2);
+ comm_send_byte(crc & 0xFF);
+ comm_send_byte((crc >> 8) & 0xFF);
+ LED_GREEN_OFF;
+}
+
+static void read_coolboy_send(unsigned int address, unsigned int len)
+{
+ LED_GREEN_ON;
+ PORTB |= 1<<TCK_PIN;
+ PORTB |= 1<<TDO_PIN;
+ DDRB |= 1<<TCK_PIN;
+ DDRB |= 1<<TDO_PIN;
+ comm_start(COMMAND_PRG_READ_RESULT, len);
+ while (len > 0)
+ {
+ comm_send_byte(read_coolboy_byte(address));
+ len--;
+ address++;
+ }
+ set_address(0);
+ ROMSEL_HI;
+ PORTB |= 1<<TCK_PIN;
+ PORTB |= 1<<TDO_PIN;
+
+ jtag_shutdown();
+ LED_GREEN_OFF;
+}
+
+static void write_prg_byte(unsigned int address, uint8_t data)
+{
+ PHI2_LOW;
+ ROMSEL_HI;
+ MODE_WRITE;
+ PRG_WRITE;
+ PORTD = data;
+ set_address(address); // PHI2 low, ROMSEL always HIGH
+// _delay_us(1);
+
+ PHI2_HI;
+ //_delay_us(10);
+ set_romsel(address); // ROMSEL is low if need, PHI2 high
+
+ _delay_us(1); // WRITING
+ //_delay_ms(1); // WRITING
+
+ // PHI2 low, ROMSEL high
+ PHI2_LOW;
+ _delay_us(1);
+ ROMSEL_HI;
+
+ // Back to read mode
+// _delay_us(1);
+ PRG_READ;
+ MODE_READ;
+ set_address(0);
+
+ // Set phi2 to high state to keep cartridge unreseted
+// _delay_us(1);
+ PHI2_HI;
+
+// _delay_us(1);
+}
+
+static void write_chr_byte(unsigned int address, uint8_t data)
+{
+ PHI2_LOW;
+ ROMSEL_HI;
+ MODE_WRITE;
+ PORTD = data;
+ set_address(address); // PHI2 low, ROMSEL always HIGH
+ //_delay_us(10);
+
+ CHR_WRITE_LOW;
+
+ _delay_us(1); // WRITING
+ //_delay_ms(1); // WRITING
+
+ CHR_WRITE_HI;
+
+ //_delay_us(1);
+
+ MODE_READ;
+ set_address(0);
+ PHI2_HI;
+
+ //_delay_us(1);
+}
+
+static void write_prg(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ while (len > 0)
+ {
+ write_prg_byte(address, *data);
+ address++;
+ len--;
+ data++;
+ }
+ //_delay_ms(1);
+ LED_RED_OFF;
+}
+
+static void write_chr(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ while (len > 0)
+ {
+ write_chr_byte(address, *data);
+ address++;
+ len--;
+ data++;
+ }
+ //_delay_ms(1);
+ LED_RED_OFF;
+}
+
+static void write_prg_flash_command(unsigned int address, uint8_t data)
+{
+ write_prg_byte(address | 0x8000, data);
+}
+
+static void write_coolboy_flash_command(unsigned int address, uint8_t data)
+{
+ PORTB |= 1<<TCK_PIN;
+ PORTB |= 1<<TDO_PIN;
+ ROMSEL_HI;
+ PRG_READ;
+ set_address(address);
+ MODE_WRITE;
+ PORTD = data;
+ PHI2_HI;
+ ROMSEL_LOW;
+ _delay_us(1);
+
+ PORTB &= ~(1<<TDO_PIN);
+
+ _delay_us(1);
+
+ PORTB |= 1<<TDO_PIN;
+ set_address(0);
+ ROMSEL_HI;
+ MODE_READ;
+}
+
+static void write_chr_flash_command(unsigned int address, uint8_t data)
+{
+ write_chr_byte(address, data);
+}
+
+static int write_prg_flash_byte(unsigned int address, uint8_t data)
+{
+ write_prg_flash_command(0x0000, 0xF0);
+ write_prg_flash_command(0x0555, 0xAA);
+ write_prg_flash_command(0x02AA, 0x55);
+ write_prg_flash_command(0x0555, 0xA0);
+
+ write_prg_flash_command(address, data);
+ _delay_us(50);
+
+ int timeout = 0;
+ uint8_t res, last_res = 0;
+ while (timeout < 200)
+ {
+ res = read_prg_byte(address | 0x8000);
+ ROMSEL_HI;
+ if (res == last_res && last_res == data) break;
+ last_res = res;
+ _delay_us(50);
+ timeout++;
+ }
+ //PHI2_LOW;
+ ROMSEL_HI;
+ set_address(0);
+
+ return timeout < 10;
+}
+
+
+static int write_chr_flash_byte(unsigned int address, uint8_t data)
+{
+ write_chr_flash_command(0x0000, 0xF0);
+ write_chr_flash_command(0x0555, 0xAA);
+ write_chr_flash_command(0x02AA, 0x55);
+ write_chr_flash_command(0x0555, 0xA0);
+ write_chr_flash_command(address, data);
+
+ int timeout = 0;
+ while (read_chr_byte(address | 0x8000) != data && timeout < 10)
+ {
+ _delay_us(100);
+ timeout++;
+ }
+ set_address(0);
+ PHI2_LOW;
+ ROMSEL_HI;
+
+ return timeout < 10;
+}
+
+static int erase_prg_flash()
+{
+ LED_RED_ON;
+ write_prg_flash_command(0x0000, 0xF0);
+ write_prg_flash_command(0x0AAA, 0xAA);
+ write_prg_flash_command(0x0555, 0x55);
+ write_prg_flash_command(0x0AAA, 0x80);
+ write_prg_flash_command(0x0AAA, 0xAA);
+ write_prg_flash_command(0x0555, 0x55);
+ write_prg_flash_command(0x0AAA, 0x10);
+
+ int timeout = 0;
+ while ((read_prg_byte(0x8000) != 0xFF) && (timeout < 300000))
+ {
+ _delay_ms(1);
+ timeout++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+
+ LED_RED_OFF;
+ return timeout < 300000;
+}
+
+static int erase_coolboy_sector()
+{
+ LED_RED_ON;
+ PORTB |= 1<<TCK_PIN;
+ PORTB |= 1<<TDO_PIN;
+ DDRB |= 1<<TCK_PIN;
+ DDRB |= 1<<TDO_PIN;
+ ROMSEL_HI;
+
+ write_coolboy_flash_command(0x0000, 0xF0);
+ write_coolboy_flash_command(0x0AAA, 0xAA);
+ write_coolboy_flash_command(0x0555, 0x55);
+ write_coolboy_flash_command(0x0AAA, 0x80);
+ write_coolboy_flash_command(0x0AAA, 0xAA);
+ write_coolboy_flash_command(0x0555, 0x55);
+ write_coolboy_flash_command(0x0000, 0x30);
+
+ int timeout = 0;
+ uint8_t debug;
+ while (((debug = read_coolboy_byte(0x8000)) != 0xFF) && (timeout < 3000))
+ {
+ //comm_start(0xFF, 1);
+ //comm_send_byte(debug);
+ _delay_ms(1);
+ timeout++;
+ }
+
+ set_address(0);
+ ROMSEL_HI;
+
+ jtag_shutdown();
+ LED_RED_OFF;
+ return timeout < 3000;
+}
+
+static int erase_coolgirl_sector()
+{
+ LED_RED_ON;
+ write_prg_flash_command(0x0000, 0xF0);
+ write_prg_flash_command(0x0AAA, 0xAA);
+ write_prg_flash_command(0x0555, 0x55);
+ write_prg_flash_command(0x0AAA, 0x80);
+ write_prg_flash_command(0x0AAA, 0xAA);
+ write_prg_flash_command(0x0555, 0x55);
+ write_prg_flash_command(0x0000, 0x30);
+
+ int timeout = 0;
+ uint8_t debug;
+ while (((debug = read_prg_byte(0x8000)) != 0xFF) && (timeout < 3000))
+ {
+ //comm_start(0xFF, 1);
+ //comm_send_byte(debug);
+ _delay_ms(1);
+ timeout++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+
+ LED_RED_OFF;
+ return timeout < 3000;
+}
+
+static int erase_chr_flash()
+{
+ LED_RED_ON;
+ write_chr_flash_command(0x0000, 0xF0);
+ write_chr_flash_command(0x0555, 0xAA);
+ write_chr_flash_command(0x02AA, 0x55);
+ write_chr_flash_command(0x0555, 0x80);
+ write_chr_flash_command(0x0555, 0xAA);
+ write_chr_flash_command(0x02AA, 0x55);
+ write_chr_flash_command(0x0555, 0x10);
+
+ int timeout = 0;
+ while ((read_chr_byte(0) != 0xFF) && (timeout < 10000))
+ {
+ _delay_ms(1);
+ timeout++;
+ }
+ set_address(0);
+ PHI2_HI;
+ ROMSEL_HI;
+
+ LED_RED_OFF;
+ return timeout < 10000;
+}
+
+static int write_prg_flash(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ int ok = 1;
+ while (len > 0)
+ {
+ if (!write_prg_flash_byte(address, *data))
+ {
+ ok = 0;
+ break;
+ }
+ address++;
+ len--;
+ data++;
+ }
+ LED_RED_OFF;
+ return ok;
+}
+
+static int write_coolboy(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ PORTB |= 1<<TCK_PIN;
+ PORTB |= 1<<TDO_PIN;
+ DDRB |= 1<<TCK_PIN;
+ DDRB |= 1<<TDO_PIN;
+ ROMSEL_HI;
+ uint8_t ok = 1;
+ while (len > 0)
+ {
+
+ //uint8_t count = len > 16 ? 16 : len;
+ uint8_t count = 0;
+ uint8_t* d = data;
+ unsigned int a = address;
+ unsigned int address_base = a & 0xFFE0;
+ while (len > 0 && ((a & 0xFFE0) == address_base))
+ {
+ if (*d != 0xFF) count++;
+ a++;
+ len--;
+ d++;
+ }
+
+ if (count)
+ {
+ //write_prg_flash_command(0x0000, 0xF0);
+ write_coolboy_flash_command(0x0AAA, 0xAA);
+ write_coolboy_flash_command(0x0555, 0x55);
+ write_coolboy_flash_command(0x0000, 0x25);
+ write_coolboy_flash_command(0x0000, count-1);
+
+ while (count > 0)
+ {
+ if (*data != 0xFF)
+ {
+ write_coolboy_flash_command(address, *data);
+ count--;
+ }
+ address++;
+ data++;
+ }
+
+ write_coolboy_flash_command(0x0000, 0x29);
+ _delay_us(10);
+
+ long int timeout = 0;
+ uint8_t res, last_res = 0;
+ while (timeout < 100000)
+ {
+ res = read_coolboy_byte((address-1) | 0x8000);
+ ROMSEL_HI;
+ if (res == last_res && last_res == *(data-1)) break;
+ last_res = res;
+ _delay_us(10);
+ timeout++;
+ }
+ if (timeout >= 100000)
+ {
+ ok = 0;
+ break;
+ }
+ }
+
+ address = a;
+ data = d;
+ }
+ ROMSEL_HI;
+ jtag_shutdown();
+ LED_RED_OFF;
+ return ok;
+}
+
+static int write_coolgirl(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ ROMSEL_HI;
+ uint8_t ok = 1;
+ while (len > 0)
+ {
+
+ //uint8_t count = len > 16 ? 16 : len;
+ uint8_t count = 0;
+ uint8_t* d = data;
+ unsigned int a = address;
+ unsigned int address_base = a & 0xFFE0;
+ while (len > 0 && ((a & 0xFFE0) == address_base))
+ {
+ if (*d != 0xFF) count++;
+ a++;
+ len--;
+ d++;
+ }
+
+ if (count)
+ {
+ //write_prg_flash_command(0x0000, 0xF0);
+ write_prg_flash_command(0x0AAA, 0xAA);
+ write_prg_flash_command(0x0555, 0x55);
+ write_prg_flash_command(0x0000, 0x25);
+ write_prg_flash_command(0x0000, count-1);
+
+ while (count > 0)
+ {
+ if (*data != 0xFF)
+ {
+ write_prg_flash_command(address, *data);
+ count--;
+ }
+ address++;
+ data++;
+ }
+
+ write_prg_flash_command(0x0000, 0x29);
+ _delay_us(10);
+
+ long int timeout = 0;
+ uint8_t res, last_res = 0;
+ while (timeout < 100000)
+ {
+ res = read_prg_byte((address-1) | 0x8000);
+ ROMSEL_HI;
+ if (res == last_res && last_res == *(data-1)) break;
+ last_res = res;
+ _delay_us(10);
+ timeout++;
+ }
+ if (timeout >= 100000)
+ {
+ ok = 0;
+ break;
+ }
+ }
+
+ address = a;
+ data = d;
+ }
+ ROMSEL_HI;
+ LED_RED_OFF;
+ return ok;
+}
+
+static int write_chr_flash(unsigned int address, unsigned int len, uint8_t* data)
+{
+ LED_RED_ON;
+ if (address >= 0x8000) address -= 0x8000;
+ int ok = 1;
+ while (len > 0)
+ {
+ if (!write_chr_flash_byte(address, *data))
+ {
+ ok = 0;
+ break;
+ }
+ address++;
+ len--;
+ data++;
+ }
+ LED_RED_OFF;
+ return ok;
+}
+
+void get_mirroring()
+{
+ comm_start(COMMAND_MIRRORING_RESULT, 4);
+ LED_GREEN_ON;
+ set_address(0);
+ _delay_us(1);
+ comm_send_byte((PINE >> 2) & 1);
+ set_address(1<<10);
+ _delay_us(1);
+ comm_send_byte((PINE >> 2) & 1);
+ set_address(1<<11);
+ _delay_us(1);
+ comm_send_byte((PINE >> 2) & 1);
+ set_address((1<<10) | (1<<11));
+ _delay_us(1);
+ comm_send_byte((PINE >> 2) & 1);
+ set_address(0);
+}
+
+static void init_ports()
+{
+ DDRB |= (1 << 6) | (1 << 7); // LEDS
+ DDRF = 0b10110111; // CPU R/W, IRQ, PPU /RD, PPU /A13, CIRAM /CE, PPU /WR, /ROMSEL, PHI2
+ PORTF = 0b11111111; // CPU R/W, IRQ, PPU /RD, PPU /A13, CIRAM /CE, PPU /WR, /ROMSEL, PHI2
+ DDRE &= ~(1<<2); // CIRAM A10
+ PORTE |= 1<<2; // CIRAM A10
+ MODE_READ;
+ set_address(0);
+ DDRA = 0xFF; // Address low
+ DDRC = 0xFF; // Address high
+}
+
+static void reset_phi2()
+{
+ LED_RED_ON;
+ LED_GREEN_ON;
+ PHI2_LOW;
+ ROMSEL_HI;
+ _delay_ms(100);
+ PHI2_HI;
+ LED_RED_OFF;
+ LED_GREEN_OFF;
+}
+
+int main (void)
+{
+ sei();
+ USART_init();
+ init_ports();
+ jtag_shutdown();
+
+ LED_RED_OFF;
+ LED_GREEN_OFF;
+
+ comm_init();
+ comm_start(COMMAND_PRG_STARTED, 0);
+
+ uint16_t address;
+ uint16_t length;
+
+ unsigned long int t = 0;
+ char led_down = 0;
+ int led_bright = 0;
+
+ while (1)
+ {
+ TCCR1A |= (1<<COM1C1) | (1<<COM1B1) | (1<<WGM10);
+ TCCR1B |= (1<<CS10);
+ if (t++ >= 10000)
+ {
+ if (!led_down)
+ {
+ led_bright++;
+ if (led_bright >= 110) led_down = 1;
+ } else {
+ led_bright--;
+ if (!led_bright) led_down = 0;
+ }
+ if (led_bright >= 100) OCR1B = led_bright - 100;
+ if (led_down)
+ {
+ int led_bright2 = 110-led_bright;
+ if (led_bright2 <= 20)
+ {
+ if (led_bright2 > 10) led_bright2 = 20 - led_bright2;
+ OCR1C = led_bright2*2;
+ }
+ }
+ t = 0;
+ }
+
+ if (comm_recv_done)
+ {
+ comm_recv_done = 0;
+ t = led_down = led_bright = 0;
+ TCCR1A = OCR1B = OCR1C = 0;
+
+ switch (comm_recv_command)
+ {
+ case COMMAND_PRG_INIT:
+ comm_start(COMMAND_PRG_STARTED, 0);
+ break;
+
+ case COMMAND_PRG_READ_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ read_prg_send(address, length);
+ break;
+
+ case COMMAND_PRG_CRC_READ_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ read_prg_crc_send(address, length);
+ break;
+
+ case COMMAND_PRG_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ write_prg(address, length, (uint8_t*)&recv_buffer[4]);
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_COOLBOY_READ_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ read_coolboy_send(address, length);
+ break;
+
+ case COMMAND_PHI2_INIT:
+ phi2_init();
+ comm_start(COMMAND_PHI2_INIT_DONE, 0);
+ break;
+
+ case COMMAND_RESET:
+ reset_phi2();
+ comm_start(COMMAND_RESET_ACK, 0);
+ break;
+
+ case COMMAND_PRG_FLASH_ERASE_REQUEST:
+ if (erase_prg_flash())
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_PRG_FLASH_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ if (write_prg_flash(address, length, (uint8_t*)&recv_buffer[4]))
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_COOLBOY_ERASE_REQUEST:
+ if (erase_coolboy_sector())
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_COOLBOY_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ if (write_coolboy(address, length, (uint8_t*)&recv_buffer[4]))
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_COOLGIRL_ERASE_SECTOR_REQUEST:
+ if (erase_coolgirl_sector())
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_COOLGIRL_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ if (write_coolgirl(address, length, (uint8_t*)&recv_buffer[4]))
+ comm_start(COMMAND_PRG_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_CHR_INIT:
+ comm_start(COMMAND_CHR_STARTED, 0);
+ break;
+
+ case COMMAND_CHR_READ_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ read_chr_send(address, length);
+ break;
+
+ case COMMAND_CHR_CRC_READ_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ read_chr_crc_send(address, length);
+ break;
+
+ case COMMAND_CHR_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ write_chr(address, length, (uint8_t*)&recv_buffer[4]);
+ comm_start(COMMAND_CHR_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_MIRRORING_REQUEST:
+ get_mirroring();
+ break;
+
+ /*
+ case COMMAND_EPROM_PREPARE:
+ write_eprom_prepare();
+ break;
+
+ case COMMAND_CHR_EPROM_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ write_eprom(address, length, (uint8_t*)&recv_buffer[4]);
+ comm_start(COMMAND_CHR_WRITE_DONE, 0);
+ break;
+ */
+
+ case COMMAND_CHR_FLASH_ERASE_REQUEST:
+ if (erase_chr_flash())
+ comm_start(COMMAND_CHR_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_CHR_FLASH_WRITE_REQUEST:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ length = recv_buffer[2] | ((uint16_t)recv_buffer[3]<<8);
+ if (write_chr_flash(address, length, (uint8_t*)&recv_buffer[4]))
+ comm_start(COMMAND_CHR_WRITE_DONE, 0);
+ break;
+
+ case COMMAND_JTAG_SETUP:
+ jtag_setup();
+ comm_start(COMMAND_JTAG_RESULT, 1);
+ comm_send_byte(1);
+ break;
+
+ case COMMAND_JTAG_SHUTDOWN:
+ jtag_shutdown();
+ comm_start(COMMAND_JTAG_RESULT, 1);
+ comm_send_byte(1);
+ break;
+
+ case COMMAND_JTAG_EXECUTE:
+ address = recv_buffer[0] | ((uint16_t)recv_buffer[1]<<8);
+ comm_start(COMMAND_JTAG_RESULT, 1);
+ LED_RED_ON;
+ comm_send_byte(jtag_execute(address, (uint8_t*) &recv_buffer[2]));
+ LED_RED_OFF;
+ break;
+ case COMMAND_BOOTLOADER:
+ cli();
+ MCUCSR = 0;
+ jump_to_bootloader();
+ }
+ }
+ }
+}
diff --git a/famicom-dumper.hex b/famicom-dumper.hex
index f37ddb0..83c7a4d 100644
--- a/famicom-dumper.hex
+++ b/famicom-dumper.hex
@@ -1,387 +1,366 @@
-:100000000C9446000C9458000C9458000C94580022
-:100010000C9458000C9458000C9458000C94580000
-:100020000C9458000C9458000C9458000C945800F0
-:100030000C9458000C9458000C9458000C945800E0
-:100040000C9458000C9458000C943B080C945800E5
-:100050000C9458000C9458000C9458000C945800C0
-:100060000C9458000C9458000C9458000C945800B0
-:100070000C9458000C9458000C9458000C945800A0
-:100080000C9458000C9458000C94580011241FBE76
-:10009000CFEFD0E1DEBFCDBF15E0A0E0B1E001C001
-:1000A0001D92AC33B107E1F70E94BA010C940E0C1B
-:1000B0000C9400008BBB95BB95FD06C0809162003F
-:1000C0008061809362000895809162008F7E8093AA
-:1000D000620008950F931F938C018FEF82BB11BABA
-:1000E00080916200806880936200C8010E945A007B
-:1000F0008091620081608093620017FD0CC0809146
-:10010000620082608093620082E08A95F1F780B39A
-:100110001F910F910895809162008D7F80936200FE
-:10012000F3CF0F931F932FEF22BB11BA02E610E01B
-:10013000F8012081216020832081226020830E9499
-:100140005A00F80180818F7D808382E08A95F1F7E3
-:1001500080B39081906290831F910F9108950F93C7
-:100160001F932FEF22BB11BA02E610E0F8012081A5
-:10017000206820830E945A00F8018081816080837A
-:1001800080818D7F8083C39AC49882E08A95F1F73D
-:1001900080B31F910F9108950F931F938C0180914D
-:1001A00062008E7F80936200809162008260809303
-:1001B00062008FEF81BB809162008F778093620035
-:1001C00062BBC8010E945A008091620081608093E6
-:1001D000620017FD29C080916200826080936200F6
-:1001E00092E0892F8A95F1F7809162008E7F80934B
-:1001F00062009A95F1F780916200826080936200BC
-:10020000809162008068809362008FEF82BB11BA98
-:1002100080E090E00E945A008091620081608093AB
-:1002200062001F910F910895809162008D7F8093ED
-:100230006200D6CFFF920F931F9302E610E0F80101
-:1002400020812E7F2083208122602083FF24FA9446
-:10025000F1BA62BB0E945A00F80180818B7F8083D3
-:10026000808184608083F2BA11BA80E090E00E94BD
-:100270005A00F8018081816080831F910F91FF9067
-:10028000089590680E94CC000895EF92FF920F931A
-:100290001F93F62EC49AC39A02E610E0F80120815B
-:1002A000226020832081206820830E945A00EE244F
-:1002B000EA94E1BAF2BAF80180818160808380819A
-:1002C0008D7F808382E0982F9A95F1F7C3988A9565
-:1002D000F1F7C39A80E090E00E945A00F801808113
-:1002E00082608083E2BA11BA1F910F91FF90EF9064
-:1002F00008951F9382E164E070E00E94E608C69AC8
-:1003000080E090E00E945A0012E0812F8A95F1F778
-:1003100081B18695869581700E94CE0880E094E038
-:100320000E945A00812F8A95F1F781B186958695B2
-:1003300081700E94CE0880E098E00E945A00812FD0
-:100340008A95F1F781B18695869581700E94CE08D5
-:1003500080E09CE00E945A001A95F1F781B18695E1
-:10036000869581700E94CE0880E090E00E945A003D
-:100370001F9108953F924F925F926F927F928F925A
-:100380009F92AF92BF92CF92DF92EF92FF920F9324
-:100390001F93DF93CF93CDB7DEB7A8970FB6F8942E
-:1003A000DEBF0FBECDBF78940E94640887B3806C17
-:1003B00087BB87EB809361001FEF10936200129858
-:1003C0001A9A12BB11BA80E090E00E945A001ABB40
-:1003D00014BB0E94B609C798C6980E94AF0880E077
-:1003E00060E070E00E94E60855E8352E4AE1C42E30
-:1003F0008FB589628FBD8EB581608EBD21E030E002
-:1004000040E050E0E0E060E070E08091200188236F
-:1004100009F043C08FB589628FBD8EB581608EBDF6
-:10042000203187E2380780E0480780E0580708F469
-:100430005FC0EE2309F066C06F5F7F4F6E367105B7
-:100440000CF0E1E06436710534F06456704079BD1B
-:1004500068BD6C597F4FEE2309F44FC08EE690E0E3
-:10046000861B970B853191050CF047C08B309105A9
-:100470002CF024E130E0281B390BC901880F991FAB
-:10048000909379008093780020E030E040E050E0E5
-:1004900080912001882309F4BDCF10922001109291
-:1004A000790010927800809178009091790099BD40
-:1004B00088BD88B599B58FBD80912101893109F436
-:1004C00023C58A3148F58B3009F4AEC48C3008F06E
-:1004D00079C1863009F46EC4873008F0A6C1853032
-:1004E00009F086CF80E060E070E00E94E60880CFEF
-:1004F0002F5F3F4F4F4F5F4F88CF20E030E040E00D
-:1005000050E083CF6150704009F09CCF20E030E094
-:1005100040E050E0E0E079CF823209F4B6C48332A3
-:1005200008F090C08C3109F4ADC48D3108F00DC2D3
-:100530008A3109F433C28B3109F05ACF90912201EC
-:10054000809123018AA319A2A92EBB24E9A1FAA1B3
-:10055000AE2ABF2A90912401809125018CA31BA271
-:10056000892E99242BA13CA1822A932AC79AB7FCF1
-:100570007DC58114910409F45EC0EE24FF24870137
-:100580000A0D1B1DF701EE5DFE4FD48080E090E068
-:1005900060EF0E941A0185E595E06AEA0E941A015F
-:1005A0008AEA92E065E50E941A0185E595E060EA35
-:1005B0000E941A01C8016D2D0E941A01106866245C
-:1005C000772407C088EC90E00197F1F70894611C4C
-:1005D000711CC8010E949100D816A1F09AE069161A
-:1005E000710481F780E090E00E945A0080916200DF
-:1005F0008E7F8093620080916200826080936200AF
-:10060000C798F6CE80E090E00E945A008091620088
-:100610008E7F80936200809162008260809362008E
-:10062000EAE06E16710464F70894E11CF11C8E1464
-:100630009F0409F0A4CFC7988EE060E070E00E94AC
-:10064000E608D6CE853209F4ACC2863208F071C114
-:10065000833209F41CC3843209F0CACE30912201DE
-:100660002091230190912401809125018A8B198A80
-:10067000A92EBB2489899A89A82AB92AC79AC49A1B
-:10068000C39ABC9ABB9A8091620082608093620098
-:10069000A114B10409F4CDC42C8B1B8AE32FF0E024
-:1006A0002B893C89E22BF32BF8A7EFA396E2492E86
-:1006B00091E0592E2FA138A5207E32018FA098A459
-:1006C00010E005C0C401807E2817390789F4F301C2
-:1006D00080818F3F09F01F5F0894811C911C089452
-:1006E000A108B1080894611C711CA114B10451F750
-:1006F000112341F4A114B10409F49BC498A68FA25C
-:100700002301D8CF8AEA9AE06AEA0E94450185E58A
-:1007100095E065E50E94450180E090E065E20E9479
-:100720004501612F615080E090E00E94450101C0C9
-:100730002C01F20160816F3F29F08FA198A50E94E2
-:10074000450111502FA138A52F5F3F4F38A72FA388
-:10075000C2010196112361F780E090E069E20E94F6
-:1007600045018C2D8A95F1F7DD24EE24FF248701C5
-:100770008FA198A50197906898A78FA312C08C2D80
-:100780008A95F1F70894E11CF11C011D111DF0EA96
-:10079000EF16F6E8FF06F1E00F07F0E01F07E1F1C2
-:1007A000D92E8FA198A50E94AF00982F809162004A
-:1007B0008260809362009D1511F7F2018081D81646
-:1007C000F1F698CF813109F45FC2823108F067C039
-:1007D0008D3009F4F5C28F3009F00ACE80916200A5
-:1007E00081608093620030916200809162008E7F10
-:1007F000809362002091620080E890E02BBB3BBBBD
-:100800000197E1F780E160E070E00E94E608F0CD3A
-:1008100080E090E00E945A008091620082608093A4
-:1008200062000E94B609C798E3CD873009F486C2FA
-:10083000893009F0DDCD3091220120912301909182
-:100840002401809125018E831D82E92EFF248D8154
-:100850009E81E82AF92AC79AE114F104C9F0288791
-:100860001F82032F10E0EF81F8850E2B1F2BAA2487
-:10087000BB24F501EE5DFE4FC501800F911F648121
-:100880000E94CC000894A11CB11CEA14FB0489F757
-:10089000C7988AE060E070E00E94E608A9CD833145
-:1008A00009F4D0C1883109F0A3CDC79A80E090E067
-:1008B00060EF0E9441018AEA9AE06AEA0E944101DF
-:1008C00085E595E065E50E9441018AEA9AE060E8E5
-:1008D0000E9441018AEA9AE06AEA0E94410185E5A4
-:1008E00095E065E50E9441018AEA9AE060E10E9494
-:1008F000410104C080ED97E00197F1F780E090E8B6
-:100900000E946A008F3FB1F780E090E00E945A0099
-:1009100080916200816080936200809162008260B9
-:1009200080936200C7988AE060E070E00E94E60869
-:100930005FCD863209F47EC08E3F09F059CDF89420
-:1009400014BEE0E0F8EF099553CD8D31E1F08E3122
-:1009500009F04ECD00912201F09023018FE161E07A
-:1009600070E00E94E608C79AFEA21DA210E08DA1C9
-:100970009EA1802B912B64E271E00E94BD090E9430
-:10098000CE08C79835CD0E94B6098FE161E070E0CE
-:100990000E94E60881E00E94CE082ACDC79A80E036
-:1009A00090E060EF0E941A0185E595E06AEA0E94F6
-:1009B0001A018AEA92E065E50E941A0185E595E050
-:1009C00060E80E941A0185E595E06AEA0E941A0132
-:1009D0008AEA92E065E50E941A0185E595E060E10A
-:1009E0000E941A0100E010E00BC037E2003113074B
-:1009F00009F42DC380ED97E00197F1F70F5F1F4FCA
-:100A000080E090E00E9491008F3F79F780E090E0D5
-:100A10000E945A0080916200816080936200809100
-:100A20006200826080936200C798005117420CF008
-:100A3000DFCC02CE3091220120912301909124013C
-:100A4000809125018E8B1D8AA92EBB248D899E89BC
-:100A5000A82AB92AC79A80916200826080936200B6
-:100A6000A114B10409F4D9C2288F1F8AE32FF0E042
-:100A70002F89388DE22BF32BF8A7EFA386E2482EBF
-:100A800081E0582E2FA138A5207E32018FA098A496
-:100A900010E005C0C401807E2817390789F4F301EE
-:100AA00080818F3F09F01F5F0894811C911C08947E
-:100AB000A108B1080894611C711CA114B10451F77C
-:100AC000112341F4A114B10409F4A7C298A68FA27E
-:100AD0002301D8CF8AEA9AE06AEA0E94410185E5BB
-:100AE00095E065E50E94410180E090E065E20E94AA
-:100AF0004101612F615080E090E00E94410101C0FE
-:100B00002C01F20160816F3F29F08FA198A50E940E
-:100B1000410111502FA138A52F5F3F4F38A72FA3B8
-:100B2000C2010196112361F780E090E069E20E9422
-:100B300041018C2D8A95F1F7DD24EE24FF248701F5
-:100B40008FA198A50197906898A78FA312C08C2DAC
-:100B50008A95F1F70894E11CF11C011D111DF0EAC2
-:100B6000EF16F6E8FF06F1E00F07F0E01F0791F03F
-:100B7000D92E8FA198A50E946A00982F80916200BB
-:100B80008260809362009D1511F7F2018081D81672
-:100B9000F1F698CF80916200826080936200C798DE
-:100BA00027CCC79A80E090E060EF0E9441018AEA7A
-:100BB0009AE06AEA0E94410185E595E065E50E94B8
-:100BC00041018AEA9AE060E80E9441018AEA9AE0DB
-:100BD0006AEA0E94410185E595E065E50E944101D0
-:100BE00080E090E060E30E94410100E010E00BC073
-:100BF0002BE0083B120709F42AC280ED97E0019729
-:100C0000F1F70F5F1F4F80E090E80E946A008F3F6E
-:100C100079F780E090E00E945A0080916200816044
-:100C20008093620080916200826080936200C79826
-:100C3000085B1B400CF0DCCB8AE060E070E00E94B7
-:100C4000E608D6CBC79AC69A809162008E7F8093C1
-:100C500062008091620082608093620020E137E24E
-:100C600088EC90E00197F1F721503040C9F780916E
-:100C70006200816080936200C798C69884E160E05A
-:100C800070E00E94E608B4CB0E947901B1CBC79A0C
-:100C9000C49AC39ABC9ABB9A809162008260809386
-:100CA000620080E090E060EF0E9445018AEA9AE0ED
-:100CB0006AEA0E94450185E595E065E50E944501E7
-:100CC0008AEA9AE060E80E9445018AEA9AE06AEAC4
-:100CD0000E94450185E595E065E50E94450180E0BB
-:100CE00090E060E30E94450100E010E00BC09BE053
-:100CF000083B190709F48CCD80ED97E00197F1F7D7
-:100D00000F5F1F4F80E090E80E94AF008F3F79F7A0
-:100D100080E090E00E945A0080916200826080939F
-:100D200062000E94B609C798085B1B400CF060CBBC
-:100D30008AE060E070E00E94E6085ACBE090220171
-:100D4000F090230190912401809125018A831982DA
-:100D5000092F10E089819A81082B192BC69A88E007
-:100D6000B8010E94E60801151105A1F0FC821B8262
-:100D7000FF24EB81FC81EE2AFF2AC7010E946A0052
-:100D80000E94CE08015010400894E11CF11C01158E
-:100D9000110599F780E090E00E945A00809162006E
-:100DA0008160809362008091620082608093620023
-:100DB000C6981ECB81E060E070E00E94E60818CB88
-:100DC00030912201209123019091240180912501ED
-:100DD0008E8F1D8EE92EFF24ED8DFE8DEE2AFF2ACB
-:100DE000C79AE114F104C9F028A31F8E032F10E065
-:100DF0002F8D38A1022B132BAA24BB24F501EE5D05
-:100E0000FE4FC501800F911F64810E941A01089452
-:100E1000A11CB11CEA14FB0489F7C7988EE060E0BE
-:100E200070E00E94E608E4CAE0902201F0902301FD
-:100E300090912401809125018A8F198E092F10E04D
-:100E4000298D3A8D022B132BC69A8CE0B8010E9493
-:100E5000E6080115110509F49DCFFC8E1B8EFF24B9
-:100E60008B8D9C8DE82AF92AC7010E9491000E946F
-:100E7000CE08015010400894E11CF11C0115110529
-:100E800099F788CF0E94AC0980CDE0902201F090C4
-:100E9000230190912401809125018A871986092FC9
-:100EA00010E029853A85022B132BC69AC49AC39A5F
-:100EB000BC9ABB9A88E0B8010E94E60801151105AA
-:100EC000A1F0FC861B86FF248B859C85E82AF92AE5
-:100ED000C7010E94AF000E94CE0801501040089444
-:100EE000E11CF11C0115110599F780E090E00E94CA
-:100EF0005A0080916200826080936200C49AC39A13
-:100F00000E94B609C69874CA30912201209123012B
-:100F100090912401809125018E871D86692E77246A
-:100F2000ED85FE856E2A7F2AC79A6114710409F443
-:100F3000AFCC288B1F86832E99242F853889822A4F
-:100F4000932AAA24BB248501080D191DF501EE5D25
-:100F5000FE4FD48080E090E060EF0E94410185E583
-:100F600095E06AEA0E9441018AEA92E065E50E9402
-:100F7000410185E595E060EA0E944101C8016D2DBF
-:100F80000E944101832D8A95F1F7E12C20E8F22E91
-:100F9000E02AF12A10E0442455240BC0832D8A95C1
-:100FA000F1F70894411C511C88EC4816510451F18A
-:100FB000192FC7010E946A00982F809162008260F9
-:100FC00080936200911751F7D11641F7809162002A
-:100FD00082608093620080E090E00E945A003AE0D4
-:100FE000431651040CF00CCB0894A11CB11CA614A0
-:100FF000B70409F0A8CFC7988AE060E070E00E94CB
-:10100000E608F6C98091620082608093620080E009
-:1010100090E00E945A00C798EBC9809162008260FC
-:1010200080936200C7988AE060E070E00E94E60862
-:10103000DFC9809162008260809362000E94B609DD
-:10104000C7988AE060E070E00E94E608D1C980E0BD
-:1010500090E00E945A00809162008160809362005B
-:1010600080916200826080936200CACA80E090E84A
-:10107000A80EB91E7ECA1F920F920FB60F921124AE
-:101080002F933F934F935F936F937F938F939F9390
-:10109000AF93BF93EF93FF935F9B05C08CB10E940A
-:1010A0000B095F99FBCFFF91EF91BF91AF919F919A
-:1010B0008F917F916F915F914F913F912F910F9001
-:1010C0000FBE0F901F90189581E089B91092900083
-:1010D00088E98AB9E5E9F0E0808186608083089537
-:1010E0005D9BFECF8CB90895982F92959F709A3092
-:1010F00070F4905D8F708A3040F4805D5D9BFECF10
-:101100009CB95D9BFECF8CB90895895CF7CF995C43
-:10111000F1CFFC018081882339F05D9BFECF8CB933
-:10112000319680818823C9F708959C0141155105A6
-:101130006105710599F080E090E0A0E0B0E0F90170
-:10114000E80FF91FE0815D9BFECFECB90196A11D70
-:10115000B11D84179507A607B70788F30895109265
-:1011600006011092050110922001109208010895C5
-:10117000582F90910001382F20E04CE801C036959F
-:10118000892F8327969580FD94272F5F2830B9F704
-:1011900090930001852F0E94700808950E94B8085E
-:1011A0008091030190910401019690930401809332
-:1011B000030120910101309102018217930709F088
-:1011C0000895809100010E9470080895FF920F9386
-:1011D0001F93F82E8B011092000186E40E94B8083C
-:1011E0008F2D0E94B808802F0E94B808812F0E947E
-:1011F000B8081093020100930101109204011092AB
-:101200000301012B21F4809100010E9470081F91BD
-:101210000F91FF900895782F80910801882319F08D
-:10122000763409F00895109208014091050150911B
-:1012300006014115510509F440C030910701272FDF
-:1012400090E06CE801C02695832F8227369580FDBB
-:1012500036279F5F9830B9F7309307014130510529
-:1012600089F1423051050CF44AC04230510509F46D
-:101270003FC04330510579F1FA01349784E0EA31F7
-:10128000F80708F053C080911E0190911F01E817E4
-:10129000F90708F447C080911E0190911F01E817DB
-:1012A000F90791F4332309F04EC081E080932001C7
-:1012B00010920601109205010895109207011092F4
-:1012C0002001BBCF709321014F5F5F4F5093060108
-:1012D00040930501089520911E0130911F01972F21
-:1012E00080E0822B932B90931F0180931E01ECCF03
-:1012F000872F90E090931F0180931E01E5CF411549
-:10130000510509F0B9CF7634F9F281E080930801F4
-:1013100082E060E070E00E94E60840910501509193
-:101320000601D2CFEE5DFE4F7083CECF1092060144
-:101330001092050181E08093080184E060E070E094
-:101340000E94E608089581E08093080183E060E050
-:1013500070E00E94E608ACCF88B3817F88BB87B37A
-:10136000866187BBBB9810920901089588B3817E7E
-:1013700088BB87B3817E87BB08952F923F924F929F
-:101380005F926F927F928F929F92AF92BF92CF9215
-:10139000DF92EF92FF920F931F93DF93CF93CDB71E
-:1013A000DEB72A970FB6F894DEBF0FBECDBF9C8381
-:1013B0008B837E836D83181619060CF079C02090FC
-:1013C0001C0130901D0160901A0170901B0120914A
-:1013D0001801309119013A8329838090140190906B
-:1013E0001501A0901601B090170140911001509185
-:1013F00011016091120170911301E0900C01F090C5
-:101400000D0100910E0110910F0180910A01909140
-:101410000B019A87898750900901CC24DD24ED8146
-:10142000FE81EC0DFD1DE0819DEF591609F443C0CE
-:10143000AEEF5A1609F4C1C0552009F06EC05E2EF9
-:101440001A8619860894C11CD11C2B813C81C216B6
-:10145000D3062CF330921D0120921C0170921B01C7
-:1014600060921A0189819A819093190180931801E1
-:101470008092140190921501A0921601B09217016A
-:101480004093100150931101609312017093130166
-:10149000E0920C01F0920D0100930E0110930F01E8
-:1014A000A985BA85B0930B01A0930A015092090156
-:1014B00021E030E068C029853A85232B09F0BDC0C2
-:1014C0008E2E9924AA24BB2440E050E060E070E016
-:1014D000EE24FF248701D501C40186709070A070AE
-:1014E000B0700097A105B10509F480C08430910562
-:1014F000A105B10509F42DC182309105A105B10501
-:1015000009F427C10697A105B10509F469C0A985A9
-:10151000BA851196BA87A98795CF30921D0120927E
-:101520001C0170921B0160921A01A981BA81B093CB
-:101530001901A09318018092140190921501A092B4
-:101540001601B0921701409310015093110160935E
-:10155000120170931301E0920C01F0920D010093BF
-:101560000E0110930F01E985FA85F0930B01E093CA
-:101570000A015092090188B3817E88BB87B3817EBE
-:1015800087BB20E030E0C9012A960FB6F894DEBF91
-:101590000FBECDBFCF91DF911F910F91FF90EF90C4
-:1015A000DF90CF90BF90AF909F908F907F906F9083
-:1015B0005F904F903F902F90089529853A85232B77
-:1015C00009F05CC08E2F90E09A8389832224332413
-:1015D0006624772489859A8501969A87898732CFF0
-:1015E00029853A852830310509F091CF80FE95C0D4
-:1015F000C29AC49AE114F1040105110571F020E0CA
-:1016000030E088B390E1892788BB88B3892788BBFD
-:101610002F5F3F4F2E153F05A1F74115510561057D
-:10162000710549F080E090E022E02A95F1F70196FB
-:1016300084179507C9F755246ACF89859A85049739
-:1016400008F06DC081FC8BC08E2F90E0A0E0B0E070
-:1016500029853A852150304E220F331F220F331F28
-:10166000220F331F04C0880F991FAA1FBB1F2A9582
-:10167000D2F7482B592B6A2B7B2B2DCFA985BA8506
-:10168000119709F48DC02114310479F4E7FD0AC0E3
-:101690002E2E332429813A816216730608F49ACFDC
-:1016A000552498CFA1E02A2E312C8E2F90E0DC011A
-:1016B000A170B070F2E04F2E4E22E2FD6AC0EFEF53
-:1016C000FFEF2114310409F476C020E030E01EC0A1
-:1016D000C29A442001F1C19AC498C49A8FEFEF3F97
-:1016E000F80759F086B386958695869590E08170C7
-:1016F0009070E817F90709F061C00894611C711C2B
-:101700002F5F3F4F2215330508F055C0109701F7A2
-:10171000C298442001F7C198DFCFC2986ACF8E2FBC
-:1017200090E0A0E0B0E029853A852550304E220FA8
-:10173000331F220F331F220F331F04C0880F991F3E
-:10174000AA1FBB1F2A95D2F7482B592B6A2B7B2B3C
-:10175000C2CEE985FA85349709F0D4CE47CF8E2FD3
-:1017600090E0A0E0B0E029853A852150304E220F6C
-:10177000331F220F331F220F331F04C0880F991FFE
-:10178000AA1FBB1F2A95D2F7E82AF92A0A2B1B2B7E
-:10179000A2CEE695E695E695F0E0E170F07091CF87
-:1017A000E8871F82E981FA812F813885E22BF32BAC
-:1017B000FA83E9830FCF222433246CCF30921D01AA
-:1017C00020921C0170921B0160921A01A981BA81BA
-:1017D000B0931901A0931801809214019092150101
-:1017E000A0921601B092170140931001509311017D
-:1017F0006093120170931301E0920C01F0920D01BD
-:1018000000930E0110930F01E985FA85F0930B0107
-:10181000E0930A018EEF80930901ADCEF894FFCFDB
-:00000001FF
+:100000000C9446000C9458000C9458000C94580022
+:100010000C9458000C9458000C9458000C94580000
+:100020000C9458000C9458000C9458000C945800F0
+:100030000C9458000C9458000C9458000C945800E0
+:100040000C9458000C9458000C947B010C945800AC
+:100050000C9458000C9458000C9458000C945800C0
+:100060000C9458000C9458000C9458000C945800B0
+:100070000C9458000C9458000C9458000C945800A0
+:100080000C9458000C9458000C94580011241FBE76
+:10009000CFEFD0E1DEBFCDBF25E0A0E0B1E001C0F1
+:1000A0001D92AC33B207E1F70E942D050C94600B52
+:1000B0000C9400008BBB95BB95FD06C0809162003F
+:1000C0008061809362000895809162008F7E8093AA
+:1000D00062000895CF93DF932FEF22BB11BAC2E6DF
+:1000E000D0E02881216028832881226028830E9413
+:1000F0005A0088818F7D888382E08A95F1F700C05D
+:1001000080B3988190629883DF91CF910895CF93C7
+:10011000DF932FEF22BB11BAC2E6D0E0288120681E
+:1001200028830E945A0088818160888388818D7F1E
+:100130008883C39AC49882E08A95F1F700C080B39F
+:10014000DF91CF9108951F93CF93DF93C2E6D0E064
+:1001500028812E7F28832881226028831FEF11BBEE
+:1001600062BB0E945A0088818B7F888382E08A95D7
+:10017000F1F700C088818460888312BB11BA80E0E7
+:1001800090E00E945A00888181608883DF91CF913E
+:100190001F910895EF92FF921F93CF93DF931F92C9
+:1001A000CDB7DEB7C49AC39A22E6E22EF12CF7014E
+:1001B00020812260208320812068208369830E941F
+:1001C0005A001FEF11BB698162BBF701808181601A
+:1001D000808380818D7F8083F2E0FA95F1F700C003
+:1001E000C39882E08A95F1F700C0C39A80E090E05E
+:1001F0000E945A00F70180818260808312BB11BA8D
+:100200000F90DF91CF911F91FF90EF900895CF93C2
+:10021000DF93EC018FEF82BB11BA9091620090687E
+:1002200090936200CE010E945A009091620091600A
+:100230009093620080916200D7FD0BC08260809332
+:10024000620082E08A95F1F700C080B3DF91CF9120
+:1002500008958D7F80936200F4CFCF93DF93EC01FC
+:10026000909162009E7F90936200909162009260F4
+:10027000909362008FEF81BB909162009F77909383
+:10028000620062BBCE010E945A00909162009160B0
+:100290009093620080916200D7FD29C082608093B4
+:1002A000620082E08A95F1F700C0809162008E7F43
+:1002B0008093620082E08A95F1F700C0809162002D
+:1002C0008260809362008091620080688093620007
+:1002D0008FEF82BB11BA80E090E00E945A008091BB
+:1002E0006200816080936200DF91CF9108958D7FDD
+:1002F00080936200D6CF1F920F920FB60F921124F7
+:100300002F933F934F935F936F937F938F939F931D
+:10031000AF93BF93EF93FF935F9B05C08CB10E9497
+:1003200077025F99FBCFFF91EF91BF91AF919F91C2
+:100330008F917F916F915F914F913F912F910F908E
+:100340000FBE0F901F90189564E070E082E10E944C
+:100350003802C69A80E090E00E945A0082E08A95B6
+:10036000F1F700C081B182FB882780F90E9460020A
+:1003700080E094E00E945A0082E08A95F1F700C084
+:1003800081B182FB882780F90E94600280E098E0BA
+:100390000E945A0082E08A95F1F700C081B182FB89
+:1003A000882780F90E94600280E09CE00E945A0049
+:1003B00082E08A95F1F700C081B182FB882780F93D
+:1003C0000E94600280E090E00C945A0081E089B9BC
+:1003D0001092900088E98AB9E5E9F0E080818660B2
+:1003E000808308955D9BFECF8CB90895982F9295D8
+:1003F0009F709A3070F4905D8F708A3040F4805D09
+:100400005D9BFECF9CB95D9BFECF8CB90895895C46
+:10041000F7CF995CF1CFFC019081992339F03196A7
+:100420005D9BFECF9CB991919111FACF0895411532
+:1004300051056105710551F0FC01480F591F81916B
+:100440005D9BFECF8CB9E417F507C9F7089590912D
+:100450000801382F28E05CE8432F4927969540FD96
+:10046000952736952150C1F7909308010C94F2011D
+:100470001F93CF93DF93182FEB011092080186E4AE
+:100480000E942702812F0E9427028C2F0E942702A0
+:100490008D2F0E942702D0930701C093060110926E
+:1004A000050110920401CD2B21F0DF91CF911F9116
+:1004B000089580910801DF91CF911F910C94F20172
+:1004C0000E9427028091040190910501019690936A
+:1004D00005018093040120910601309107018217E4
+:1004E000930709F00895809108010C94F20190910E
+:1004F0000001992319F0863409F008951092000143
+:1005000060910201709103016115710559F190919B
+:100510000101382F28E05CE8492F4327969540FDDC
+:10052000952736952150C1F79093010161307105EF
+:1005300009F447C0DCF062307105E9F16330710500
+:1005400039F520911E0130911F01A901582B5093BC
+:100550001F0140931E016F5F7F4F709303016093F3
+:10056000020108951092200190E0D3CF611571052A
+:1005700079F4863481F381E08093000160E070E0DB
+:1005800082E00E9438026091020170910301E3CF82
+:100590009B01245031092A3154E0350738F5409148
+:1005A0001E0150911F012417350770F4F901EE5D0B
+:1005B000FE4F8083D0CF90E090931F0180931E0167
+:1005C000CACF80932101C7CF40911E0150911F01D6
+:1005D0002417350709F0BFCF81E0911113C0809334
+:1005E000200110920301109202010895109203015C
+:1005F0001092020181E08093000160E070E084E0ED
+:100600000C9438028093000160E070E083E00E9467
+:100610003802E7CF109203011092020110922001DC
+:1006200010920001089588B3817F88BB87B38661EB
+:1006300087BBBB9810921D01089588B3817E88BB4B
+:1006400087B3817E87BB08952F923F924F925F922E
+:100650006F927F928F929F92AF92BF92CF92DF92D2
+:10066000FF920F931F93CF93DF9300D000D000D061
+:10067000CDB7DEB7181619060CF082C0FB015B017E
+:10068000A80EB91EBE82AD8240E1F42E222423942E
+:10069000312C419180911D018D3F31F18E3F09F444
+:1006A00079C0882309F46FC088B3817E88BB87B383
+:1006B000817E87BB80E090E026960FB6F894DEBF7F
+:1006C0000FBECDBFDF91CF911F910F91FF90DF90B3
+:1006D000CF90BF90AF909F908F907F906F905F90E2
+:1006E0004F903F902F90089580911B0190911C0195
+:1006F000009709F064C01092130110921401109237
+:1007000015011092160110920F0110921001109213
+:10071000110110921201442E512C612C712C409227
+:100720001701509218016092190170921A01B301D9
+:10073000A2014670552766277727411551056105A7
+:10074000710509F4EAC0443051056105710509F4E9
+:1007500027C1423051056105710509F421C14630B8
+:1007600051056105710509F4D4C0019690931C01EF
+:1007700080931B01AD80BE80EA15FB0509F089CF8F
+:1007800081E090E099CF40931D0110921C011092DE
+:100790001B01F0CF80911B0190911C01009709F083
+:1007A0005CC050E050930E0140930D0110920C017B
+:1007B00010920B0110920A0110920901D6CF8430D9
+:1007C000910508F0F2C04090170150901801609018
+:1007D000190170901A01A42EB12CC12CD12CBC018E
+:1007E0006150704E660F771F660F771F660F771F79
+:1007F00004C0AA0CBB1CCC1CDD1C6A95D2F7B60148
+:10080000A50141FE15C08090130190901401A090A5
+:100810001501B0901601482959296A297B2940936E
+:1008200013015093140160931501709316017FCF4B
+:1008300080900F0190901001A0901101B0901201D2
+:10084000482959296A297B2940930F0150931001A7
+:1008500060931101709312016ACF8130910509F400
+:10086000E8C06091090170910A01672BD1F447FD3E
+:1008700014C050E050930A014093090160910B01AC
+:1008800070910C0140910D0150910E016417750794
+:1008900008F46BCF10921D0168CF30920A012092AC
+:1008A000090142FDB6C00FEF1FEF542F5270952E75
+:1008B00080E090E0417026C0C29A992041F1C19A2F
+:1008C000C498C49A0F3FAFEF1A0749F056B353FBD1
+:1008D000222720F930E02017310709F0E5CE60919A
+:1008E0000B0170910C016F5F7F4F70930C0160934F
+:1008F0000B010196A0900901B0900A018A159B0591
+:1009000008F0A2C04111D8CFC2989110D8CFC19899
+:10091000D7CF8830910509F028CF80900F019090B3
+:100920001001A0901101B09012014091130150915B
+:100930001401609115017091160140FE68C0C29AC1
+:10094000C49A411551056105710571F0BA0140E085
+:1009500050E098B39F2598BB98B39F2598BB4F5FF5
+:100960005F4F46175707A9F781149104A104B104FA
+:1009700081F040E050E0BA01B2E0BA95F1F700C072
+:100980004F5F5F4F6F4F7F4F481559056A057B05D5
+:1009900099F710921D0180911B0190911C01E5CEE9
+:1009A0008430910509F0E1CEB8CF50E060E070E00E
+:1009B0005C01A5E0AA1AA0EEBA0AAA0CBB1CAA0CFC
+:1009C000BB1CAA0CBB1C04C0440F551F661F771F1D
+:1009D000AA94D2F780900F0190901001A09011017D
+:1009E000B0901201482959296A297B2940930F01A7
+:1009F0005093100160931101709312014090170100
+:100A0000509018016090190170901A0190CEC29810
+:100A100097CF43FB002700F910E060910901709126
+:100A20000A01672B09F041CF60910B0170910C0115
+:100A30000FC060910D0170910E015B01B42AB0925C
+:100A40000E01A0920D0191CE80911B0190911C018D
+:100A500010920A011092090115CF78940E94E601C4
+:100A600087B3806C87BB87EB80936100CFEFC09327
+:100A7000620012981A9AC2BB11BA80E090E00E94FC
+:100A80005A00CABBC4BB0E941D03C798C6980E94E7
+:100A90000A0360E070E080E00E9438020EE610E099
+:100AA0008FB589628FBD8EB581608EBD20E030E04C
+:100AB000E0E041E050E060E070E0809120018111D1
+:100AC00036C08FB589628FBD8EB581608EBD4031D5
+:100AD00087E258076105710508F44EC0E11151C065
+:100AE000C90101968E3691050CF453C0E1E09C01DA
+:100AF0002456310939BD28BD9C01C801821B930BC6
+:100B0000853191050CF057C08B3091051CF0C9015F
+:100B10008A559109880F991F9093790080937800E6
+:100B200040E050E0BA0180912001882351F21092F8
+:100B30002001109279001092780019BC18BC1FBCDB
+:100B4000809121018A3109F479C3C8F58D3009F407
+:100B5000DFC408F04BC0873009F47AC408F06AC0DB
+:100B6000853009F465C3863009F09ACF60E070E003
+:100B700081E00E94380294CF4F5F5F4F6F4F7F4FED
+:100B80009CCF2150310989F4E0E040E050E0BA0107
+:100B900094CF8436910524F02356310939BD28BD00
+:100BA0009C0140E050E0BA0188CF243631050CF4B6
+:100BB000A4CFC9019CCF40E050E0BA017ECF833280
+:100BC00009F4CDC208F1863209F4C2C408F476C132
+:100BD000883209F4DAC308F483C38E3F09F060CF8A
+:100BE000F89414BEE0E0F8EF09955ACF833109F488
+:100BF00094C208F08AC08F3009F404C3813109F02F
+:100C00004FCF0E94A4014CCF8D3109F41EC408F0CF
+:100C100045C08B3109F4EFC08C3109F041CF0E94FF
+:100C2000130361E070E08FE10E94380281E00E94CE
+:100C3000600236CF893009F44BC48B3009F030CFD5
+:100C4000E090220180912301F12CF82AC091240127
+:100C500080912501D0E0D82BC69ABE018CE00E947D
+:100C60003802209759F0C7010E946A000E94600272
+:100C700021978FEFE81AF80A2097A9F780E090E013
+:100C80000E945A008091620081608093620080918E
+:100C90006200826080936200C69802CF8E3109F4B0
+:100CA000BFC3823209F0FCCEE09022018091230183
+:100CB000F12CF82AC091240180912501D0E0D82B95
+:100CC000C69AC49AC39ABC9ABB9ABE0188E00E9495
+:100CD0003802209759F0C7010E9487000E946002E5
+:100CE00021972FEFE21AF20A2097A9F780E090E00F
+:100CF0000E945A0080916200826080936200C49AD0
+:100D0000C39A0E941D03C698CBCE883109F4C5C191
+:100D1000893109F0C5CEC090220180912301D12CE8
+:100D2000D82AE090240180912501F12CF82AC79A55
+:100D3000E114F10409F458C0F6E2AF2EF1E0BF2E41
+:100D4000F50161905F0160EF80E090E80E942D0165
+:100D50006AEA85E595E80E942D0165E58AEA92E850
+:100D60000E942D0160EA85E595E80E942D01E601CB
+:100D7000D068662DCE010E942D01F5E8FA95F1F7B5
+:100D80000000812C912C712C0DC025E82A95F1F7DB
+:100D900000009FEF891A990A782EE8EC8E169104CC
+:100DA00009F481C0CE010E94070190916200926017
+:100DB000909362008711E9CF6710E7CF80916200BE
+:100DC00082608093620080E090E00E945A00FAE026
+:100DD0008F1691040CF065C02FEFC21AD20A81E081
+:100DE000E81AF10809F0ACCFC79860E070E08AE03B
+:100DF0000E94380255CEC090220180912301D12C4F
+:100E0000D82AA090240180912501B12CB82AC79A34
+:100E1000D7FC46C4A114B10409F453C386E2882E5A
+:100E200081E0982EF40171904F0160EF80E090E036
+:100E30000E94A3006AEA85E595E00E94A30065E5AB
+:100E40008AEA92E00E94A30060EA85E595E00E94AC
+:100E5000A300672DC6010E94A30076016894F7F8ED
+:100E6000C0E0D0E007C087EC90E00197F1F700C048
+:100E700000002196C7010E946A00781609F408C391
+:100E8000CA30D10581F780E090E00E945A0080913D
+:100E900062008E7F80936200809162008260809306
+:100EA0006200C798FDCD80916200826080936200ED
+:100EB00080E090E00E945A00C798F2CD843209F495
+:100EC00050C0853209F0ECCDC79A60EF80E090E821
+:100ED0000E942D016AEA8AEA9AE80E942D0165E5DE
+:100EE00085E595E80E942D0160E88AEA9AE80E946B
+:100EF0002D016AEA8AEA9AE80E942D0165E585E5F6
+:100F000095E80E942D0160E380E090E80E942D01A9
+:100F1000C0E0D0E00CC0C83B9BE0D90709F4B8C3DF
+:100F20008FEC97E00197F1F700C00000219680E078
+:100F300090E80E9407018F3F71F780E090E00E94E7
+:100F40005A0080916200816080936200809162000B
+:100F5000826080936200C798C83BDB4009F4A0CD53
+:100F600044CFE090220180912301F12CF82A809057
+:100F7000240180912501912C982AC79AC49AC39A7A
+:100F8000BC9ABB9A80916200826080936200811457
+:100F90009104E1F0E6E2AE2EE1E0BE2E9701207E64
+:100FA0006501F501E701712C05C0CE01807E28178F
+:100FB0003907A1F481918F3F09F07394219681E064
+:100FC000881A91085F0189F771100CC08091620046
+:100FD0008260809362000E941D0306CF711002C0E0
+:100FE0007E01DCCF6AEA8AEA9AE00E94CA0065E5DF
+:100FF00085E595E00E94CA0065E280E090E00E94ED
+:10100000CA006FEF670D80E090E00E94CA0001C047
+:101010007C01F60161916F016F3F21F0C7010E94D1
+:10102000CA007A94C70101967110F2CF69E280E09C
+:1010300090E00E94CA00FAE1FA95F1F700C070EA68
+:10104000472E76E8572E66246394712C312C6894D1
+:10105000F7F821E0C21AD1080CC0FAE1FA95F1F7CD
+:1010600000C021E0421A510861087108382E09F4C5
+:1010700006C3C7010E94870090916200926090931E
+:1010800062008311EACFF60190813912E6CF811414
+:10109000910409F49BCF7E0181CFC79A60EF80E075
+:1010A00090E80E942D016AEA8AEA9AE80E942D01DE
+:1010B00065E585E595E80E942D0160E88AEA9AE8F1
+:1010C0000E942D016AEA8AEA9AE80E942D0165E5EC
+:1010D00085E595E80E942D0160E18AEA9AE80E9480
+:1010E0002D0106C08FEC97E00197F1F700C00000DA
+:1010F00080E090E80E9407018F3FA1F780E090E038
+:101100000E945A0080916200816080936200809109
+:10111000620082608093620067CEC79AC69A80910F
+:1011200062008E7F80936200809162008260809373
+:1011300062008FEF90E7E2E081509040E040E1F7FD
+:1011400000C0000080916200816080936200C798B7
+:10115000C69860E070E084E10E943802A1CCC79A92
+:10116000C49AC39ABC9ABB9A8091620082608093B1
+:10117000620060EF80E090E00E94CA006AEA8AEABA
+:101180009AE00E94CA0065E585E595E00E94CA00E4
+:1011900060E88AEA9AE00E94CA006AEA8AEA9AE06B
+:1011A0000E94CA0065E585E595E00E94CA0060E3FB
+:1011B00080E090E00E94CA00C0E0D0E00CC0C83BD4
+:1011C000FBE0DF0709F457C2EFECF7E03197F1F7E6
+:1011D00000C00000219680E090E80E9487008F3FC9
+:1011E00071F780E090E00E945A0080916200826076
+:1011F000809362000E941D03C798C83BDB4009F43E
+:101200004FCCF3CD30916200316030936200209179
+:1012100062002E7F2093620080E890E02BBB3BBBF6
+:101220000197E1F760E070E080E10E94380238CC7D
+:1012300060E070E080E00E94380232CCC79A60EF34
+:1012400080E090E00E94A3006AEA85E595E00E94B4
+:10125000A30065E58AEA92E00E94A30060E885E5C4
+:1012600095E00E94A3006AEA85E595E00E94A3004C
+:1012700065E58AEA92E00E94A30060E185E595E0D9
+:101280000E94A300C0E0D0E00CC0C03197E2D907B3
+:1012900009F4FEC18FEC97E00197F1F700C0000060
+:1012A000219680E090E00E946A008F3F71F780E015
+:1012B00090E00E945A0080916200816080936200F9
+:1012C00080916200826080936200C798C031D742EB
+:1012D00009F4E6CB60E070E08EE00E943802E0CBDB
+:1012E000C091220180912301D0E0D82BE09024010D
+:1012F00080912501F12CF82AC69ACE010E9407019F
+:10130000E114F10409F4D9C120E030E0CBBBD5BB36
+:1013100082E08A95F1F700C080B3282748E050E0CA
+:1013200009C03695279591E0292790EA3927415041
+:10133000510939F020FDF5CF3695279541505109D7
+:10134000C9F7E1E0EE1AF1082196E114F104F1F693
+:10135000D22FC32F80E090E00E945A00909162004B
+:10136000916090936200909162009260909362000D
+:1013700062E070E088E00E9438028D2F0E946002D7
+:101380008C2F0E946002C6988BCBC0902201809166
+:101390002301D12CD82AE090240180912501F12C41
+:1013A000F82AC69AE114F10409F484C1C0E0D0E03F
+:1013B000C6010E946A00C82728E030E09C2FD6951D
+:1013C000C79590FF04C0E1E0CE27E0EADE27215078
+:1013D0003109A1F7F1E0EF1AF1082FEFC21AD20A92
+:1013E000E114F10429F7FC2ECD2F80E090E00E945B
+:1013F0005A00909162009160909362009091620017
+:1014000092609093620062E070E08CE00E9438028B
+:101410008F2D0E9460028C2F0E946002C69840CBE4
+:10142000C091220180912301D0E0D82B61E070E0CF
+:101430008FE10E943802C79A64E271E0CE010E94F7
+:1014400024030E946002C7982BCB0E941D03E9CBA6
+:10145000E090220180912301F12CF82AC09124010F
+:1014600080912501D0E0D82BC69ABE0188E00E9469
+:101470003802209709F402CCC7010E9407010E949C
+:10148000600221979FEFE91AF90A2097A9F7F6CB96
+:1014900080E090E00E945A00809162008E7F8093ED
+:1014A0006200809162008260809362002A9709F452
+:1014B000F8CC9FEFC91AD90AE1E0AE1AB10809F0D9
+:1014C000B1CCC79860E070E08EE00E943802E8CAB4
+:1014D000E090220180912301F12CF82AC09124018F
+:1014E00080912501D0E0D82BC79A209709F47CCCB5
+:1014F000A6E2CA2EA1E0DA2EF60161916F01C701C2
+:101500000E942D01FFEFEF1AFF0A2197A9F76CCC7B
+:10151000E090220180912301F12CF82AC09124014E
+:1015200080912501D0E0D82BC79A209751F296E2FE
+:10153000C92E91E0D92EF60161916F01C7010E9479
+:10154000A300FFEFEF1AFF0A2197A9F7C798BACFB8
+:10155000E090220180912301F12CF82A809024014F
+:1015600080912501912C982AC79A8091620082600F
+:10157000809362008114910409F4C9CD66E2A62E1D
+:1015800061E0B62E9701207E6501F501E701712C1F
+:1015900006C0CE01807E2817390709F068C0819106
+:1015A0008F3F09F07394219681E0881A91085F01BA
+:1015B00081F7772009F4ABCD6AEA8AEA9AE80E94BB
+:1015C0002D0165E585E595E80E942D0165E280E045
+:1015D00090E80E942D016FEF670D80E090E80E9477
+:1015E0002D0101C07C01F60161916F016F3F29F06F
+:1015F000C70190680E942D017A94C701019671106D
+:10160000F1CF69E280E090E80E942D01FAE1FA95BD
+:10161000F1F700C050EA452E56E8552E6624639433
+:10162000712C312C6894F7F821E0C21AD1080BC054
+:10163000FAE1FA95F1F700C021E0421A5108610879
+:101640007108382E81F1C7010E9407019091620054
+:101650009260909362008311EBCFF6019081391272
+:10166000E7CF8114910409F452CD7E018BCF711024
+:10167000A3CF7E0187CF80E090E00E945A00809146
+:1016800062008260809362000E941D03C79808CAAE
+:1016900080E090E00E945A00809162008160FACB65
+:1016A000F0E8DF1AB7CB809162008260809362001D
+:1016B000C798F6C9C0E0F12C98CEC0E0D0E04ACE81
+:0416C000F894FFCFCC
+:00000001FF
diff --git a/jtag.c b/jtag.c
index 701a8a0..64a9ea6 100644
--- a/jtag.c
+++ b/jtag.c
@@ -1,175 +1,175 @@
-#include "defines.h"
-#include <avr/io.h>
-#include <util/delay.h>
-#include <inttypes.h>
-#include "jtag.h"
-#include "jtag_commands.h"
-
-static uint8_t jtag_current_command = 0;
-static uint16_t jtag_pos = 0;
-static uint32_t jtag_tck_delay_value = 0;
-static uint32_t jtag_num_tck = 0;
-static uint32_t jtag_usecs = 0;
-static uint16_t jtag_multi_count = 0;
-static uint16_t jtag_multi_pos = 0;
-static uint16_t jtag_multi_multi = 0;
-
-static void tck_delay(uint8_t tms, uint32_t num_tck, uint32_t usecs)
-{
- if (tms)
- PORT |= (1<<TMS_PIN);
- else
- PORT &= ~(1<<TMS_PIN);
- PORT |= 1<<TCK_PIN;
- int i;
- for (i = 0; i < num_tck; i++)
- {
- PORT ^= 1<<TCK_PIN;
- //_delay_us(1);
- PORT ^= 1<<TCK_PIN;
- //_delay_us(1);
- }
- for (i = 0; i < usecs; i++)
- _delay_us(1);
-}
-
-static uint8_t pulse_tck(int tms, int tdi, int tdo)
-{
- if (tms)
- PORT |= (1<<TMS_PIN);
- else
- PORT &= ~(1<<TMS_PIN);
- if (tdi >= 0)
- {
- if (tdi)
- PORT |= (1<<TDI_PIN);
- else
- PORT &= ~(1<<TDI_PIN);
- }
- PORT &= ~(1<<TCK_PIN);
- //_delay_us(1);
- PORT |= 1<<TCK_PIN;
- //_delay_us(1);
- if (tdo < 0) return 1;
- return ((PORT_PIN >> TDO_PIN) & 1) == tdo;
-}
-
-static int jtag_parse_byte(uint8_t data)
-{
- int i, tms, tdi, tdo;
- switch (jtag_current_command)
- {
- case 0:
- jtag_current_command = data;
- jtag_pos = 0;
- break;
-
- case JTAG_PULSE_TCK_DELAY:
- if (jtag_pos == 0)
- {
- jtag_num_tck = 0;
- jtag_usecs = 0;
- jtag_tck_delay_value = data;
- } else {
- if ((jtag_pos < 4) && (jtag_tck_delay_value & 0b10)) // num_tck
- {
- jtag_num_tck |= (uint32_t)data << (8*(jtag_pos-1));
- } else if ((jtag_pos < 4) && !(jtag_tck_delay_value & 0b10)) // usecs
- {
- jtag_usecs |= (uint32_t)data << (8*(jtag_pos-1));
- } else {
- jtag_usecs |= (uint32_t)data << (8*(jtag_pos-5));
- }
- }
- if ( ((jtag_tck_delay_value & 0b110) == 0)
- || (((((jtag_tck_delay_value & 0b110) == 0b100) || (jtag_tck_delay_value & 0b110) == 0b010)) && jtag_pos == 4)
- || (((jtag_tck_delay_value & 0b110) == 0b110) && jtag_pos == 8)
- )
- {
- tck_delay(jtag_tck_delay_value&1, jtag_num_tck, jtag_usecs);
- jtag_current_command = 0;
- }
- jtag_pos++;
- break;
-
- case JTAG_PULSE_TCK_MULTI:
- if (jtag_pos == 0)
- {
- jtag_multi_count = data;
- jtag_multi_pos = 0;
- jtag_multi_multi = 0;
- } else if (jtag_pos == 1)
- {
- jtag_multi_count |= (uint16_t)data << 8;
- } else {
- if (!jtag_multi_multi && !(data & 0x80))
- {
- jtag_multi_multi = data;
- } else {
- if (!jtag_multi_multi) jtag_multi_multi = 1;
- tms = data&1;
- tdi = (data>>1)&1;
- tdo = -1;
- if (data & (1<<2))
- {
- tdo = (data>>3)&1;
- }
- for (i = 0; i < jtag_multi_multi; i++)
- {
- if (!pulse_tck(tms, tdi, tdo)) return 0;
- jtag_multi_pos++;
- }
- jtag_multi_multi = 0;
- }
- if (jtag_multi_pos >= jtag_multi_count)
- jtag_current_command = 0;
- }
- jtag_pos++;
- break;
-
- /*
- case JTAG_PULSE_TCK:
- tms = data&1;
- tdi = (data>>1)&1;
- tdo = -1;
- if (data & (1<<2))
- {
- tdo = (data>>3)&1;
- }
- if (!pulse_tck(tms, tdi, tdo)) return 0;
- jtag_current_command = 0;
- break;
- */
- default:
- return 0;
- }
- return 1;
-}
-
-void jtag_setup()
-{
- PORT &= ~((1<<TMS_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN)) | (1<<TCK_PIN);
- PORT_DDR |= (1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDI_PIN);
- PORT_DDR &= ~(1<<TDO_PIN);
- jtag_current_command = 0;
-}
-
-void jtag_shutdown()
-{
- PORT &= ~((1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN));
- PORT_DDR &= ~((1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN));
-}
-
-int jtag_execute(int count, uint8_t* data)
-{
- int i;
- for (i = 0; i < count; i++)
- {
- if (!jtag_parse_byte(data[i]))
- {
- jtag_shutdown();
- return 0;
- }
- }
- return 1;
-}
+#include "defines.h"
+#include <avr/io.h>
+#include <util/delay.h>
+#include <inttypes.h>
+#include "jtag.h"
+#include "jtag_commands.h"
+
+static uint8_t jtag_current_command = 0;
+static uint16_t jtag_pos = 0;
+static uint32_t jtag_tck_delay_value = 0;
+static uint32_t jtag_num_tck = 0;
+static uint32_t jtag_usecs = 0;
+static uint16_t jtag_multi_count = 0;
+static uint16_t jtag_multi_pos = 0;
+static uint16_t jtag_multi_multi = 0;
+
+static void tck_delay(uint8_t tms, uint32_t num_tck, uint32_t usecs)
+{
+ if (tms)
+ PORT |= (1<<TMS_PIN);
+ else
+ PORT &= ~(1<<TMS_PIN);
+ PORT |= 1<<TCK_PIN;
+ int i;
+ for (i = 0; i < num_tck; i++)
+ {
+ PORT ^= 1<<TCK_PIN;
+ //_delay_us(1);
+ PORT ^= 1<<TCK_PIN;
+ //_delay_us(1);
+ }
+ for (i = 0; i < usecs; i++)
+ _delay_us(1);
+}
+
+static uint8_t pulse_tck(int tms, int tdi, int tdo)
+{
+ if (tms)
+ PORT |= (1<<TMS_PIN);
+ else
+ PORT &= ~(1<<TMS_PIN);
+ if (tdi >= 0)
+ {
+ if (tdi)
+ PORT |= (1<<TDI_PIN);
+ else
+ PORT &= ~(1<<TDI_PIN);
+ }
+ PORT &= ~(1<<TCK_PIN);
+ //_delay_us(1);
+ PORT |= 1<<TCK_PIN;
+ //_delay_us(1);
+ if (tdo < 0) return 1;
+ return ((PORT_PIN >> TDO_PIN) & 1) == tdo;
+}
+
+static int jtag_parse_byte(uint8_t data)
+{
+ int i, tms, tdi, tdo;
+ switch (jtag_current_command)
+ {
+ case 0:
+ jtag_current_command = data;
+ jtag_pos = 0;
+ break;
+
+ case JTAG_PULSE_TCK_DELAY:
+ if (jtag_pos == 0)
+ {
+ jtag_num_tck = 0;
+ jtag_usecs = 0;
+ jtag_tck_delay_value = data;
+ } else {
+ if ((jtag_pos < 4) && (jtag_tck_delay_value & 0b10)) // num_tck
+ {
+ jtag_num_tck |= (uint32_t)data << (8*(jtag_pos-1));
+ } else if ((jtag_pos < 4) && !(jtag_tck_delay_value & 0b10)) // usecs
+ {
+ jtag_usecs |= (uint32_t)data << (8*(jtag_pos-1));
+ } else {
+ jtag_usecs |= (uint32_t)data << (8*(jtag_pos-5));
+ }
+ }
+ if ( ((jtag_tck_delay_value & 0b110) == 0)
+ || (((((jtag_tck_delay_value & 0b110) == 0b100) || (jtag_tck_delay_value & 0b110) == 0b010)) && jtag_pos == 4)
+ || (((jtag_tck_delay_value & 0b110) == 0b110) && jtag_pos == 8)
+ )
+ {
+ tck_delay(jtag_tck_delay_value&1, jtag_num_tck, jtag_usecs);
+ jtag_current_command = 0;
+ }
+ jtag_pos++;
+ break;
+
+ case JTAG_PULSE_TCK_MULTI:
+ if (jtag_pos == 0)
+ {
+ jtag_multi_count = data;
+ jtag_multi_pos = 0;
+ jtag_multi_multi = 0;
+ } else if (jtag_pos == 1)
+ {
+ jtag_multi_count |= (uint16_t)data << 8;
+ } else {
+ if (!jtag_multi_multi && !(data & 0x80))
+ {
+ jtag_multi_multi = data;
+ } else {
+ if (!jtag_multi_multi) jtag_multi_multi = 1;
+ tms = data&1;
+ tdi = (data>>1)&1;
+ tdo = -1;
+ if (data & (1<<2))
+ {
+ tdo = (data>>3)&1;
+ }
+ for (i = 0; i < jtag_multi_multi; i++)
+ {
+ if (!pulse_tck(tms, tdi, tdo)) return 0;
+ jtag_multi_pos++;
+ }
+ jtag_multi_multi = 0;
+ }
+ if (jtag_multi_pos >= jtag_multi_count)
+ jtag_current_command = 0;
+ }
+ jtag_pos++;
+ break;
+
+ /*
+ case JTAG_PULSE_TCK:
+ tms = data&1;
+ tdi = (data>>1)&1;
+ tdo = -1;
+ if (data & (1<<2))
+ {
+ tdo = (data>>3)&1;
+ }
+ if (!pulse_tck(tms, tdi, tdo)) return 0;
+ jtag_current_command = 0;
+ break;
+ */
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+void jtag_setup()
+{
+ PORT &= ~((1<<TMS_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN)) | (1<<TCK_PIN);
+ PORT_DDR |= (1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDI_PIN);
+ PORT_DDR &= ~(1<<TDO_PIN);
+ jtag_current_command = 0;
+}
+
+void jtag_shutdown()
+{
+ PORT &= ~((1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN));
+ PORT_DDR &= ~((1<<TMS_PIN) | (1<<TCK_PIN) | (1<<TDO_PIN) | (1<<TDI_PIN));
+}
+
+int jtag_execute(int count, uint8_t* data)
+{
+ int i;
+ for (i = 0; i < count; i++)
+ {
+ if (!jtag_parse_byte(data[i]))
+ {
+ jtag_shutdown();
+ return 0;
+ }
+ }
+ return 1;
+}
diff --git a/jtag.h b/jtag.h
index dac6ead..17d67fb 100644
--- a/jtag.h
+++ b/jtag.h
@@ -1,16 +1,16 @@
-#include "defines.h"
-
-#define CLUJTAG_CONCAT(a, b) a ## b
-#define CLUJTAG_OUTPORT(name) CLUJTAG_CONCAT(PORT, name)
-#define CLUJTAG_INPORT(name) CLUJTAG_CONCAT(PIN, name)
-#define CLUJTAG_DDRPORT(name) CLUJTAG_CONCAT(DDR, name)
-
-#define PORT CLUJTAG_OUTPORT(JTAG_PORT)
-#define PORT_DDR CLUJTAG_DDRPORT(JTAG_PORT)
-#define PORT_PIN CLUJTAG_INPORT(JTAG_PORT)
-#define PORT_LED CLUJTAG_OUTPORT(LED_PORT)
-#define PORT_LED_DDR CLUJTAG_DDRPORT(LED_PORT)
-
-void jtag_setup();
-void jtag_shutdown();
-int jtag_execute(int count, uint8_t* data);
+#include "defines.h"
+
+#define CLUJTAG_CONCAT(a, b) a ## b
+#define CLUJTAG_OUTPORT(name) CLUJTAG_CONCAT(PORT, name)
+#define CLUJTAG_INPORT(name) CLUJTAG_CONCAT(PIN, name)
+#define CLUJTAG_DDRPORT(name) CLUJTAG_CONCAT(DDR, name)
+
+#define PORT CLUJTAG_OUTPORT(JTAG_PORT)
+#define PORT_DDR CLUJTAG_DDRPORT(JTAG_PORT)
+#define PORT_PIN CLUJTAG_INPORT(JTAG_PORT)
+#define PORT_LED CLUJTAG_OUTPORT(LED_PORT)
+#define PORT_LED_DDR CLUJTAG_DDRPORT(LED_PORT)
+
+void jtag_setup();
+void jtag_shutdown();
+int jtag_execute(int count, uint8_t* data);
diff --git a/jtag_commands.h b/jtag_commands.h
index 82c1884..3bcbd20 100644
--- a/jtag_commands.h
+++ b/jtag_commands.h
@@ -1,7 +1,7 @@
-#define JTAG_PULSE_TCK_DELAY 0xFD
-// Дальше 1 байт: 0бит - TMS, 1бит - нужно ли дёргать TCK, 2бит - жужна ли задержка. Если нужно дёргать TCK, потом 4 байта - сколько раз. Если нужна задержка - ещё 4 байта usec
-
-#define JTAG_PULSE_TCK_MULTI 0xFE
-// Дальше 1 байт: кол-во элементов. Каждый элемент это либо:
- // число 1-127 означающее кол-во повторений и байт: 0бит - TMS, 1бит изменять ли TDI, 2бит значение TDI, 3бит - проверять ли TDO, 4бит значение TDO
- // Либо 7бит равный единице и 1бит изменять ли TDI, 2бит значение TDI, 3бит - проверять ли TDI, 4бит значение TDO
+#define JTAG_PULSE_TCK_DELAY 0xFD
+// Дальше 1 байт: 0бит - TMS, 1бит - нужно ли дёргать TCK, 2бит - жужна ли задержка. Если нужно дёргать TCK, потом 4 байта - сколько раз. Если нужна задержка - ещё 4 байта usec
+
+#define JTAG_PULSE_TCK_MULTI 0xFE
+// Дальше 1 байт: кол-во элементов. Каждый элемент это либо:
+ // число 1-127 означающее кол-во повторений и байт: 0бит - TMS, 1бит изменять ли TDI, 2бит значение TDI, 3бит - проверять ли TDO, 4бит значение TDO
+ // Либо 7бит равный единице и 1бит изменять ли TDI, 2бит значение TDI, 3бит - проверять ли TDI, 4бит значение TDO
diff --git a/usart.c b/usart.c
index 763c8a7..c5a337e 100644
--- a/usart.c
+++ b/usart.c
@@ -1,54 +1,54 @@
-#include "defines.h"
-#include <avr/io.h>
+#include "defines.h"
+#include <avr/io.h>
#include <util/delay.h>
-
-void USART_init(void)
-{
- unsigned int bd = (F_CPU / (16UL * UART_BAUD)) - 1;
- UBRR0L = bd & 0xFF;
- UBRR0H = bd >> 8;
-
- UCSR0B = _BV(TXEN0) | _BV(RXEN0) | _BV(RXCIE0); /* tx/rx enable */
-// UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
- UCSR0C |= /*_BV(UMSEL0) |*/ _BV(UCSZ01) | _BV(UCSZ00);
- //UCSRA = _BV(U2X);
-}
-
-void USART_TransmitByte( unsigned char data )
-{
- /* Wait for empty transmit buffer */
- while ( !( UCSR0A & (1<<UDRE0)) );
- /* Put data into buffer, sends the data */
- UDR0 = data;
-}
-
-void USART_TransmitHex( unsigned char data )
-{
- unsigned char h = data>>4;
- char ho = (h < 10) ? (h+'0') : (h+'A'-10);
- unsigned char l = data & 0xF;
- char lo = (l < 10) ? (l+'0') : (l+'A'-10);
- while ( !( UCSR0A & (1<<UDRE0)) );
- UDR0 = ho;
- while ( !( UCSR0A & (1<<UDRE0)) );
- UDR0 = lo;
-}
-
-void USART_TransmitText(char* data)
-{
- while (*data != 0)
- {
- /* Wait for empty transmit buffer */
- while ( !( UCSR0A & (1<<UDRE0)) );
- /* Put data into buffer, sends the data */
- UDR0 = *data;
- data++;
- }
-}
-
-void USART_Transmit(void* p, unsigned long int len)
-{
- unsigned char* buff = (unsigned char*)p;
- unsigned long int b;
- for (b = 0; b < len; b++) USART_TransmitByte(buff[b]);
-}
+
+void USART_init(void)
+{
+ unsigned int bd = (F_CPU / (16UL * UART_BAUD)) - 1;
+ UBRR0L = bd & 0xFF;
+ UBRR0H = bd >> 8;
+
+ UCSR0B = _BV(TXEN0) | _BV(RXEN0) | _BV(RXCIE0); /* tx/rx enable */
+// UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
+ UCSR0C |= /*_BV(UMSEL0) |*/ _BV(UCSZ01) | _BV(UCSZ00);
+ //UCSRA = _BV(U2X);
+}
+
+void USART_TransmitByte( unsigned char data )
+{
+ /* Wait for empty transmit buffer */
+ while ( !( UCSR0A & (1<<UDRE0)) );
+ /* Put data into buffer, sends the data */
+ UDR0 = data;
+}
+
+void USART_TransmitHex( unsigned char data )
+{
+ unsigned char h = data>>4;
+ char ho = (h < 10) ? (h+'0') : (h+'A'-10);
+ unsigned char l = data & 0xF;
+ char lo = (l < 10) ? (l+'0') : (l+'A'-10);
+ while ( !( UCSR0A & (1<<UDRE0)) );
+ UDR0 = ho;
+ while ( !( UCSR0A & (1<<UDRE0)) );
+ UDR0 = lo;
+}
+
+void USART_TransmitText(char* data)
+{
+ while (*data != 0)
+ {
+ /* Wait for empty transmit buffer */
+ while ( !( UCSR0A & (1<<UDRE0)) );
+ /* Put data into buffer, sends the data */
+ UDR0 = *data;
+ data++;
+ }
+}
+
+void USART_Transmit(void* p, unsigned long int len)
+{
+ unsigned char* buff = (unsigned char*)p;
+ unsigned long int b;
+ for (b = 0; b < len; b++) USART_TransmitByte(buff[b]);
+}
diff --git a/usart.h b/usart.h
index 207e60f..5ed93cc 100644
--- a/usart.h
+++ b/usart.h
@@ -1,10 +1,10 @@
-#ifndef _USART_H
-#define _USART_H
-
-void USART_init(void);
-void USART_TransmitByte( unsigned char data );
-void USART_TransmitText(char* data);
-void USART_Transmit(void* p, unsigned long int len);
-void USART_TransmitHex(unsigned char data);
-
-#endif
+#ifndef _USART_H
+#define _USART_H
+
+void USART_init(void);
+void USART_TransmitByte( unsigned char data );
+void USART_TransmitText(char* data);
+void USART_Transmit(void* p, unsigned long int len);
+void USART_TransmitHex(unsigned char data);
+
+#endif