From aa4f6e4b5666583e49ac0bf421f2ba35f78358d1 Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Sat, 23 Apr 2016 21:35:45 +0300 Subject: First commit --- Config/LUFAConfig.h | 126 +++ Descriptors.c | 224 +++++ Descriptors.h | 124 +++ bits.h | 13 + board/BoardOutline.gbr | 19 + board/Bottom.gbr | 1990 ++++++++++++++++++++++++++++++++++++++++ board/BottomMask.gbr | 94 ++ board/BottomSilk.gbr | 12 + board/Top.gbr | 2322 +++++++++++++++++++++++++++++++++++++++++++++++ board/TopMask.gbr | 177 ++++ board/TopSilk.gbr | 1078 ++++++++++++++++++++++ board/nessmd2usb.dip | Bin 0 -> 209041 bytes board/~nessmd2usb.dip~ | 3 + defines.h | 30 + doxyfile | 2364 ++++++++++++++++++++++++++++++++++++++++++++++++ gamepad.c | 347 +++++++ gamepad.h | 59 ++ images/board_3d.png | Bin 0 -> 37098 bytes images/photo.jpg | Bin 0 -> 92218 bytes makefile | 30 + nessmd2usb.c | 212 +++++ nessmd2usb.h | 113 +++ nessmd2usb.hex | 418 +++++++++ 23 files changed, 9755 insertions(+) create mode 100644 Config/LUFAConfig.h create mode 100644 Descriptors.c create mode 100644 Descriptors.h create mode 100644 bits.h create mode 100644 board/BoardOutline.gbr create mode 100644 board/Bottom.gbr create mode 100644 board/BottomMask.gbr create mode 100644 board/BottomSilk.gbr create mode 100644 board/Top.gbr create mode 100644 board/TopMask.gbr create mode 100644 board/TopSilk.gbr create mode 100644 board/nessmd2usb.dip create mode 100644 board/~nessmd2usb.dip~ create mode 100644 defines.h create mode 100644 doxyfile create mode 100644 gamepad.c create mode 100644 gamepad.h create mode 100644 images/board_3d.png create mode 100644 images/photo.jpg create mode 100644 makefile create mode 100644 nessmd2usb.c create mode 100644 nessmd2usb.h create mode 100644 nessmd2usb.hex diff --git a/Config/LUFAConfig.h b/Config/LUFAConfig.h new file mode 100644 index 0000000..c654244 --- /dev/null +++ b/Config/LUFAConfig.h @@ -0,0 +1,126 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2014. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Library Configuration Header File + * + * This header file is used to configure LUFA's compile time options, + * as an alternative to the compile time constants supplied through + * a makefile. + * + * For information on what each token does, refer to the LUFA + * manual section "Summary of Compile Tokens". + */ + +#ifndef _LUFA_CONFIG_H_ +#define _LUFA_CONFIG_H_ + + #if (ARCH == ARCH_AVR8) + + /* Non-USB Related Configuration Tokens: */ +// #define DISABLE_TERMINAL_CODES + + /* USB Class Driver Related Tokens: */ +// #define HID_HOST_BOOT_PROTOCOL_ONLY +// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} +// #define HID_USAGE_STACK_DEPTH {Insert Value Here} +// #define HID_MAX_COLLECTIONS {Insert Value Here} +// #define HID_MAX_REPORTITEMS {Insert Value Here} +// #define HID_MAX_REPORT_IDS {Insert Value Here} +// #define NO_CLASS_DRIVER_AUTOFLUSH + + /* General USB Driver Related Tokens: */ +// #define ORDERED_EP_CONFIG + #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) + #define USB_DEVICE_ONLY +// #define USB_HOST_ONLY +// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} +// #define NO_LIMITED_CONTROLLER_CONNECT +// #define NO_SOF_EVENTS + + /* USB Device Mode Driver Related Tokens: */ +// #define USE_RAM_DESCRIPTORS + #define USE_FLASH_DESCRIPTORS +// #define USE_EEPROM_DESCRIPTORS +// #define NO_INTERNAL_SERIAL + #define FIXED_CONTROL_ENDPOINT_SIZE 8 +// #define DEVICE_STATE_AS_GPIOR {Insert Value Here} + #define FIXED_NUM_CONFIGURATIONS 1 +// #define CONTROL_ONLY_DEVICE +// #define INTERRUPT_CONTROL_ENDPOINT +// #define NO_DEVICE_REMOTE_WAKEUP +// #define NO_DEVICE_SELF_POWER + + /* USB Host Mode Driver Related Tokens: */ +// #define HOST_STATE_AS_GPIOR {Insert Value Here} +// #define USB_HOST_TIMEOUT_MS {Insert Value Here} +// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} +// #define NO_AUTO_VBUS_MANAGEMENT +// #define INVERTED_VBUS_ENABLE_LINE + + #elif (ARCH == ARCH_XMEGA) + + /* Non-USB Related Configuration Tokens: */ +// #define DISABLE_TERMINAL_CODES + + /* USB Class Driver Related Tokens: */ +// #define HID_HOST_BOOT_PROTOCOL_ONLY +// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} +// #define HID_USAGE_STACK_DEPTH {Insert Value Here} +// #define HID_MAX_COLLECTIONS {Insert Value Here} +// #define HID_MAX_REPORTITEMS {Insert Value Here} +// #define HID_MAX_REPORT_IDS {Insert Value Here} +// #define NO_CLASS_DRIVER_AUTOFLUSH + + /* General USB Driver Related Tokens: */ + #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_RC32MCLKSRC | USB_OPT_BUSEVENT_PRIHIGH) +// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} +// #define NO_LIMITED_CONTROLLER_CONNECT +// #define NO_SOF_EVENTS + + /* USB Device Mode Driver Related Tokens: */ +// #define USE_RAM_DESCRIPTORS + #define USE_FLASH_DESCRIPTORS +// #define USE_EEPROM_DESCRIPTORS +// #define NO_INTERNAL_SERIAL + #define FIXED_CONTROL_ENDPOINT_SIZE 8 +// #define DEVICE_STATE_AS_GPIOR {Insert Value Here} + #define FIXED_NUM_CONFIGURATIONS 1 +// #define CONTROL_ONLY_DEVICE + #define MAX_ENDPOINT_INDEX 1 +// #define NO_DEVICE_REMOTE_WAKEUP +// #define NO_DEVICE_SELF_POWER + + #else + + #error Unsupported architecture for this LUFA configuration file. + + #endif +#endif diff --git a/Descriptors.c b/Descriptors.c new file mode 100644 index 0000000..09583ae --- /dev/null +++ b/Descriptors.c @@ -0,0 +1,224 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2014. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * USB Device Descriptors, for library use when in USB device mode. Descriptors are special + * computer-readable structures which the host requests upon device enumeration, to determine + * the device's capabilities and functions. + */ + +#include "Descriptors.h" + +/** HID class report descriptor. This is a special descriptor constructed with values from the + * USBIF HID class specification to describe the reports and capabilities of the HID device. This + * descriptor is parsed by the host and its contents used to determine what data (and in what encoding) + * the device will send, and what it may be sent back from the host. Refer to the HID specification for + * more details on HID report descriptors. + */ + +const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = +{ + /* Use the HID class driver's standard Joystick report. + * Min X/Y/Z Axis values: -100 + * Max X/Y/Z Axis values: 100 + * Min physical X/Y/Z Axis values (used to determine resolution): -1 + * Max physical X/Y/Z Axis values (used to determine resolution): 1 + * Buttons: 2 + */ + HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 8, 1), + HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 8, 2), + HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 4, 3), + HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 4, 4) +}; + +/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall + * device characteristics, including the supported USB version, control endpoint size and the + * number of device configurations. The descriptor is read out by the USB host when the enumeration + * process begins. + */ +const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = +{ + .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, + + .USBSpecification = VERSION_BCD(1,1,0), + .Class = USB_CSCP_NoDeviceClass, + .SubClass = USB_CSCP_NoDeviceSubclass, + .Protocol = USB_CSCP_NoDeviceProtocol, + + .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, + + .VendorID = 0x03EB, + .ProductID = 0x2044, + .ReleaseNumber = VERSION_BCD(0,0,1), + + .ManufacturerStrIndex = STRING_ID_Manufacturer, + .ProductStrIndex = STRING_ID_Product, + .SerialNumStrIndex = NO_DESCRIPTOR, + + .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS +}; + +/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage + * of the device in one of its supported configurations, including information about any device interfaces + * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting + * a configuration so that the host may correctly communicate with the USB device. + */ +const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = +{ + .Config = + { + .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, + + .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), + .TotalInterfaces = 1, + + .ConfigurationNumber = 1, + .ConfigurationStrIndex = NO_DESCRIPTOR, + + .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED), + + .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) + }, + + .HID_Interface = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + + .InterfaceNumber = INTERFACE_ID_Joystick, + .AlternateSetting = 0x00, + + .TotalEndpoints = 1, + + .Class = HID_CSCP_HIDClass, + .SubClass = HID_CSCP_NonBootSubclass, + .Protocol = HID_CSCP_NonBootProtocol, + + .InterfaceStrIndex = NO_DESCRIPTOR + }, + + .HID_JoystickHID = + { + .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, + + .HIDSpec = VERSION_BCD(1,1,1), + .CountryCode = 0x00, + .TotalReportDescriptors = 1, + .HIDReportType = HID_DTYPE_Report, + .HIDReportLength = sizeof(JoystickReport) + }, + + .HID_ReportINEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = JOYSTICK_EPADDR, + .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = JOYSTICK_EPSIZE, + .PollingIntervalMS = 0x05 + } +}; + +/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests + * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate + * via the language ID table available at USB.org what languages the device supports for its string descriptors. + */ +const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); + +/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable + * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device + * Descriptor. + */ +const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"Cluster"); + +/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, + * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device + * Descriptor. + */ +const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"Sega/Dendy controllers"); + +/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" + * documentation) by the application code so that the address and size of a requested descriptor can be given + * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function + * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the + * USB host. + */ +uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, + const uint8_t wIndex, + const void** const DescriptorAddress) +{ + const uint8_t DescriptorType = (wValue >> 8); + const uint8_t DescriptorNumber = (wValue & 0xFF); + + const void* Address = NULL; + uint16_t Size = NO_DESCRIPTOR; + + switch (DescriptorType) + { + case DTYPE_Device: + Address = &DeviceDescriptor; + Size = sizeof(USB_Descriptor_Device_t); + break; + case DTYPE_Configuration: + Address = &ConfigurationDescriptor; + Size = sizeof(USB_Descriptor_Configuration_t); + break; + case DTYPE_String: + switch (DescriptorNumber) + { + case STRING_ID_Language: + Address = &LanguageString; + Size = pgm_read_byte(&LanguageString.Header.Size); + break; + case STRING_ID_Manufacturer: + Address = &ManufacturerString; + Size = pgm_read_byte(&ManufacturerString.Header.Size); + break; + case STRING_ID_Product: + Address = &ProductString; + Size = pgm_read_byte(&ProductString.Header.Size); + break; + } + + break; + case HID_DTYPE_HID: + Address = &ConfigurationDescriptor.HID_JoystickHID; + Size = sizeof(USB_HID_Descriptor_HID_t); + break; + case HID_DTYPE_Report: + Address = &JoystickReport; + Size = sizeof(JoystickReport); + break; + } + + *DescriptorAddress = Address; + return Size; +} + diff --git a/Descriptors.h b/Descriptors.h new file mode 100644 index 0000000..6355eeb --- /dev/null +++ b/Descriptors.h @@ -0,0 +1,124 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2014. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Header file for Descriptors.c. + */ + +#ifndef _DESCRIPTORS_H_ +#define _DESCRIPTORS_H_ + + /* Includes: */ + #include + + #include + + /* Type Defines: */ + /** Type define for the device configuration descriptor structure. This must be defined in the + * application code, as the configuration descriptor contains several sub-descriptors which + * vary between devices, and which describe the device's usage to the host. + */ + typedef struct + { + USB_Descriptor_Configuration_Header_t Config; + + // Joystick HID Interface + USB_Descriptor_Interface_t HID_Interface; + USB_HID_Descriptor_HID_t HID_JoystickHID; + USB_Descriptor_Endpoint_t HID_ReportINEndpoint; + } USB_Descriptor_Configuration_t; + + /** Enum for the device interface descriptor IDs within the device. Each interface descriptor + * should have a unique ID index associated with it, which can be used to refer to the + * interface from other descriptors. + */ + enum InterfaceDescriptors_t + { + INTERFACE_ID_Joystick = 0, /**< Joystick interface desciptor ID */ + }; + + /** Enum for the device string descriptor IDs within the device. Each string descriptor should + * have a unique ID index associated with it, which can be used to refer to the string from + * other descriptors. + */ + enum StringDescriptors_t + { + STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */ + STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */ + STRING_ID_Product = 2, /**< Product string ID */ + }; + + /* Macros: */ + /** Endpoint address of the Joystick HID reporting IN endpoint. */ + #define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1) + + /** Size in bytes of the Joystick HID reporting IN endpoint. */ + #define JOYSTICK_EPSIZE 8 + + /* Function Prototypes: */ + uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, + const uint8_t wIndex, + const void** const DescriptorAddress) + ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); + + +#define HID_DESCRIPTOR_JOYSTICK_MY(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, Buttons, ReportId) \ + HID_RI_USAGE_PAGE(8, 0x01), \ + HID_RI_USAGE(8, 0x04), \ + HID_RI_COLLECTION(8, 0x01), \ + HID_RI_USAGE(8, 0x01), \ + HID_RI_COLLECTION(8, 0x00), \ + HID_RI_REPORT_ID(8, ReportId), \ + HID_RI_USAGE(8, 0x30), \ + HID_RI_USAGE(8, 0x31), \ + HID_RI_LOGICAL_MINIMUM(16, MinAxisVal), \ + HID_RI_LOGICAL_MAXIMUM(16, MaxAxisVal), \ + HID_RI_PHYSICAL_MINIMUM(16, MinPhysicalVal), \ + HID_RI_PHYSICAL_MAXIMUM(16, MaxPhysicalVal), \ + HID_RI_REPORT_COUNT(8, 2), \ + HID_RI_REPORT_SIZE(8, (((MinAxisVal >= -128) && (MaxAxisVal <= 127)) ? 8 : 16)), \ + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \ + HID_RI_END_COLLECTION(0), \ + HID_RI_USAGE_PAGE(8, 0x09), \ + HID_RI_USAGE_MINIMUM(8, 0x01), \ + HID_RI_USAGE_MAXIMUM(8, Buttons), \ + HID_RI_LOGICAL_MINIMUM(8, 0x00), \ + HID_RI_LOGICAL_MAXIMUM(8, 0x01), \ + HID_RI_REPORT_SIZE(8, 0x01), \ + HID_RI_REPORT_COUNT(8, Buttons), \ + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \ + HID_RI_REPORT_SIZE(8, (Buttons % 8) ? (8 - (Buttons % 8)) : 0), \ + HID_RI_REPORT_COUNT(8, 0x01), \ + HID_RI_INPUT(8, HID_IOF_CONSTANT), \ + HID_RI_END_COLLECTION(0) + +#endif + diff --git a/bits.h b/bits.h new file mode 100644 index 0000000..3451fcf --- /dev/null +++ b/bits.h @@ -0,0 +1,13 @@ +#define _BVL(bit) (1UL << (bit)) +#define set(reg,value) reg |= (value) +#define unset(reg,value) reg &= ~(value) +#define set_bit(reg,value) reg |= (_BVL(value)) +#define set_bit2(reg,value1,value2) reg |= (_BVL(value1) | _BVL(value2)) +#define set_bit3(reg,value1,value2,value3) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3)) +#define set_bit4(reg,value1,value2,value3,value4) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4)) +#define set_bit5(reg,value1,value2,value3,value4,value5) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5)) +#define unset_bit(reg,value) reg &= ~(_BVL(value)) +#define unset_bit2(reg,value1,value2) reg &= ~(_BVL(value1) | _BVL(value2)) +#define unset_bit3(reg,value1,value2,value3) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3)) +#define unset_bit4(reg,value1,value2,value3,value4) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4)) +#define unset_bit5(reg,value1,value2,value3,value4,value5) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5)) diff --git a/board/BoardOutline.gbr b/board/BoardOutline.gbr new file mode 100644 index 0000000..66ff305 --- /dev/null +++ b/board/BoardOutline.gbr @@ -0,0 +1,19 @@ +G04 DipTrace 2.4.0.2* +%INBoardOutline.gbr*% +%MOIN*% +%ADD11C,0.0055*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBoardOutline*% +%LPD*% +X3937Y24437D2* +D11* +X33437D1* +Y3937D1* +X3937D1* +Y24437D1* +M02* diff --git a/board/Bottom.gbr b/board/Bottom.gbr new file mode 100644 index 0000000..bdafb34 --- /dev/null +++ b/board/Bottom.gbr @@ -0,0 +1,1990 @@ +G04 DipTrace 2.4.0.2* +%INBottom.gbr*% +%MOIN*% +%ADD13C,0.0118*% +%ADD14C,0.0079*% +%ADD15C,0.025*% +%ADD18R,0.063X0.063*% +%ADD19C,0.063*% +%ADD24R,0.0665X0.0665*% +%ADD26C,0.0665*% +%ADD27C,0.1874*% +%ADD28C,0.189*% +%ADD34C,0.0276*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBottom*% +%LPD*% +X24302Y11411D2* +D14* +X13051D1* +X12913Y11549D1* +Y15590D1* +X12776Y15727D1* +X6574D1* +X28526Y20805D2* +Y18044D1* +X26645Y16163D1* +Y11431D1* +X26221Y11008D1* +Y8273D1* +X25676Y7727D1* +Y7217D1* +X25538Y7079D1* +X22464D1* +X21973Y7569D1* +X25245D2* +Y11125D1* +X25582Y11462D1* +Y11746D1* +X25818Y11982D1* +Y16959D1* +X25254Y17523D1* +Y20805D1* +X25247Y11648D2* +X21437Y15458D1* +Y19687D1* +X13189Y12691D2* +Y19980D1* +X13051Y20118D1* +X11475D1* +X10788Y20805D1* +X13882Y13321D2* +Y20667D1* +X13744Y20805D1* +X11879D1* +X8075Y8687D2* +Y12061D1* +X9165Y8687D2* +Y11746D1* +X10256Y8687D2* +Y11431D1* +X8620Y7569D2* +Y9915D1* +X28516Y13293D2* +X27706D1* +X25470Y13321D2* +D13* +X24932D1* +Y13596D1* +X24617D1* +X8062Y19687D2* +X6023Y17648D1* +Y14686D1* +X6259Y14449D1* +X12201D1* +X12437Y14213D1* +Y8687D1* +X21982Y20805D2* +X21183Y21604D1* +X8298D1* +X8062Y21368D1* +Y19687D1* +X24617Y13596D2* +X21982Y16231D1* +Y20805D1* +X29011Y13435D2* +Y12954D1* +X28517Y12460D1* +Y7569D1* +X27984Y13687D2* +X28047Y13750D1* +X28696D1* +X29011Y13435D1* +D34* +X10872Y14938D3* +X8997D3* +Y18126D3* +Y16126D3* +X12562Y14937D3* +X12123Y16126D3* +X10497Y18876D3* +X12873Y16439D3* +X12935Y17501D3* +X11623Y18876D3* +X12748D3* +X13560Y18064D3* +X16623Y15001D3* +X15935Y14563D3* +X15248Y14126D3* +X13560Y16939D3* +X21749Y12376D3* +X17873D3* +X13623D3* +X11935D3* +X8560D3* +X8622Y11438D3* +Y10438D3* +X9685Y11313D3* +Y10438D3* +X10685Y10750D3* +X11998D3* +X12935Y10625D3* +X17998D3* +X22936D3* +X6434Y16876D3* +X8997Y13438D3* +X11998D3* +X13498D3* +Y14813D3* +X24936Y14626D3* +X26187Y14938D3* +Y14063D3* +X26937Y12438D3* +X28624Y12938D3* +X27749Y10625D3* +X25937Y10688D3* +X22374Y18001D3* +X24874D3* +X24374Y15563D3* +X13560Y15813D3* +X4309Y24064D3* +X33062D3* +Y4312D3* +X4309D3* +X7810Y9250D3* +X25624Y18001D3* +X27999D3* +X25749Y9625D3* +X7872Y7375D3* +X6997Y8500D3* +X23561Y11751D3* +X24061Y13501D3* +X25499Y12501D3* +X6574Y15727D3* +X24302Y11411D3* +X26645Y11431D3* +X25582Y11746D3* +X25247Y11648D3* +X13189Y12691D3* +X13882Y13321D3* +X8075Y12061D3* +X9165Y11746D3* +X10256Y11431D3* +X8620Y9915D3* +X27706Y13293D3* +X28516D3* +X27984Y13687D3* +X29011Y13435D3* +X25470Y13321D3* +X24617Y13596D3* +X4337Y23813D2* +D15* +X33039D1* +X4337Y23565D2* +X33039D1* +X4337Y23316D2* +X33039D1* +X4337Y23067D2* +X33039D1* +X4337Y22819D2* +X33039D1* +X4337Y22570D2* +X33039D1* +X4337Y22321D2* +X33039D1* +X4337Y22073D2* +X33039D1* +X4337Y21824D2* +X8035D1* +X21448D2* +X33039D1* +X4337Y21575D2* +X7789D1* +X21694D2* +X33039D1* +X4337Y21326D2* +X7715D1* +X22300D2* +X22758D1* +X23390D2* +X23848D1* +X24480D2* +X24937D1* +X25569D2* +X26027D1* +X26663D2* +X27117D1* +X27753D2* +X28207D1* +X28843D2* +X33039D1* +X4337Y21078D2* +X7715D1* +X9163D2* +X10230D1* +X13905D2* +X21226D1* +X29081D2* +X33039D1* +X4337Y20829D2* +X7715D1* +X9230D2* +X10168D1* +X14163D2* +X21359D1* +X29148D2* +X33039D1* +X4337Y20580D2* +X7715D1* +X9187D2* +X10211D1* +X14210D2* +X21402D1* +X29105D2* +X33039D1* +X4337Y20332D2* +X7715D1* +X8995D2* +X10398D1* +X13292D2* +X13551D1* +X14210D2* +X21594D1* +X28913D2* +X33039D1* +X4337Y20083D2* +X7590D1* +X8534D2* +X8680D1* +X9624D2* +X9770D1* +X10714D2* +X10862D1* +X14210D2* +X20965D1* +X28855D2* +X33039D1* +X4337Y19834D2* +X7457D1* +X14210D2* +X20832D1* +X28855D2* +X33039D1* +X4337Y19586D2* +X7449D1* +X14210D2* +X20824D1* +X28855D2* +X33039D1* +X4337Y19337D2* +X7230D1* +X14210D2* +X20930D1* +X28855D2* +X33039D1* +X4337Y19088D2* +X6980D1* +X7944D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X28195D1* +X28855D2* +X33039D1* +X4337Y18840D2* +X6730D1* +X7698D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X28195D1* +X28855D2* +X33039D1* +X4337Y18591D2* +X6484D1* +X7448D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X28195D1* +X28855D2* +X33039D1* +X4337Y18342D2* +X6234D1* +X7198D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X28195D1* +X28855D2* +X33039D1* +X4337Y18094D2* +X5984D1* +X6952D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X28121D1* +X28855D2* +X33039D1* +X4337Y17845D2* +X5742D1* +X6702D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25581D2* +X27871D1* +X28780D2* +X33039D1* +X4337Y17596D2* +X5676D1* +X6452D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24926D1* +X25636D2* +X27621D1* +X28534D2* +X33039D1* +X4337Y17347D2* +X5676D1* +X6370D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X24980D1* +X25886D2* +X27375D1* +X28284D2* +X33039D1* +X4337Y17099D2* +X5676D1* +X6370D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X25223D1* +X26112D2* +X27125D1* +X28034D2* +X33039D1* +X4337Y16850D2* +X5676D1* +X6370D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X25473D1* +X26148D2* +X26875D1* +X27788D2* +X33039D1* +X4337Y16601D2* +X5676D1* +X6370D2* +X12859D1* +X14210D2* +X21109D1* +X22331D2* +X25488D1* +X26148D2* +X26629D1* +X27538D2* +X33039D1* +X4337Y16353D2* +X5676D1* +X6370D2* +X12859D1* +X14210D2* +X21109D1* +X22343D2* +X25488D1* +X26148D2* +X26383D1* +X27288D2* +X33039D1* +X4337Y16104D2* +X5676D1* +X6741D2* +X12859D1* +X14210D2* +X21109D1* +X22593D2* +X25488D1* +X26148D2* +X26316D1* +X27042D2* +X33039D1* +X4337Y15855D2* +X5676D1* +X14210D2* +X21109D1* +X22843D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X33039D1* +X4337Y15607D2* +X5676D1* +X14210D2* +X21109D1* +X21765D2* +X22125D1* +X23089D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X33039D1* +X4337Y15358D2* +X5676D1* +X6757D2* +X12586D1* +X14210D2* +X21125D1* +X21991D2* +X22371D1* +X23339D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X31453D1* +X31733D2* +X33039D1* +X4337Y15109D2* +X5676D1* +X6370D2* +X12586D1* +X14210D2* +X21332D1* +X22241D2* +X22621D1* +X23589D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X31164D1* +X32023D2* +X33039D1* +X4337Y14861D2* +X5676D1* +X6370D2* +X12586D1* +X14210D2* +X21578D1* +X22491D2* +X22871D1* +X23835D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X31133D1* +X32054D2* +X33039D1* +X4337Y14612D2* +X5683D1* +X14210D2* +X21828D1* +X22737D2* +X23117D1* +X24085D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X31262D1* +X31925D2* +X33039D1* +X4337Y14363D2* +X5863D1* +X14210D2* +X22078D1* +X22987D2* +X23367D1* +X24335D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X33039D1* +X4337Y14115D2* +X12051D1* +X14210D2* +X22324D1* +X23237D2* +X23617D1* +X24581D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X33039D1* +X4337Y13866D2* +X12090D1* +X14210D2* +X22574D1* +X23483D2* +X23863D1* +X25136D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X27598D1* +X29062D2* +X33039D1* +X4337Y13617D2* +X12090D1* +X14210D2* +X22824D1* +X23733D2* +X24113D1* +X26148D2* +X26316D1* +X26976D2* +X27441D1* +X29394D2* +X31426D1* +X31761D2* +X33039D1* +X4337Y13368D2* +X12090D1* +X14308D2* +X23070D1* +X23983D2* +X24262D1* +X26148D2* +X26316D1* +X26976D2* +X27285D1* +X29433D2* +X31160D1* +X32026D2* +X33039D1* +X4337Y13120D2* +X12090D1* +X14257D2* +X23320D1* +X24230D2* +X24652D1* +X26148D2* +X26316D1* +X26976D2* +X27316D1* +X29358D2* +X31133D1* +X32054D2* +X33039D1* +X4337Y12871D2* +X12090D1* +X13573D2* +X23570D1* +X24480D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X28445D1* +X29351D2* +X31273D1* +X31913D2* +X33039D1* +X4337Y12622D2* +X12090D1* +X13612D2* +X23816D1* +X24730D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X28211D1* +X29163D2* +X33039D1* +X4337Y12374D2* +X7797D1* +X8355D2* +X12090D1* +X13460D2* +X24066D1* +X24976D2* +X25488D1* +X26148D2* +X26316D1* +X26976D2* +X28168D1* +X28913D2* +X33039D1* +X4337Y12125D2* +X7652D1* +X8499D2* +X9004D1* +X9327D2* +X12090D1* +X13241D2* +X24316D1* +X25226D2* +X25422D1* +X26148D2* +X26316D1* +X26976D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y11876D2* +X7691D1* +X8456D2* +X8758D1* +X9569D2* +X12090D1* +X13241D2* +X24562D1* +X26128D2* +X26316D1* +X26976D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y11628D2* +X7746D1* +X8405D2* +X8754D1* +X9573D2* +X9879D1* +X10632D2* +X12090D1* +X24667D2* +X24812D1* +X25991D2* +X26269D1* +X27023D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y11379D2* +X7746D1* +X8405D2* +X8836D1* +X9495D2* +X9832D1* +X10679D2* +X12090D1* +X24730D2* +X24922D1* +X25898D2* +X26137D1* +X27069D2* +X28168D1* +X28866D2* +X29207D1* +X30417D2* +X33039D1* +X4337Y11130D2* +X7746D1* +X8405D2* +X8836D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X24616D2* +X24918D1* +X25706D2* +X25918D1* +X26937D2* +X28168D1* +X28866D2* +X29207D1* +X30417D2* +X33039D1* +X4337Y10882D2* +X7746D1* +X8405D2* +X8836D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X29207D1* +X30417D2* +X33039D1* +X4337Y10633D2* +X7746D1* +X8405D2* +X8836D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X29207D1* +X30417D2* +X33039D1* +X4337Y10384D2* +X7746D1* +X8405D2* +X8836D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X29207D1* +X30417D2* +X33039D1* +X4337Y10135D2* +X7746D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y9887D2* +X7746D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y9638D2* +X7746D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y9389D2* +X7746D1* +X9495D2* +X9926D1* +X10585D2* +X12090D1* +X12784D2* +X24918D1* +X25573D2* +X25891D1* +X26550D2* +X28168D1* +X28866D2* +X33039D1* +X4337Y9141D2* +X7453D1* +X9577D2* +X9844D1* +X10671D2* +X10933D1* +X11761D2* +X12023D1* +X12851D2* +X22105D1* +X22933D2* +X23195D1* +X24023D2* +X24285D1* +X27296D2* +X27558D1* +X29476D2* +X33039D1* +X4337Y8892D2* +X7453D1* +X13023D2* +X21933D1* +X29648D2* +X33039D1* +X4337Y8643D2* +X7453D1* +X13058D2* +X21898D1* +X29683D2* +X33039D1* +X4337Y8395D2* +X7453D1* +X12983D2* +X21973D1* +X29608D2* +X33039D1* +X4337Y8146D2* +X7453D1* +X10534D2* +X11066D1* +X12714D2* +X21793D1* +X29339D2* +X33039D1* +X4337Y7897D2* +X8098D1* +X10233D2* +X11367D1* +X12417D2* +X21449D1* +X29042D2* +X33039D1* +X4337Y7649D2* +X8004D1* +X10327D2* +X11273D1* +X12507D2* +X21355D1* +X29132D2* +X33039D1* +X4337Y7400D2* +X8023D1* +X10308D2* +X11293D1* +X12491D2* +X21375D1* +X29116D2* +X33039D1* +X4337Y7151D2* +X8168D1* +X9073D2* +X9258D1* +X10163D2* +X11441D1* +X12343D2* +X21519D1* +X26788D2* +X26973D1* +X27878D2* +X28066D1* +X28968D2* +X33039D1* +X4337Y6903D2* +X22183D1* +X25816D2* +X33039D1* +X4337Y6654D2* +X33039D1* +X4337Y6405D2* +X33039D1* +X4337Y6156D2* +X33039D1* +X4337Y5908D2* +X33039D1* +X4337Y5659D2* +X33039D1* +X4337Y5410D2* +X33039D1* +X4337Y5162D2* +X33039D1* +X4337Y4913D2* +X33039D1* +X4337Y4664D2* +X33039D1* +X4337Y4416D2* +X33039D1* +X29357Y11393D2* +X30392D1* +Y10233D1* +X29232D1* +Y11393D1* +X29357D1* +X32018Y13076D2* +X31967Y12962D1* +X31886Y12867D1* +X31782Y12799D1* +X31663Y12762D1* +X31538Y12760D1* +X31418Y12793D1* +X31312Y12858D1* +X31228Y12951D1* +X31173Y13062D1* +X31152Y13185D1* +X31165Y13309D1* +X31213Y13424D1* +X31291Y13521D1* +X31393Y13593D1* +X31511Y13633D1* +X31635Y13639D1* +X31756Y13610D1* +X31865Y13548D1* +X31951Y13459D1* +X32009Y13349D1* +X32036Y13199D1* +X32018Y13076D1* +Y14808D2* +X31967Y14694D1* +X31886Y14600D1* +X31782Y14531D1* +X31663Y14495D1* +X31538Y14493D1* +X31418Y14526D1* +X31312Y14591D1* +X31228Y14683D1* +X31173Y14795D1* +X31152Y14917D1* +X31165Y15041D1* +X31213Y15156D1* +X31291Y15254D1* +X31393Y15325D1* +X31511Y15366D1* +X31635Y15371D1* +X31756Y15342D1* +X31865Y15281D1* +X31951Y15191D1* +X32009Y15081D1* +X32036Y14931D1* +X32018Y14808D1* +X7602Y9285D2* +X7770D1* +X7771Y11800D1* +X7696Y11924D1* +X7672Y12046D1* +X7687Y12170D1* +X7739Y12283D1* +X7822Y12375D1* +X7930Y12437D1* +X8052Y12463D1* +X8176Y12451D1* +X8290Y12401D1* +X8384Y12319D1* +X8448Y12213D1* +X8478Y12061D1* +X8458Y11938D1* +X8402Y11827D1* +X8378Y11802D1* +X8379Y10237D1* +X8476Y10291D1* +X8597Y10318D1* +X8721Y10305D1* +X8835Y10256D1* +X8862Y10233D1* +X8861Y11480D1* +X8787Y11609D1* +X8763Y11731D1* +X8778Y11855D1* +X8829Y11968D1* +X8913Y12060D1* +X9021Y12122D1* +X9143Y12148D1* +X9266Y12136D1* +X9381Y12086D1* +X9474Y12004D1* +X9538Y11898D1* +X9568Y11746D1* +X9549Y11623D1* +X9493Y11512D1* +X9468Y11487D1* +X9470Y9203D1* +X9562Y9134D1* +X9646Y9042D1* +X9711Y8930D1* +X9771Y9036D1* +X9854Y9129D1* +X9951Y9201D1* +X9952Y11167D1* +X9877Y11294D1* +X9853Y11416D1* +X9868Y11540D1* +X9920Y11653D1* +X10004Y11745D1* +X10111Y11807D1* +X10233Y11833D1* +X10357Y11821D1* +X10471Y11771D1* +X10565Y11689D1* +X10629Y11583D1* +X10659Y11431D1* +X10639Y11308D1* +X10583Y11197D1* +X10559Y11172D1* +X10560Y9201D1* +X10653Y9134D1* +X10737Y9042D1* +X10801Y8930D1* +X10861Y9036D1* +X10944Y9129D1* +X11045Y9203D1* +X11159Y9254D1* +X11280Y9281D1* +X11405Y9282D1* +X11527Y9257D1* +X11642Y9207D1* +X11743Y9134D1* +X11827Y9042D1* +X11892Y8930D1* +X11952Y9036D1* +X12035Y9129D1* +X12113Y9187D1* +Y14082D1* +X11951Y14125D1* +X6259D1* +X6137Y14149D1* +X6030Y14220D1* +X5794Y14456D1* +X5724Y14560D1* +X5699Y14686D1* +Y17648D1* +X5722Y17770D1* +X5794Y17877D1* +X7476Y19559D1* +X7464Y19685D1* +X7477Y19809D1* +X7515Y19928D1* +X7577Y20036D1* +X7660Y20129D1* +X7738Y20187D1* +Y21368D1* +X7762Y21490D1* +X7833Y21597D1* +X8069Y21833D1* +X8172Y21903D1* +X8298Y21928D1* +X21183D1* +X21305Y21904D1* +X21412Y21833D1* +X21857Y21389D1* +X21916Y21399D1* +X22041Y21400D1* +X22163Y21375D1* +X22278Y21325D1* +X22379Y21252D1* +X22463Y21160D1* +X22528Y21049D1* +X22588Y21154D1* +X22671Y21247D1* +X22771Y21321D1* +X22885Y21372D1* +X23007Y21399D1* +X23132Y21400D1* +X23254Y21375D1* +X23368Y21325D1* +X23470Y21252D1* +X23554Y21160D1* +X23618Y21049D1* +X23678Y21154D1* +X23761Y21247D1* +X23862Y21321D1* +X23975Y21372D1* +X24097Y21399D1* +X24222Y21400D1* +X24344Y21375D1* +X24459Y21325D1* +X24560Y21252D1* +X24644Y21160D1* +X24709Y21049D1* +X24769Y21154D1* +X24852Y21247D1* +X24952Y21321D1* +X25066Y21372D1* +X25188Y21399D1* +X25313Y21400D1* +X25435Y21375D1* +X25549Y21325D1* +X25651Y21252D1* +X25735Y21160D1* +X25799Y21049D1* +X25859Y21154D1* +X25942Y21247D1* +X26043Y21321D1* +X26157Y21372D1* +X26278Y21399D1* +X26403Y21400D1* +X26525Y21375D1* +X26640Y21325D1* +X26741Y21252D1* +X26825Y21160D1* +X26890Y21049D1* +X26950Y21154D1* +X27033Y21247D1* +X27133Y21321D1* +X27247Y21372D1* +X27369Y21399D1* +X27494Y21400D1* +X27616Y21375D1* +X27730Y21325D1* +X27832Y21252D1* +X27916Y21160D1* +X27980Y21049D1* +X28040Y21154D1* +X28123Y21247D1* +X28224Y21321D1* +X28338Y21372D1* +X28460Y21399D1* +X28584Y21400D1* +X28707Y21375D1* +X28821Y21325D1* +X28922Y21252D1* +X29006Y21160D1* +X29070Y21052D1* +X29109Y20934D1* +X29123Y20805D1* +X29110Y20681D1* +X29072Y20562D1* +X29009Y20454D1* +X28926Y20361D1* +X28828Y20290D1* +X28830Y18044D1* +X28802Y17919D1* +X28741Y17829D1* +X26948Y16036D1* +X26949Y11698D1* +X27018Y11583D1* +X27047Y11431D1* +X27028Y11308D1* +X26972Y11197D1* +X26885Y11108D1* +X26775Y11050D1* +X26679Y11033D1* +X26526Y10882D1* +Y9168D1* +X26579Y9203D1* +X26693Y9254D1* +X26815Y9281D1* +X26940Y9282D1* +X27062Y9257D1* +X27176Y9207D1* +X27278Y9134D1* +X27362Y9042D1* +X27426Y8930D1* +X27486Y9036D1* +X27569Y9129D1* +X27670Y9203D1* +X27784Y9254D1* +X27905Y9281D1* +X28030Y9282D1* +X28152Y9257D1* +X28192Y9239D1* +X28193Y12460D1* +X28217Y12582D1* +X28288Y12689D1* +X28489Y12890D1* +X28400Y12908D1* +X28288Y12961D1* +X28256Y12991D1* +X27973Y12989D1* +X27836Y12912D1* +X27713Y12891D1* +X27590Y12908D1* +X27478Y12961D1* +X27387Y13047D1* +X27327Y13156D1* +X27303Y13278D1* +X27318Y13402D1* +X27370Y13515D1* +X27453Y13607D1* +X27580Y13673D1* +X27596Y13795D1* +X27648Y13909D1* +X27732Y14001D1* +X27840Y14063D1* +X27961Y14089D1* +X28172Y14074D1* +X28696D1* +X28818Y14050D1* +X28925Y13979D1* +X29072Y13833D1* +X29112Y13825D1* +X29226Y13775D1* +X29320Y13693D1* +X29384Y13587D1* +X29414Y13435D1* +X29395Y13312D1* +X29335Y13185D1* +Y12954D1* +X29311Y12832D1* +X29240Y12725D1* +X28840Y12325D1* +X28841Y9245D1* +X28996Y9281D1* +X29121Y9282D1* +X29243Y9257D1* +X29357Y9207D1* +X29459Y9134D1* +X29543Y9042D1* +X29606Y8934D1* +X29646Y8816D1* +X29660Y8687D1* +X29647Y8563D1* +X29608Y8444D1* +X29546Y8336D1* +X29462Y8243D1* +X29362Y8170D1* +X29248Y8119D1* +X29126Y8093D1* +X29001D1* +X28879Y8118D1* +X28839Y8136D1* +X28841Y8073D1* +X28913Y8016D1* +X28998Y7924D1* +X29061Y7816D1* +X29100Y7698D1* +X29114Y7569D1* +X29101Y7445D1* +X29063Y7326D1* +X29000Y7218D1* +X28917Y7125D1* +X28816Y7052D1* +X28702Y7001D1* +X28580Y6975D1* +X28456Y6974D1* +X28333Y7000D1* +X28219Y7051D1* +X28118Y7124D1* +X28034Y7216D1* +X27970Y7328D1* +X27910Y7218D1* +X27827Y7125D1* +X27726Y7052D1* +X27612Y7001D1* +X27490Y6975D1* +X27365Y6974D1* +X27243Y7000D1* +X27129Y7051D1* +X27028Y7124D1* +X26944Y7216D1* +X26880Y7328D1* +X26819Y7218D1* +X26736Y7125D1* +X26635Y7052D1* +X26521Y7001D1* +X26399Y6975D1* +X26274Y6974D1* +X26152Y7000D1* +X26038Y7051D1* +X25959Y7108D1* +X25940Y7066D1* +X25891Y7001D1* +X25754Y6864D1* +X25646Y6795D1* +X25538Y6774D1* +X22464D1* +X22339Y6802D1* +X22248Y6864D1* +X22124Y6988D1* +X22037Y6975D1* +X21912Y6974D1* +X21790Y7000D1* +X21676Y7051D1* +X21575Y7124D1* +X21491Y7216D1* +X21428Y7324D1* +X21389Y7442D1* +X21376Y7566D1* +X21388Y7691D1* +X21426Y7809D1* +X21488Y7918D1* +X21571Y8011D1* +X21672Y8085D1* +X21786Y8136D1* +X21907Y8163D1* +X22032Y8164D1* +X22154Y8138D1* +X22269Y8088D1* +X22370Y8016D1* +X22454Y7924D1* +X22519Y7812D1* +X22579Y7918D1* +X22662Y8011D1* +X22762Y8085D1* +X22876Y8136D1* +X22998Y8163D1* +X23123Y8164D1* +X23245Y8138D1* +X23359Y8088D1* +X23461Y8016D1* +X23545Y7924D1* +X23609Y7812D1* +X23669Y7918D1* +X23752Y8011D1* +X23853Y8085D1* +X23967Y8136D1* +X24089Y8163D1* +X24213Y8164D1* +X24336Y8138D1* +X24450Y8088D1* +X24551Y8016D1* +X24635Y7924D1* +X24700Y7812D1* +X24760Y7918D1* +X24843Y8011D1* +X24940Y8083D1* +X24885Y8119D1* +X24763Y8093D1* +X24639D1* +X24517Y8118D1* +X24402Y8169D1* +X24301Y8242D1* +X24217Y8334D1* +X24154Y8446D1* +X24093Y8336D1* +X24010Y8243D1* +X23909Y8170D1* +X23795Y8119D1* +X23673Y8093D1* +X23548D1* +X23426Y8118D1* +X23312Y8169D1* +X23211Y8242D1* +X23127Y8334D1* +X23063Y8446D1* +X23002Y8336D1* +X22919Y8243D1* +X22818Y8170D1* +X22704Y8119D1* +X22582Y8093D1* +X22458D1* +X22335Y8118D1* +X22221Y8169D1* +X22120Y8242D1* +X22036Y8334D1* +X21974Y8442D1* +X21935Y8561D1* +X21921Y8685D1* +X21934Y8809D1* +X21972Y8928D1* +X22034Y9036D1* +X22117Y9129D1* +X22217Y9203D1* +X22331Y9254D1* +X22453Y9281D1* +X22577Y9282D1* +X22700Y9257D1* +X22814Y9207D1* +X22915Y9134D1* +X23000Y9042D1* +X23064Y8930D1* +X23124Y9036D1* +X23207Y9129D1* +X23308Y9203D1* +X23421Y9254D1* +X23543Y9281D1* +X23668Y9282D1* +X23790Y9257D1* +X23905Y9207D1* +X24006Y9134D1* +X24090Y9042D1* +X24155Y8930D1* +X24215Y9036D1* +X24298Y9129D1* +X24398Y9203D1* +X24512Y9254D1* +X24634Y9281D1* +X24759Y9282D1* +X24881Y9257D1* +X24942Y9230D1* +X24941Y11125D1* +X24968Y11250D1* +X24982Y11278D1* +X24868Y11511D1* +X24848Y11614D1* +X21222Y15243D1* +X21153Y15351D1* +X21133Y15458D1* +Y19173D1* +X21038Y19242D1* +X20955Y19334D1* +X20892Y19442D1* +X20853Y19561D1* +X20839Y19685D1* +X20852Y19809D1* +X20890Y19928D1* +X20952Y20036D1* +X21035Y20129D1* +X21135Y20203D1* +X21249Y20254D1* +X21371Y20281D1* +X21496Y20282D1* +X21618Y20257D1* +X21657Y20239D1* +X21584Y20360D1* +X21500Y20452D1* +X21437Y20560D1* +X21398Y20679D1* +X21385Y20803D1* +X21398Y20931D1* +X21049Y21280D1* +X12242D1* +X12360Y21160D1* +X12389Y21109D1* +X13744D1* +X13869Y21082D1* +X13959Y21020D1* +X14097Y20882D1* +X14166Y20775D1* +X14186Y20667D1* +X14191Y13579D1* +X14255Y13472D1* +X14284Y13321D1* +X14265Y13198D1* +X14209Y13087D1* +X14122Y12998D1* +X14012Y12940D1* +X13889Y12918D1* +X13766Y12935D1* +X13654Y12989D1* +X13563Y13074D1* +X13503Y13184D1* +X13494Y13233D1* +X13498Y12949D1* +X13562Y12842D1* +X13592Y12691D1* +X13572Y12568D1* +X13517Y12457D1* +X13429Y12368D1* +X13319Y12310D1* +X13216Y12292D1* +X13218Y11718D1* +X14551Y11716D1* +X24039D1* +X24158Y11787D1* +X24279Y11813D1* +X24403Y11801D1* +X24518Y11752D1* +X24611Y11670D1* +X24675Y11563D1* +X24705Y11411D1* +X24686Y11288D1* +X24630Y11177D1* +X24543Y11088D1* +X24432Y11030D1* +X24310Y11009D1* +X24186Y11026D1* +X24074Y11079D1* +X24043Y11109D1* +X17802Y11107D1* +X13051D1* +X12926Y11135D1* +X12836Y11196D1* +X12761Y11271D1* +Y9186D1* +X12834Y9134D1* +X12918Y9042D1* +X12981Y8934D1* +X13021Y8816D1* +X13035Y8687D1* +X13022Y8563D1* +X12983Y8444D1* +X12921Y8336D1* +X12837Y8243D1* +X12736Y8170D1* +X12623Y8119D1* +X12501Y8093D1* +X12376D1* +X12254Y8118D1* +X12140Y8169D1* +X12038Y8242D1* +X11955Y8334D1* +X11891Y8446D1* +X11830Y8336D1* +X11747Y8243D1* +X11646Y8170D1* +X11532Y8119D1* +X11410Y8093D1* +X11285D1* +X11163Y8118D1* +X11049Y8169D1* +X10948Y8242D1* +X10864Y8334D1* +X10800Y8446D1* +X10740Y8336D1* +X10656Y8243D1* +X10555Y8170D1* +X10441Y8119D1* +X10319Y8093D1* +X10195D1* +X10073Y8118D1* +X9958Y8169D1* +X9857Y8242D1* +X9774Y8334D1* +X9710Y8446D1* +X9649Y8336D1* +X9566Y8243D1* +X9465Y8170D1* +X9351Y8119D1* +X9229Y8093D1* +X9104D1* +X8982Y8118D1* +X8921Y8145D1* +X9017Y8016D1* +X9101Y7924D1* +X9165Y7812D1* +X9225Y7918D1* +X9308Y8011D1* +X9409Y8085D1* +X9523Y8136D1* +X9645Y8163D1* +X9769Y8164D1* +X9892Y8138D1* +X10006Y8088D1* +X10107Y8016D1* +X10192Y7924D1* +X10255Y7816D1* +X10294Y7698D1* +X10308Y7569D1* +X10295Y7445D1* +X10257Y7326D1* +X10194Y7218D1* +X10111Y7125D1* +X10010Y7052D1* +X9896Y7001D1* +X9774Y6975D1* +X9649Y6974D1* +X9527Y7000D1* +X9413Y7051D1* +X9312Y7124D1* +X9228Y7216D1* +X9164Y7328D1* +X9104Y7218D1* +X9020Y7125D1* +X8920Y7052D1* +X8806Y7001D1* +X8684Y6975D1* +X8559Y6974D1* +X8437Y7000D1* +X8323Y7051D1* +X8222Y7124D1* +X8138Y7216D1* +X8075Y7324D1* +X8036Y7442D1* +X8022Y7566D1* +X8035Y7691D1* +X8073Y7809D1* +X8135Y7918D1* +X8218Y8011D1* +X8315Y8083D1* +X8172Y8089D1* +X7477D1* +Y9285D1* +X7602D1* +X12476Y7445D2* +X12438Y7326D1* +X12375Y7218D1* +X12292Y7125D1* +X12191Y7052D1* +X12077Y7001D1* +X11955Y6975D1* +X11831Y6974D1* +X11708Y7000D1* +X11594Y7051D1* +X11493Y7124D1* +X11409Y7216D1* +X11347Y7324D1* +X11308Y7442D1* +X11294Y7566D1* +X11307Y7691D1* +X11345Y7809D1* +X11407Y7918D1* +X11490Y8011D1* +X11590Y8085D1* +X11704Y8136D1* +X11826Y8163D1* +X11951Y8164D1* +X12073Y8138D1* +X12187Y8088D1* +X12288Y8016D1* +X12373Y7924D1* +X12436Y7816D1* +X12475Y7698D1* +X12489Y7569D1* +X12476Y7445D1* +X25549Y9230D2* +X25602Y9254D1* +X25724Y9281D1* +X25849Y9282D1* +X25917Y9273D1* +Y11008D1* +X25945Y11133D1* +X26006Y11223D1* +X26241Y11458D1* +X26257Y11540D1* +X26309Y11653D1* +X26343Y11690D1* +X26340Y14806D1* +Y16163D1* +X26368Y16288D1* +X26430Y16378D1* +X28222Y18171D1* +X28221Y19142D1* +X28166Y19119D1* +X28044Y19093D1* +X27919D1* +X27797Y19118D1* +X27683Y19169D1* +X27582Y19242D1* +X27498Y19334D1* +X27434Y19446D1* +X27374Y19336D1* +X27290Y19243D1* +X27189Y19170D1* +X27075Y19119D1* +X26953Y19093D1* +X26829D1* +X26706Y19118D1* +X26592Y19169D1* +X26491Y19242D1* +X26407Y19334D1* +X26343Y19446D1* +X26283Y19336D1* +X26200Y19243D1* +X26099Y19170D1* +X25985Y19119D1* +X25863Y19093D1* +X25738D1* +X25616Y19118D1* +X25555Y19145D1* +X25558Y17930D1* +Y17653D1* +X26033Y17175D1* +X26102Y17067D1* +X26122Y16959D1* +Y11982D1* +X26095Y11858D1* +X26033Y11767D1* +X25981Y11715D1* +X25965Y11623D1* +X25909Y11512D1* +X25885Y11487D1* +X25861Y11340D1* +X25797Y11246D1* +X25551Y11001D1* +X25549Y9231D1* +X24948Y19143D2* +X24894Y19119D1* +X24772Y19093D1* +X24647D1* +X24525Y19118D1* +X24411Y19169D1* +X24310Y19242D1* +X24226Y19334D1* +X24162Y19446D1* +X24102Y19336D1* +X24018Y19243D1* +X23918Y19170D1* +X23804Y19119D1* +X23682Y19093D1* +X23557D1* +X23435Y19118D1* +X23321Y19169D1* +X23220Y19242D1* +X23136Y19334D1* +X23072Y19446D1* +X23011Y19336D1* +X22928Y19243D1* +X22827Y19170D1* +X22713Y19119D1* +X22591Y19093D1* +X22466D1* +X22344Y19118D1* +X22305Y19136D1* +X22306Y16364D1* +X24678Y13994D1* +X24718Y13986D1* +X24832Y13937D1* +X24853Y13919D1* +X24932Y13920D1* +X25054Y13897D1* +X25158Y13829D1* +X25226Y13731D1* +X25326Y13697D1* +X25448Y13723D1* +X25514Y13716D1* +Y16830D1* +X25039Y17308D1* +X24970Y17416D1* +X24950Y17523D1* +Y19137D1* +X12885Y19089D2* +X11827D1* +Y19351D1* +X11734Y19243D1* +X11633Y19170D1* +X11519Y19119D1* +X11397Y19093D1* +X11272D1* +X11150Y19118D1* +X11036Y19169D1* +X10935Y19242D1* +X10851Y19334D1* +X10787Y19446D1* +X10727Y19336D1* +X10643Y19243D1* +X10543Y19170D1* +X10429Y19119D1* +X10307Y19093D1* +X10182D1* +X10060Y19118D1* +X9946Y19169D1* +X9845Y19242D1* +X9761Y19334D1* +X9697Y19446D1* +X9636Y19336D1* +X9553Y19243D1* +X9452Y19170D1* +X9338Y19119D1* +X9216Y19093D1* +X9091D1* +X8969Y19118D1* +X8855Y19169D1* +X8754Y19242D1* +X8670Y19334D1* +X8606Y19446D1* +X8546Y19336D1* +X8462Y19243D1* +X8362Y19170D1* +X8248Y19119D1* +X8126Y19093D1* +X8001D1* +X7936Y19106D1* +X6344Y17511D1* +X6347Y16058D1* +X6429Y16103D1* +X6551Y16129D1* +X6675Y16117D1* +X6789Y16068D1* +X6833Y16029D1* +X8949Y16032D1* +X12812Y16029D1* +X12885Y16066D1* +Y19093D1* +X10789Y19931D2* +X10849Y20036D1* +X10932Y20129D1* +X10991Y20173D1* +X10852Y20211D1* +X10727D1* +X10605Y20236D1* +X10491Y20287D1* +X10390Y20360D1* +X10306Y20452D1* +X10243Y20560D1* +X10204Y20679D1* +X10191Y20803D1* +X10203Y20927D1* +X10241Y21046D1* +X10303Y21154D1* +X10386Y21247D1* +X10433Y21282D1* +X8968Y21280D1* +X9088Y21160D1* +X9151Y21052D1* +X9191Y20934D1* +X9205Y20805D1* +X9192Y20681D1* +X9153Y20562D1* +X9091Y20454D1* +X9008Y20361D1* +X8907Y20288D1* +X8793Y20237D1* +X8671Y20211D1* +X8546D1* +X8424Y20236D1* +X8385Y20254D1* +X8386Y20192D1* +X8459Y20134D1* +X8543Y20042D1* +X8607Y19930D1* +X8667Y20036D1* +X8750Y20129D1* +X8851Y20203D1* +X8965Y20254D1* +X9087Y20281D1* +X9211Y20282D1* +X9334Y20257D1* +X9448Y20207D1* +X9549Y20134D1* +X9633Y20042D1* +X9698Y19930D1* +X9758Y20036D1* +X9841Y20129D1* +X9942Y20203D1* +X10055Y20254D1* +X10177Y20281D1* +X10302Y20282D1* +X10424Y20257D1* +X10538Y20207D1* +X10640Y20134D1* +X10724Y20042D1* +X10788Y19930D1* +X12388Y20498D2* +X12334Y20422D1* +X13051D1* +X13176Y20395D1* +X13266Y20333D1* +X13404Y20195D1* +X13473Y20088D1* +X13493Y19980D1* +X13494Y13429D1* +X13546Y13543D1* +X13580Y13580D1* +X13577Y16696D1* +Y20504D1* +X12869Y20501D1* +X12396D1* +X6833Y15424D2* +X6814Y15404D1* +X6704Y15346D1* +X6581Y15325D1* +X6458Y15342D1* +X6349Y15394D1* +X6347Y14823D1* +X6509Y14773D1* +X12201D1* +X12323Y14750D1* +X12430Y14678D1* +X12608Y14500D1* +X12609Y15420D1* +X11276Y15423D1* +X6834D1* +X25316Y12045D2* +X25437Y12122D1* +X25517Y12139D1* +X25514Y12924D1* +X25478Y12918D1* +X25355Y12935D1* +X25234Y12997D1* +X24932D1* +X24810Y13021D1* +X24706Y13089D1* +X24635Y13195D1* +X24501Y13211D1* +X24389Y13265D1* +X24299Y13350D1* +X24239Y13459D1* +X24224Y13532D1* +X21751Y16005D1* +X21741Y15937D1* +Y15582D1* +X25273Y12052D1* +X32937Y24062D2* +X4312D1* +Y4312D1* +X33062D1* +Y24062D1* +X32937D1* +D18* +X29812Y10813D3* +D19* +Y9813D3* +D24* +X8075Y8687D3* +D26* +X9165D3* +X10256D3* +X11346D3* +X12437D3* +X8620Y7569D3* +X9711D3* +X10801D3* +X11892D3* +D27* +X5337Y8128D3* +X15175D3* +D24* +X21428Y8687D3* +D26* +X22519D3* +X23609D3* +X24700D3* +X25790D3* +X26881D3* +X27971D3* +X29062D3* +X21973Y7569D3* +X23064D3* +X24155D3* +X25245D3* +X26336D3* +X27426D3* +X28517D3* +D28* +X18686Y8128D3* +X31804D3* +D24* +X29071Y19687D3* +D26* +X27980D3* +X26890D3* +X25799D3* +X24709D3* +X23618D3* +X22528D3* +X21437D3* +X28526Y20805D3* +X27435D3* +X26344D3* +X25254D3* +X24163D3* +X23073D3* +X21982D3* +D28* +X31813Y20246D3* +X18695D3* +D24* +X12424Y19687D3* +D26* +X11334D3* +X10243D3* +X9153D3* +X8062D3* +X11879Y20805D3* +X10788D3* +X9698D3* +X8607D3* +D27* +X15162Y20246D3* +X5324D3* +M02* diff --git a/board/BottomMask.gbr b/board/BottomMask.gbr new file mode 100644 index 0000000..1c2a193 --- /dev/null +++ b/board/BottomMask.gbr @@ -0,0 +1,94 @@ +G04 DipTrace 2.4.0.2* +%INBottomMask.gbr*% +%MOIN*% +%ADD35C,0.0354*% +%ADD45C,0.1969*% +%ADD47C,0.1953*% +%ADD49C,0.0744*% +%ADD53R,0.0744X0.0744*% +%ADD61C,0.0709*% +%ADD63R,0.0709X0.0709*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBotMask*% +%LPD*% +D63* +X29812Y10813D3* +D61* +Y9813D3* +D35* +X31594Y13199D3* +Y14931D3* +D53* +X8075Y8687D3* +D49* +X9165D3* +X10256D3* +X11346D3* +X12437D3* +X8620Y7569D3* +X9711D3* +X10801D3* +X11892D3* +D47* +X5337Y8128D3* +X15175D3* +D53* +X21428Y8687D3* +D49* +X22519D3* +X23609D3* +X24700D3* +X25790D3* +X26881D3* +X27971D3* +X29062D3* +X21973Y7569D3* +X23064D3* +X24155D3* +X25245D3* +X26336D3* +X27426D3* +X28517D3* +D45* +X18686Y8128D3* +X31804D3* +D53* +X29071Y19687D3* +D49* +X27980D3* +X26890D3* +X25799D3* +X24709D3* +X23618D3* +X22528D3* +X21437D3* +X28526Y20805D3* +X27435D3* +X26344D3* +X25254D3* +X24163D3* +X23073D3* +X21982D3* +D45* +X31813Y20246D3* +X18695D3* +D53* +X12424Y19687D3* +D49* +X11334D3* +X10243D3* +X9153D3* +X8062D3* +X11879Y20805D3* +X10788D3* +X9698D3* +X8607D3* +D47* +X15162Y20246D3* +X5324D3* +M02* diff --git a/board/BottomSilk.gbr b/board/BottomSilk.gbr new file mode 100644 index 0000000..995ecc0 --- /dev/null +++ b/board/BottomSilk.gbr @@ -0,0 +1,12 @@ +G04 DipTrace 2.4.0.2* +%INBottomSilk.gbr*% +%MOIN*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNBotSilk*% +%LPD*% +M02* diff --git a/board/Top.gbr b/board/Top.gbr new file mode 100644 index 0000000..81faab8 --- /dev/null +++ b/board/Top.gbr @@ -0,0 +1,2322 @@ +G04 DipTrace 2.4.0.2* +%INTop.gbr*% +%MOIN*% +%ADD13C,0.0118*% +%ADD14C,0.0079*% +%ADD15C,0.025*% +%ADD16R,0.0276X0.0354*% +%ADD17R,0.0354X0.0276*% +%ADD18R,0.063X0.063*% +%ADD19C,0.063*% +%ADD21R,0.0906X0.0197*% +%ADD22R,0.0984X0.0787*% +%ADD23R,0.0571X0.0394*% +%ADD24R,0.0665X0.0665*% +%ADD25R,0.0591X0.0591*% +%ADD26C,0.0665*% +%ADD27C,0.1874*% +%ADD28C,0.189*% +%ADD30R,0.0197X0.0669*% +%ADD31R,0.0669X0.0197*% +%ADD33R,0.2165X0.0787*% +%ADD34C,0.0276*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNTop*% +%LPD*% +X22806Y12376D2* +D13* +X21749D1* +X24932Y14187D2* +Y14622D1* +X24936Y14626D1* +X26113Y12376D2* +X26874D1* +X26937Y12438D1* +X11935Y12376D2* +X13623D1* +X22806D2* +X23436D1* +X23561Y12251D1* +Y11751D1* +X24932Y14187D2* +Y13068D1* +X25499Y12501D1* +X26113Y12376D2* +X25624D1* +X25499Y12501D1* +X4499Y16062D2* +D14* +X5446D1* +X6062D1* +X4499Y11687D2* +X5446D1* +X6062D1* +X6574Y15727D2* +Y16062D1* +X24302Y11411D2* +Y10880D1* +X24617D2* +Y9315D1* +X24479Y9177D1* +X20430D1* +X20292Y9039D1* +Y7026D1* +X20154Y6888D1* +X6712D1* +X6574Y7026D1* +Y11687D1* +X26645Y11431D2* +X26113D1* +X25582Y11746D2* +X26113D1* +X25247Y11648D2* +Y10880D1* +X29062Y8687D2* +X28631Y9118D1* +X25070D1* +X24932Y9256D1* +Y10880D1* +X25562D2* +Y10375D1* +X25624Y10313D1* +X32812D1* +Y11188D1* +Y10313D2* +X28062D1* +Y11063D1* +X22806Y12691D2* +X13189D1* +X7644D1* +X7506Y12553D1* +Y8138D1* +X7644Y8000D1* +X9280D1* +X9711Y7569D1* +X12424Y19687D2* +X17353Y14758D1* +X23849D1* +X23987Y14620D1* +Y14187D1* +X11334Y19687D2* +X16401Y14620D1* +X23672D1* +Y14187D1* +X10243Y19687D2* +X15743Y14187D1* +X23357D1* +X9153Y19687D2* +X15204Y13636D1* +X22806D1* +X13882Y13321D2* +X22806D1* +X8607Y20805D2* +Y13144D1* +X8745Y13006D1* +X22806D1* +X8075Y12061D2* +X22806D1* +X9165Y11746D2* +X22806D1* +X10256Y11431D2* +X22806D1* +X11346Y8687D2* +X10915Y9118D1* +X8384D1* +X8246Y9256D1* +Y10014D1* +X8384Y10152D1* +X23220D1* +X23357Y10289D1* +Y10880D1* +X8620Y9915D2* +X23534D1* +X23672Y10053D1* +Y10880D1* +X11892Y7569D2* +Y9177D1* +X12030Y9315D1* +X23849D1* +X23987Y9453D1* +Y10880D1* +X26113Y12061D2* +X26546D1* +X26670Y11937D1* +X27312D1* +X30570Y14065D2* +X28417D1* +X28279Y13927D1* +Y12921D1* +X28142Y12783D1* +X26925D1* +X26833Y12691D1* +X26113D1* +X27706Y13293D2* +X27418Y13006D1* +X26113D1* +X28516Y13293D2* +Y13612D1* +X28653Y13750D1* +X30570D1* +X27984Y13687D2* +D13* +X27312D1* +X30570Y13435D2* +X29011D1* +X24617Y13596D2* +Y14187D1* +X25470Y13321D2* +X26113D1* +Y13636D2* +X25608D1* +X25470Y13498D1* +Y13321D1* +X27312Y13687D2* +X26676D1* +X26625Y13636D1* +X26113D1* +X29011Y13435D2* +Y11063D1* +X28574D1* +X30062D1* +X29812Y10813D1* +X22562Y16687D2* +D14* +X21381D1* +Y15575D1* +X21519Y15437D1* +X21812D1* +Y15033D1* +X21950Y14896D1* +X25109D1* +X25247Y14758D1* +Y14187D1* +X26302Y16687D2* +X27542D1* +Y15870D1* +X27405Y15732D1* +X26562D1* +Y15437D1* +X25700D1* +X25562Y15299D1* +Y14187D1* +D34* +X10872Y14938D3* +X8997D3* +Y18126D3* +Y16126D3* +X12562Y14937D3* +X12123Y16126D3* +X10497Y18876D3* +X12873Y16439D3* +X12935Y17501D3* +X11623Y18876D3* +X12748D3* +X13560Y18064D3* +X16623Y15001D3* +X15935Y14563D3* +X15248Y14126D3* +X13560Y16939D3* +X21749Y12376D3* +X17873D3* +X13623D3* +X11935D3* +X8560D3* +X8622Y11438D3* +Y10438D3* +X9685Y11313D3* +Y10438D3* +X10685Y10750D3* +X11998D3* +X12935Y10625D3* +X17998D3* +X22936D3* +X6434Y16876D3* +X8997Y13438D3* +X11998D3* +X13498D3* +Y14813D3* +X24936Y14626D3* +X26187Y14938D3* +Y14063D3* +X26937Y12438D3* +X28624Y12938D3* +X27749Y10625D3* +X25937Y10688D3* +X22374Y18001D3* +X24874D3* +X24374Y15563D3* +X13560Y15813D3* +X4309Y24064D3* +X33062D3* +Y4312D3* +X4309D3* +X7810Y9250D3* +X25624Y18001D3* +X27999D3* +X25749Y9625D3* +X7872Y7375D3* +X6997Y8500D3* +X23561Y11751D3* +X24061Y13501D3* +X25499Y12501D3* +X6574Y15727D3* +X24302Y11411D3* +X26645Y11431D3* +X25582Y11746D3* +X25247Y11648D3* +X13189Y12691D3* +X13882Y13321D3* +X8075Y12061D3* +X9165Y11746D3* +X10256Y11431D3* +X8620Y9915D3* +X27706Y13293D3* +X28516D3* +X27984Y13687D3* +X29011Y13435D3* +X25470Y13321D3* +X24617Y13596D3* +X4337Y23813D2* +D15* +X33039D1* +X4337Y23565D2* +X33039D1* +X4337Y23316D2* +X33039D1* +X4337Y23067D2* +X33039D1* +X4337Y22819D2* +X33039D1* +X4337Y22570D2* +X33039D1* +X4337Y22321D2* +X33039D1* +X4337Y22073D2* +X33039D1* +X4337Y21824D2* +X33039D1* +X4337Y21575D2* +X33039D1* +X4337Y21326D2* +X8289D1* +X8925D2* +X10473D1* +X11105D2* +X11562D1* +X12194D2* +X21664D1* +X22300D2* +X22758D1* +X23390D2* +X23848D1* +X24480D2* +X24937D1* +X25569D2* +X26027D1* +X26663D2* +X27117D1* +X27753D2* +X28207D1* +X28843D2* +X33039D1* +X4337Y21078D2* +X8051D1* +X9163D2* +X10230D1* +X12437D2* +X21426D1* +X29081D2* +X33039D1* +X4337Y20829D2* +X7984D1* +X9230D2* +X10168D1* +X12499D2* +X21359D1* +X29148D2* +X33039D1* +X4337Y20580D2* +X8027D1* +X9187D2* +X10211D1* +X12456D2* +X21402D1* +X29105D2* +X33039D1* +X4337Y20332D2* +X8219D1* +X8995D2* +X10398D1* +X11179D2* +X11488D1* +X12269D2* +X21594D1* +X22370D2* +X22683D1* +X23464D2* +X23773D1* +X24554D2* +X24863D1* +X25644D2* +X25957D1* +X26733D2* +X27047D1* +X27823D2* +X28137D1* +X28913D2* +X33039D1* +X4337Y20083D2* +X7590D1* +X9624D2* +X9770D1* +X10714D2* +X10862D1* +X13046D2* +X20965D1* +X21909D2* +X22055D1* +X22999D2* +X23145D1* +X24089D2* +X24237D1* +X25183D2* +X25328D1* +X26273D2* +X26418D1* +X27362D2* +X27505D1* +X28452D2* +X33039D1* +X4337Y19834D2* +X7457D1* +X13046D2* +X20832D1* +X28585D2* +X33039D1* +X4337Y19586D2* +X7449D1* +X13046D2* +X20824D1* +X28593D2* +X33039D1* +X4337Y19337D2* +X7555D1* +X13230D2* +X20930D1* +X28491D2* +X33039D1* +X4337Y19088D2* +X8277D1* +X8937D2* +X9297D1* +X10206D2* +X10387D1* +X11296D2* +X11476D1* +X12386D2* +X12566D1* +X13480D2* +X33039D1* +X4337Y18840D2* +X8277D1* +X8937D2* +X9547D1* +X10456D2* +X10637D1* +X11546D2* +X11726D1* +X12636D2* +X12816D1* +X13726D2* +X33039D1* +X4337Y18591D2* +X8277D1* +X8937D2* +X9793D1* +X10702D2* +X10883D1* +X11796D2* +X11976D1* +X12886D2* +X13066D1* +X13976D2* +X33039D1* +X4337Y18342D2* +X8277D1* +X8937D2* +X10043D1* +X10952D2* +X11133D1* +X12042D2* +X12223D1* +X13132D2* +X13312D1* +X14226D2* +X33039D1* +X4337Y18094D2* +X8277D1* +X8937D2* +X10293D1* +X11202D2* +X11383D1* +X12292D2* +X12473D1* +X13382D2* +X13562D1* +X14472D2* +X33039D1* +X4337Y17845D2* +X8277D1* +X8937D2* +X10539D1* +X11448D2* +X11629D1* +X12542D2* +X12723D1* +X13632D2* +X13812D1* +X14722D2* +X33039D1* +X4337Y17596D2* +X8277D1* +X8937D2* +X10789D1* +X11698D2* +X11879D1* +X12788D2* +X12969D1* +X13878D2* +X14058D1* +X14972D2* +X33039D1* +X4337Y17347D2* +X8277D1* +X8937D2* +X11035D1* +X11948D2* +X12129D1* +X13038D2* +X13219D1* +X14128D2* +X14308D1* +X15218D2* +X33039D1* +X4337Y17099D2* +X8277D1* +X8937D2* +X11285D1* +X12194D2* +X12375D1* +X13288D2* +X13469D1* +X14378D2* +X14558D1* +X15468D2* +X21191D1* +X23933D2* +X24930D1* +X27675D2* +X33039D1* +X4337Y16850D2* +X8277D1* +X8937D2* +X11535D1* +X12444D2* +X12625D1* +X13534D2* +X13715D1* +X14624D2* +X14805D1* +X15718D2* +X21098D1* +X23933D2* +X24930D1* +X27823D2* +X33039D1* +X4337Y16601D2* +X8277D1* +X8937D2* +X11781D1* +X12694D2* +X12875D1* +X13784D2* +X13965D1* +X14874D2* +X15055D1* +X15964D2* +X21051D1* +X23933D2* +X24930D1* +X27870D2* +X33039D1* +X7042Y16353D2* +X8277D1* +X8937D2* +X12031D1* +X12941D2* +X13121D1* +X14034D2* +X14215D1* +X15124D2* +X15305D1* +X16214D2* +X21051D1* +X23933D2* +X24930D1* +X27870D2* +X33039D1* +X7042Y16104D2* +X8277D1* +X8937D2* +X12281D1* +X13191D2* +X13371D1* +X14280D2* +X14461D1* +X15370D2* +X15551D1* +X16464D2* +X21051D1* +X23933D2* +X24930D1* +X27870D2* +X33039D1* +X7042Y15855D2* +X8277D1* +X8937D2* +X12527D1* +X13441D2* +X13621D1* +X14530D2* +X14711D1* +X15620D2* +X15801D1* +X16710D2* +X21051D1* +X21710D2* +X26258D1* +X27870D2* +X33039D1* +X5073Y15607D2* +X6164D1* +X6983D2* +X8277D1* +X8937D2* +X12777D1* +X13687D2* +X13867D1* +X14780D2* +X14961D1* +X15870D2* +X16051D1* +X16960D2* +X21051D1* +X22280D2* +X25414D1* +X27733D2* +X33039D1* +X4337Y15358D2* +X6391D1* +X6757D2* +X8277D1* +X8937D2* +X13027D1* +X13937D2* +X14117D1* +X15026D2* +X15207D1* +X16116D2* +X16297D1* +X17210D2* +X21144D1* +X22280D2* +X25238D1* +X27030D2* +X31453D1* +X31733D2* +X33039D1* +X4337Y15109D2* +X8277D1* +X8937D2* +X13273D1* +X14187D2* +X14367D1* +X15276D2* +X15457D1* +X16366D2* +X16547D1* +X17456D2* +X21344D1* +X25890D2* +X26094D1* +X27030D2* +X31164D1* +X32023D2* +X33039D1* +X4337Y14861D2* +X8277D1* +X8937D2* +X13523D1* +X14433D2* +X14613D1* +X15526D2* +X15703D1* +X25890D2* +X31133D1* +X32054D2* +X33039D1* +X4337Y14612D2* +X8277D1* +X8937D2* +X13773D1* +X14683D2* +X14863D1* +X15773D2* +X15953D1* +X25948D2* +X29828D1* +X31925D2* +X33039D1* +X4337Y14363D2* +X8277D1* +X8937D2* +X14019D1* +X14933D2* +X15113D1* +X25948D2* +X28332D1* +X31312D2* +X33039D1* +X4337Y14115D2* +X8277D1* +X8937D2* +X14269D1* +X15179D2* +X15359D1* +X25948D2* +X26883D1* +X27741D2* +X28016D1* +X31312D2* +X33039D1* +X4337Y13866D2* +X8277D1* +X8937D2* +X14519D1* +X31312D2* +X33039D1* +X4337Y13617D2* +X8277D1* +X8937D2* +X13586D1* +X31761D2* +X33039D1* +X4337Y13368D2* +X8277D1* +X8937D2* +X13457D1* +X23429D2* +X24262D1* +X32026D2* +X33039D1* +X4337Y13120D2* +X8277D1* +X23429D2* +X25098D1* +X32054D2* +X33039D1* +X4337Y12871D2* +X7367D1* +X23429D2* +X25488D1* +X29358D2* +X31273D1* +X31913D2* +X33039D1* +X4337Y12622D2* +X7183D1* +X23429D2* +X25488D1* +X28437D2* +X28664D1* +X29358D2* +X33039D1* +X4337Y12374D2* +X7176D1* +X8355D2* +X12918D1* +X13460D2* +X22183D1* +X23429D2* +X25488D1* +X26737D2* +X26887D1* +X27741D2* +X28664D1* +X29358D2* +X33039D1* +X5073Y12125D2* +X7176D1* +X23429D2* +X25422D1* +X27741D2* +X28664D1* +X29358D2* +X33039D1* +X7042Y11876D2* +X7176D1* +X23429D2* +X24891D1* +X27741D2* +X28664D1* +X29358D2* +X33039D1* +X7042Y11628D2* +X7176D1* +X7835D2* +X8754D1* +X23429D2* +X23937D1* +X24667D2* +X24820D1* +X27741D2* +X28664D1* +X29358D2* +X32226D1* +X5073Y11379D2* +X5594D1* +X7042D2* +X7176D1* +X7835D2* +X8976D1* +X9355D2* +X9832D1* +X27069D2* +X27594D1* +X30417D2* +X32226D1* +X4337Y11130D2* +X6246D1* +X6901D2* +X7176D1* +X7835D2* +X9965D1* +X26937D2* +X27594D1* +X30417D2* +X32226D1* +X4337Y10882D2* +X6246D1* +X6901D2* +X7176D1* +X7835D2* +X22969D1* +X25948D2* +X27594D1* +X30417D2* +X32226D1* +X4337Y10633D2* +X6246D1* +X6901D2* +X7176D1* +X7835D2* +X22969D1* +X25948D2* +X27734D1* +X30417D2* +X32226D1* +X4337Y10384D2* +X6246D1* +X6901D2* +X7176D1* +X7835D2* +X8164D1* +X4337Y10135D2* +X6246D1* +X6901D2* +X7176D1* +X4337Y9887D2* +X6246D1* +X6901D2* +X7176D1* +X25261D2* +X33039D1* +X4337Y9638D2* +X6246D1* +X6901D2* +X7176D1* +X25261D2* +X33039D1* +X4337Y9389D2* +X6246D1* +X6901D2* +X7176D1* +X28792D2* +X33039D1* +X4337Y9141D2* +X6246D1* +X6901D2* +X7176D1* +X29476D2* +X33039D1* +X4337Y8892D2* +X6246D1* +X6901D2* +X7176D1* +X13023D2* +X19961D1* +X29648D2* +X33039D1* +X4337Y8643D2* +X6246D1* +X6901D2* +X7176D1* +X13058D2* +X19961D1* +X20620D2* +X21898D1* +X29683D2* +X33039D1* +X4337Y8395D2* +X6246D1* +X6901D2* +X7176D1* +X12983D2* +X19961D1* +X20620D2* +X21973D1* +X29608D2* +X33039D1* +X4337Y8146D2* +X6246D1* +X6901D2* +X7176D1* +X10534D2* +X11066D1* +X12714D2* +X19961D1* +X20620D2* +X21793D1* +X29339D2* +X33039D1* +X4337Y7897D2* +X6246D1* +X6901D2* +X7293D1* +X10233D2* +X11367D1* +X12417D2* +X19961D1* +X20620D2* +X21449D1* +X29042D2* +X33039D1* +X4337Y7649D2* +X6246D1* +X6901D2* +X8004D1* +X10327D2* +X11273D1* +X12507D2* +X19961D1* +X20620D2* +X21355D1* +X29132D2* +X33039D1* +X4337Y7400D2* +X6246D1* +X6901D2* +X8023D1* +X10308D2* +X11293D1* +X12491D2* +X19961D1* +X20620D2* +X21375D1* +X29116D2* +X33039D1* +X4337Y7151D2* +X6246D1* +X20620D2* +X21519D1* +X22425D2* +X22613D1* +X23515D2* +X23703D1* +X24608D2* +X24793D1* +X25698D2* +X25883D1* +X26788D2* +X26973D1* +X27878D2* +X28066D1* +X28968D2* +X33039D1* +X4337Y6903D2* +X6269D1* +X20597D2* +X33039D1* +X4337Y6654D2* +X6492D1* +X20374D2* +X33039D1* +X4337Y6405D2* +X33039D1* +X4337Y6156D2* +X33039D1* +X4337Y5908D2* +X33039D1* +X4337Y5659D2* +X33039D1* +X4337Y5410D2* +X33039D1* +X4337Y5162D2* +X33039D1* +X4337Y4913D2* +X33039D1* +X4337Y4664D2* +X33039D1* +X4337Y4416D2* +X33039D1* +X27034Y12379D2* +X27715D1* +Y11495D1* +X27039D1* +X27047Y11431D1* +X27028Y11308D1* +X26972Y11197D1* +X26885Y11108D1* +X26775Y11050D1* +X26652Y11028D1* +X26529Y11045D1* +X26463Y11068D1* +X25928D1* +X25925Y10616D1* +X27761Y10617D1* +X27754Y10660D1* +X27620D1* +Y11466D1* +X28504Y11462D1* +X28690Y11466D1* +X28687Y12688D1* +Y12926D1* +X28581Y12901D1* +X28544Y12770D1* +X28495Y12706D1* +X28357Y12568D1* +X28249Y12500D1* +X28142Y12479D1* +X27048Y12476D1* +X26978Y12424D1* +X26913Y12397D1* +X26833Y12387D1* +X26712D1* +X26709Y12328D1* +X26795Y12243D1* +X26909Y12245D1* +Y12379D1* +X27034D1* +Y14129D2* +X27715D1* +Y14008D1* +X27840Y14063D1* +X27961Y14089D1* +X28019Y14083D1* +X28064Y14142D1* +X28202Y14280D1* +X28310Y14349D1* +X28417Y14369D1* +X29851D1* +X29852Y14743D1* +X31192D1* +X31173Y14795D1* +X31152Y14917D1* +X31165Y15041D1* +X31213Y15156D1* +X31291Y15254D1* +X31393Y15325D1* +X31511Y15366D1* +X31635Y15371D1* +X31756Y15342D1* +X31865Y15281D1* +X31951Y15191D1* +X32009Y15081D1* +X32036Y14931D1* +X32018Y14808D1* +X31967Y14694D1* +X31886Y14600D1* +X31782Y14531D1* +X31663Y14495D1* +X31538Y14493D1* +X31418Y14526D1* +X31309Y14594D1* +X31288Y14493D1* +X31284Y14017D1* +X31288Y13613D1* +X31291Y13521D1* +X31393Y13593D1* +X31511Y13633D1* +X31635Y13639D1* +X31756Y13610D1* +X31865Y13548D1* +X31951Y13459D1* +X32009Y13349D1* +X32036Y13199D1* +X32018Y13076D1* +X31967Y12962D1* +X31886Y12867D1* +X31782Y12799D1* +X31663Y12762D1* +X31538Y12760D1* +X31418Y12793D1* +X31312Y12858D1* +X31228Y12951D1* +X31172Y13066D1* +X31038Y13072D1* +X29852D1* +Y13115D1* +X29445Y13111D1* +X29332D1* +X29335Y12560D1* +Y11392D1* +X30392Y11393D1* +Y10615D1* +X32511Y10617D1* +X32497Y10628D1* +X32252D1* +Y11748D1* +X33061D1* +X33062Y24062D1* +X4312D1* +Y16527D1* +X4824Y16524D1* +X5050D1* +Y16364D1* +X5622Y16366D1* +X5620Y16465D1* +X6504Y16461D1* +X6757Y16465D1* +X7016D1* +Y15659D1* +X6973D1* +X6957Y15604D1* +X6901Y15493D1* +X6814Y15404D1* +X6704Y15346D1* +X6581Y15325D1* +X6458Y15342D1* +X6346Y15395D1* +X6255Y15481D1* +X6195Y15590D1* +X6181Y15663D1* +X6132D1* +X5879Y15659D1* +X5620D1* +Y15757D1* +X5051Y15758D1* +X5050Y15600D1* +X4312D1* +Y12152D1* +X4824Y12149D1* +X5050D1* +Y11989D1* +X5622Y11991D1* +X5620Y12090D1* +X6504Y12086D1* +X6757Y12090D1* +X7016D1* +Y11284D1* +X6879D1* +X6878Y7191D1* +X8153Y7192D1* +X8075Y7324D1* +X8036Y7442D1* +X8022Y7566D1* +X8036Y7694D1* +X7644Y7696D1* +X7519Y7723D1* +X7428Y7785D1* +X7291Y7923D1* +X7222Y8030D1* +X7202Y8138D1* +Y12553D1* +X7229Y12678D1* +X7291Y12768D1* +X7428Y12906D1* +X7536Y12975D1* +X7644Y12995D1* +X8343D1* +X8314Y13064D1* +X8303Y13144D1* +Y19140D1* +X8126Y19093D1* +X8001D1* +X7879Y19118D1* +X7765Y19169D1* +X7663Y19242D1* +X7580Y19334D1* +X7517Y19442D1* +X7478Y19561D1* +X7464Y19685D1* +X7477Y19809D1* +X7515Y19928D1* +X7577Y20036D1* +X7660Y20129D1* +X7760Y20203D1* +X7874Y20254D1* +X7996Y20281D1* +X8121Y20282D1* +X8243Y20257D1* +X8304Y20230D1* +X8303Y20288D1* +X8209Y20360D1* +X8125Y20452D1* +X8062Y20560D1* +X8023Y20679D1* +X8010Y20803D1* +X8022Y20927D1* +X8060Y21046D1* +X8122Y21154D1* +X8205Y21247D1* +X8306Y21321D1* +X8419Y21372D1* +X8541Y21399D1* +X8666Y21400D1* +X8788Y21375D1* +X8903Y21325D1* +X9004Y21252D1* +X9088Y21160D1* +X9151Y21052D1* +X9191Y20934D1* +X9205Y20805D1* +X9192Y20681D1* +X9153Y20562D1* +X9091Y20454D1* +X9008Y20361D1* +X8910Y20290D1* +X8965Y20254D1* +X9087Y20281D1* +X9211Y20282D1* +X9334Y20257D1* +X9448Y20207D1* +X9549Y20134D1* +X9633Y20042D1* +X9698Y19930D1* +X9758Y20036D1* +X9841Y20129D1* +X9942Y20203D1* +X10055Y20254D1* +X10177Y20281D1* +X10302Y20282D1* +X10424Y20257D1* +X10538Y20207D1* +X10640Y20134D1* +X10724Y20042D1* +X10788Y19930D1* +X10849Y20036D1* +X10932Y20129D1* +X11032Y20203D1* +X11146Y20254D1* +X11268Y20281D1* +X11392Y20282D1* +X11515Y20257D1* +X11629Y20207D1* +X11730Y20134D1* +X11828Y20018D1* +X11827Y20210D1* +X11696Y20236D1* +X11582Y20287D1* +X11480Y20360D1* +X11397Y20452D1* +X11333Y20564D1* +X11272Y20454D1* +X11189Y20361D1* +X11088Y20288D1* +X10974Y20237D1* +X10852Y20211D1* +X10727D1* +X10605Y20236D1* +X10491Y20287D1* +X10390Y20360D1* +X10306Y20452D1* +X10243Y20560D1* +X10204Y20679D1* +X10191Y20803D1* +X10203Y20927D1* +X10241Y21046D1* +X10303Y21154D1* +X10386Y21247D1* +X10487Y21321D1* +X10601Y21372D1* +X10722Y21399D1* +X10847Y21400D1* +X10969Y21375D1* +X11084Y21325D1* +X11185Y21252D1* +X11269Y21160D1* +X11334Y21049D1* +X11394Y21154D1* +X11477Y21247D1* +X11577Y21321D1* +X11691Y21372D1* +X11813Y21399D1* +X11938Y21400D1* +X12060Y21375D1* +X12174Y21325D1* +X12276Y21252D1* +X12360Y21160D1* +X12423Y21052D1* +X12462Y20934D1* +X12477Y20805D1* +X12464Y20681D1* +X12425Y20562D1* +X12363Y20454D1* +X12279Y20361D1* +X12168Y20283D1* +X13022Y20285D1* +Y19523D1* +X14761Y17781D1* +X17481Y15060D1* +X21373Y15062D1* +X21368Y15173D1* +X21304Y15222D1* +X21166Y15360D1* +X21097Y15467D1* +X21077Y15575D1* +Y16687D1* +X21102Y16809D1* +X21194Y16926D1* +X21214Y17028D1* +Y17346D1* +X23910D1* +Y16028D1* +X21687D1* +X21685Y15839D1* +X22254Y15840D1* +Y15203D1* +X23200Y15200D1* +X25109D1* +X25234Y15172D1* +X25258Y15187D1* +Y15299D1* +X25285Y15424D1* +X25347Y15514D1* +X25485Y15652D1* +X25592Y15721D1* +X25700Y15741D1* +X26118D1* +X26120Y15840D1* +X26280D1* +X26355Y15955D1* +X26485Y16026D1* +X24955Y16028D1* +Y17346D1* +X27650D1* +Y16975D1* +X27765Y16894D1* +X27836Y16767D1* +X27847Y16687D1* +Y15870D1* +X27819Y15745D1* +X27757Y15655D1* +X27620Y15517D1* +X27512Y15448D1* +X27405Y15428D1* +X27002D1* +X27004Y15034D1* +X26120D1* +Y15132D1* +X25863Y15133D1* +X25866Y14787D1* +X25925D1* +Y14001D1* +X26588Y13999D1* +X26676Y14011D1* +X26907D1* +X26909Y14129D1* +X27034D1* +X5050Y11379D2* +Y11225D1* +X4312D1* +Y4312D1* +X33062D1* +Y10136D1* +X33019Y10090D1* +X32909Y10025D1* +X32812Y10009D1* +X25624D1* +X25499Y10036D1* +X25424Y10083D1* +X25310Y10205D1* +X25281Y10258D1* +X25236Y10255D1* +Y9423D1* +X28631Y9422D1* +X28756Y9395D1* +X28846Y9333D1* +X28915Y9264D1* +X28996Y9281D1* +X29121Y9282D1* +X29243Y9257D1* +X29357Y9207D1* +X29459Y9134D1* +X29543Y9042D1* +X29606Y8934D1* +X29646Y8816D1* +X29660Y8687D1* +X29647Y8563D1* +X29608Y8444D1* +X29546Y8336D1* +X29462Y8243D1* +X29362Y8170D1* +X29248Y8119D1* +X29126Y8093D1* +X29001D1* +X28879Y8118D1* +X28765Y8169D1* +X28663Y8242D1* +X28580Y8334D1* +X28516Y8446D1* +X28455Y8336D1* +X28372Y8243D1* +X28271Y8170D1* +X28157Y8119D1* +X28035Y8093D1* +X27910D1* +X27788Y8118D1* +X27674Y8169D1* +X27573Y8242D1* +X27489Y8334D1* +X27425Y8446D1* +X27365Y8336D1* +X27281Y8243D1* +X27180Y8170D1* +X27066Y8119D1* +X26944Y8093D1* +X26820D1* +X26698Y8118D1* +X26584Y8169D1* +X26482Y8242D1* +X26399Y8334D1* +X26335Y8446D1* +X26274Y8336D1* +X26191Y8243D1* +X26090Y8170D1* +X25976Y8119D1* +X25854Y8093D1* +X25729D1* +X25607Y8118D1* +X25493Y8169D1* +X25392Y8242D1* +X25308Y8334D1* +X25244Y8446D1* +X25184Y8336D1* +X25100Y8243D1* +X24999Y8170D1* +X24885Y8119D1* +X24763Y8093D1* +X24639D1* +X24517Y8118D1* +X24402Y8169D1* +X24301Y8242D1* +X24217Y8334D1* +X24154Y8446D1* +X24093Y8336D1* +X24010Y8243D1* +X23909Y8170D1* +X23795Y8119D1* +X23673Y8093D1* +X23548D1* +X23426Y8118D1* +X23312Y8169D1* +X23211Y8242D1* +X23127Y8334D1* +X23063Y8446D1* +X23002Y8336D1* +X22919Y8243D1* +X22818Y8170D1* +X22704Y8119D1* +X22582Y8093D1* +X22458D1* +X22335Y8118D1* +X22221Y8169D1* +X22120Y8242D1* +X22036Y8334D1* +X21974Y8442D1* +X21935Y8561D1* +X21921Y8685D1* +X21934Y8809D1* +X21954Y8872D1* +X20593Y8873D1* +X20596Y8164D1* +Y7026D1* +X20569Y6901D1* +X20507Y6810D1* +X20369Y6673D1* +X20262Y6604D1* +X20154Y6584D1* +X6712D1* +X6587Y6611D1* +X6496Y6673D1* +X6359Y6810D1* +X6290Y6918D1* +X6270Y7026D1* +X6266Y11284D1* +X6132Y11288D1* +X5879Y11284D1* +X5620D1* +Y11382D1* +X5051Y11383D1* +X7809Y9285D2* +X7942D1* +Y10014D1* +X7969Y10139D1* +X8031Y10229D1* +X8169Y10367D1* +X8276Y10435D1* +X8384Y10456D1* +X22997D1* +X22994Y11066D1* +X22207Y11068D1* +Y11126D1* +X10521Y11127D1* +X10386Y11050D1* +X10263Y11028D1* +X10140Y11045D1* +X10028Y11099D1* +X9937Y11185D1* +X9877Y11294D1* +X9853Y11416D1* +X9857Y11443D1* +X9427Y11442D1* +X9296Y11365D1* +X9173Y11343D1* +X9050Y11360D1* +X8937Y11414D1* +X8847Y11500D1* +X8787Y11609D1* +X8763Y11731D1* +X8766Y11758D1* +X8341Y11757D1* +X8205Y11680D1* +X8082Y11658D1* +X7959Y11675D1* +X7847Y11729D1* +X7810Y11764D1* +Y9284D1* +X9709Y8441D2* +X9649Y8336D1* +X9566Y8243D1* +X9506Y8200D1* +X9645Y8163D1* +X9769Y8164D1* +X9892Y8138D1* +X10006Y8088D1* +X10107Y8016D1* +X10192Y7924D1* +X10255Y7816D1* +X10294Y7698D1* +X10308Y7569D1* +X10295Y7445D1* +X10257Y7326D1* +X10171Y7192D1* +X11426D1* +X11347Y7324D1* +X11308Y7442D1* +X11294Y7566D1* +X11307Y7691D1* +X11345Y7809D1* +X11407Y7918D1* +X11490Y8011D1* +X11587Y8083D1* +X11532Y8119D1* +X11410Y8093D1* +X11285D1* +X11163Y8118D1* +X11049Y8169D1* +X10948Y8242D1* +X10864Y8334D1* +X10800Y8446D1* +X10740Y8336D1* +X10656Y8243D1* +X10555Y8170D1* +X10441Y8119D1* +X10319Y8093D1* +X10195D1* +X10073Y8118D1* +X9958Y8169D1* +X9857Y8242D1* +X9774Y8334D1* +X9710Y8446D1* +X13022Y8563D2* +X12983Y8444D1* +X12921Y8336D1* +X12837Y8243D1* +X12736Y8170D1* +X12623Y8119D1* +X12501Y8093D1* +X12376D1* +X12254Y8118D1* +X12193Y8145D1* +X12288Y8016D1* +X12373Y7924D1* +X12436Y7816D1* +X12475Y7698D1* +X12489Y7569D1* +X12476Y7445D1* +X12438Y7326D1* +X12352Y7192D1* +X19989D1* +X19988Y9014D1* +X19599Y9011D1* +X12939D1* +X12981Y8934D1* +X13021Y8816D1* +X13035Y8687D1* +X13022Y8563D1* +X22518Y7323D2* +X22457Y7218D1* +X22374Y7125D1* +X22273Y7052D1* +X22159Y7001D1* +X22037Y6975D1* +X21912Y6974D1* +X21790Y7000D1* +X21676Y7051D1* +X21575Y7124D1* +X21491Y7216D1* +X21428Y7324D1* +X21389Y7442D1* +X21376Y7566D1* +X21388Y7691D1* +X21426Y7809D1* +X21488Y7918D1* +X21571Y8011D1* +X21672Y8085D1* +X21786Y8136D1* +X21907Y8163D1* +X22032Y8164D1* +X22154Y8138D1* +X22269Y8088D1* +X22370Y8016D1* +X22454Y7924D1* +X22519Y7812D1* +X22579Y7918D1* +X22662Y8011D1* +X22762Y8085D1* +X22876Y8136D1* +X22998Y8163D1* +X23123Y8164D1* +X23245Y8138D1* +X23359Y8088D1* +X23461Y8016D1* +X23545Y7924D1* +X23609Y7812D1* +X23669Y7918D1* +X23752Y8011D1* +X23853Y8085D1* +X23967Y8136D1* +X24089Y8163D1* +X24213Y8164D1* +X24336Y8138D1* +X24450Y8088D1* +X24551Y8016D1* +X24635Y7924D1* +X24700Y7812D1* +X24760Y7918D1* +X24843Y8011D1* +X24944Y8085D1* +X25057Y8136D1* +X25179Y8163D1* +X25304Y8164D1* +X25426Y8138D1* +X25540Y8088D1* +X25642Y8016D1* +X25726Y7924D1* +X25790Y7812D1* +X25850Y7918D1* +X25933Y8011D1* +X26034Y8085D1* +X26148Y8136D1* +X26270Y8163D1* +X26394Y8164D1* +X26517Y8138D1* +X26631Y8088D1* +X26732Y8016D1* +X26817Y7924D1* +X26881Y7812D1* +X26941Y7918D1* +X27024Y8011D1* +X27125Y8085D1* +X27238Y8136D1* +X27360Y8163D1* +X27485Y8164D1* +X27607Y8138D1* +X27721Y8088D1* +X27823Y8016D1* +X27907Y7924D1* +X27971Y7812D1* +X28032Y7918D1* +X28115Y8011D1* +X28215Y8085D1* +X28329Y8136D1* +X28451Y8163D1* +X28576Y8164D1* +X28698Y8138D1* +X28812Y8088D1* +X28913Y8016D1* +X28998Y7924D1* +X29061Y7816D1* +X29100Y7698D1* +X29114Y7569D1* +X29101Y7445D1* +X29063Y7326D1* +X29000Y7218D1* +X28917Y7125D1* +X28816Y7052D1* +X28702Y7001D1* +X28580Y6975D1* +X28456Y6974D1* +X28333Y7000D1* +X28219Y7051D1* +X28118Y7124D1* +X28034Y7216D1* +X27970Y7328D1* +X27910Y7218D1* +X27827Y7125D1* +X27726Y7052D1* +X27612Y7001D1* +X27490Y6975D1* +X27365Y6974D1* +X27243Y7000D1* +X27129Y7051D1* +X27028Y7124D1* +X26944Y7216D1* +X26880Y7328D1* +X26819Y7218D1* +X26736Y7125D1* +X26635Y7052D1* +X26521Y7001D1* +X26399Y6975D1* +X26274Y6974D1* +X26152Y7000D1* +X26038Y7051D1* +X25937Y7124D1* +X25853Y7216D1* +X25789Y7328D1* +X25729Y7218D1* +X25645Y7125D1* +X25545Y7052D1* +X25431Y7001D1* +X25309Y6975D1* +X25184Y6974D1* +X25062Y7000D1* +X24948Y7051D1* +X24847Y7124D1* +X24763Y7216D1* +X24699Y7328D1* +X24638Y7218D1* +X24555Y7125D1* +X24454Y7052D1* +X24340Y7001D1* +X24218Y6975D1* +X24093Y6974D1* +X23971Y7000D1* +X23857Y7051D1* +X23756Y7124D1* +X23672Y7216D1* +X23608Y7328D1* +X23548Y7218D1* +X23464Y7125D1* +X23363Y7052D1* +X23250Y7001D1* +X23128Y6975D1* +X23003Y6974D1* +X22881Y7000D1* +X22767Y7051D1* +X22665Y7124D1* +X22582Y7216D1* +X22518Y7328D1* +X28565Y19563D2* +X28526Y19444D1* +X28464Y19336D1* +X28381Y19243D1* +X28280Y19170D1* +X28166Y19119D1* +X28044Y19093D1* +X27919D1* +X27797Y19118D1* +X27683Y19169D1* +X27582Y19242D1* +X27498Y19334D1* +X27434Y19446D1* +X27374Y19336D1* +X27290Y19243D1* +X27189Y19170D1* +X27075Y19119D1* +X26953Y19093D1* +X26829D1* +X26706Y19118D1* +X26592Y19169D1* +X26491Y19242D1* +X26407Y19334D1* +X26343Y19446D1* +X26283Y19336D1* +X26200Y19243D1* +X26099Y19170D1* +X25985Y19119D1* +X25863Y19093D1* +X25738D1* +X25616Y19118D1* +X25502Y19169D1* +X25401Y19242D1* +X25317Y19334D1* +X25253Y19446D1* +X25192Y19336D1* +X25109Y19243D1* +X25008Y19170D1* +X24894Y19119D1* +X24772Y19093D1* +X24647D1* +X24525Y19118D1* +X24411Y19169D1* +X24310Y19242D1* +X24226Y19334D1* +X24162Y19446D1* +X24102Y19336D1* +X24018Y19243D1* +X23918Y19170D1* +X23804Y19119D1* +X23682Y19093D1* +X23557D1* +X23435Y19118D1* +X23321Y19169D1* +X23220Y19242D1* +X23136Y19334D1* +X23072Y19446D1* +X23011Y19336D1* +X22928Y19243D1* +X22827Y19170D1* +X22713Y19119D1* +X22591Y19093D1* +X22466D1* +X22344Y19118D1* +X22230Y19169D1* +X22129Y19242D1* +X22045Y19334D1* +X21981Y19446D1* +X21921Y19336D1* +X21837Y19243D1* +X21736Y19170D1* +X21623Y19119D1* +X21501Y19093D1* +X21376D1* +X21254Y19118D1* +X21140Y19169D1* +X21038Y19242D1* +X20955Y19334D1* +X20892Y19442D1* +X20853Y19561D1* +X20839Y19685D1* +X20852Y19809D1* +X20890Y19928D1* +X20952Y20036D1* +X21035Y20129D1* +X21135Y20203D1* +X21249Y20254D1* +X21371Y20281D1* +X21496Y20282D1* +X21618Y20257D1* +X21732Y20207D1* +X21834Y20134D1* +X21918Y20042D1* +X21982Y19930D1* +X22042Y20036D1* +X22125Y20129D1* +X22226Y20203D1* +X22340Y20254D1* +X22462Y20281D1* +X22586Y20282D1* +X22709Y20257D1* +X22823Y20207D1* +X22924Y20134D1* +X23008Y20042D1* +X23073Y19930D1* +X23133Y20036D1* +X23216Y20129D1* +X23317Y20203D1* +X23430Y20254D1* +X23552Y20281D1* +X23677Y20282D1* +X23799Y20257D1* +X23913Y20207D1* +X24015Y20134D1* +X24099Y20042D1* +X24163Y19930D1* +X24223Y20036D1* +X24307Y20129D1* +X24407Y20203D1* +X24521Y20254D1* +X24643Y20281D1* +X24767Y20282D1* +X24890Y20257D1* +X25004Y20207D1* +X25105Y20134D1* +X25190Y20042D1* +X25254Y19930D1* +X25314Y20036D1* +X25397Y20129D1* +X25498Y20203D1* +X25611Y20254D1* +X25733Y20281D1* +X25858Y20282D1* +X25980Y20257D1* +X26095Y20207D1* +X26196Y20134D1* +X26280Y20042D1* +X26345Y19930D1* +X26405Y20036D1* +X26488Y20129D1* +X26588Y20203D1* +X26702Y20254D1* +X26824Y20281D1* +X26949Y20282D1* +X27071Y20257D1* +X27185Y20207D1* +X27287Y20134D1* +X27371Y20042D1* +X27435Y19930D1* +X27495Y20036D1* +X27578Y20129D1* +X27679Y20203D1* +X27792Y20254D1* +X27914Y20281D1* +X28039Y20282D1* +X28161Y20257D1* +X28276Y20207D1* +X28377Y20134D1* +X28461Y20042D1* +X28524Y19934D1* +X28564Y19816D1* +X28578Y19687D1* +X28565Y19563D1* +X29110Y20681D2* +X29072Y20562D1* +X29009Y20454D1* +X28926Y20361D1* +X28825Y20288D1* +X28711Y20237D1* +X28589Y20211D1* +X28464D1* +X28342Y20236D1* +X28228Y20287D1* +X28127Y20360D1* +X28043Y20452D1* +X27979Y20564D1* +X27919Y20454D1* +X27835Y20361D1* +X27735Y20288D1* +X27621Y20237D1* +X27499Y20211D1* +X27374D1* +X27252Y20236D1* +X27138Y20287D1* +X27036Y20360D1* +X26953Y20452D1* +X26889Y20564D1* +X26828Y20454D1* +X26745Y20361D1* +X26644Y20288D1* +X26530Y20237D1* +X26408Y20211D1* +X26283D1* +X26161Y20236D1* +X26047Y20287D1* +X25946Y20360D1* +X25862Y20452D1* +X25798Y20564D1* +X25738Y20454D1* +X25654Y20361D1* +X25553Y20288D1* +X25440Y20237D1* +X25318Y20211D1* +X25193D1* +X25071Y20236D1* +X24957Y20287D1* +X24855Y20360D1* +X24772Y20452D1* +X24708Y20564D1* +X24647Y20454D1* +X24564Y20361D1* +X24463Y20288D1* +X24349Y20237D1* +X24227Y20211D1* +X24102D1* +X23980Y20236D1* +X23866Y20287D1* +X23765Y20360D1* +X23681Y20452D1* +X23617Y20564D1* +X23557Y20454D1* +X23473Y20361D1* +X23372Y20288D1* +X23258Y20237D1* +X23136Y20211D1* +X23012D1* +X22890Y20236D1* +X22775Y20287D1* +X22674Y20360D1* +X22590Y20452D1* +X22527Y20564D1* +X22466Y20454D1* +X22383Y20361D1* +X22282Y20288D1* +X22168Y20237D1* +X22046Y20211D1* +X21921D1* +X21799Y20236D1* +X21685Y20287D1* +X21584Y20360D1* +X21500Y20452D1* +X21437Y20560D1* +X21398Y20679D1* +X21385Y20803D1* +X21397Y20927D1* +X21435Y21046D1* +X21497Y21154D1* +X21580Y21247D1* +X21681Y21321D1* +X21794Y21372D1* +X21916Y21399D1* +X22041Y21400D1* +X22163Y21375D1* +X22278Y21325D1* +X22379Y21252D1* +X22463Y21160D1* +X22528Y21049D1* +X22588Y21154D1* +X22671Y21247D1* +X22771Y21321D1* +X22885Y21372D1* +X23007Y21399D1* +X23132Y21400D1* +X23254Y21375D1* +X23368Y21325D1* +X23470Y21252D1* +X23554Y21160D1* +X23618Y21049D1* +X23678Y21154D1* +X23761Y21247D1* +X23862Y21321D1* +X23975Y21372D1* +X24097Y21399D1* +X24222Y21400D1* +X24344Y21375D1* +X24459Y21325D1* +X24560Y21252D1* +X24644Y21160D1* +X24709Y21049D1* +X24769Y21154D1* +X24852Y21247D1* +X24952Y21321D1* +X25066Y21372D1* +X25188Y21399D1* +X25313Y21400D1* +X25435Y21375D1* +X25549Y21325D1* +X25651Y21252D1* +X25735Y21160D1* +X25799Y21049D1* +X25859Y21154D1* +X25942Y21247D1* +X26043Y21321D1* +X26157Y21372D1* +X26278Y21399D1* +X26403Y21400D1* +X26525Y21375D1* +X26640Y21325D1* +X26741Y21252D1* +X26825Y21160D1* +X26890Y21049D1* +X26950Y21154D1* +X27033Y21247D1* +X27133Y21321D1* +X27247Y21372D1* +X27369Y21399D1* +X27494Y21400D1* +X27616Y21375D1* +X27730Y21325D1* +X27832Y21252D1* +X27916Y21160D1* +X27980Y21049D1* +X28040Y21154D1* +X28123Y21247D1* +X28224Y21321D1* +X28338Y21372D1* +X28460Y21399D1* +X28584Y21400D1* +X28707Y21375D1* +X28821Y21325D1* +X28922Y21252D1* +X29006Y21160D1* +X29070Y21052D1* +X29109Y20934D1* +X29123Y20805D1* +X29110Y20681D1* +X12588Y19089D2* +X12362D1* +X16529Y14922D1* +X16756Y14924D1* +X12589Y19092D1* +X11477Y19110D2* +X11397Y19093D1* +X11269D1* +X15869Y14491D1* +X16097Y14493D1* +X11482Y19109D1* +X10387Y19110D2* +X10307Y19093D1* +X10178D1* +X15331Y13939D1* +X15567Y13940D1* +X15351Y14149D1* +X10393Y19107D1* +X9296Y19110D2* +X9216Y19093D1* +X9091D1* +X8969Y19118D1* +X8909Y19145D1* +X8912Y17930D1* +Y13309D1* +X13476Y13310D1* +X13494Y13429D1* +X13546Y13543D1* +X13629Y13635D1* +X13737Y13697D1* +X13859Y13723D1* +X13983Y13711D1* +X14097Y13661D1* +X14141Y13623D1* +X14784Y13625D1* +X9301Y19108D1* +X25161Y13587D2* +X25021D1* +X25001Y13473D1* +X24945Y13362D1* +X24858Y13273D1* +X24747Y13215D1* +X24625Y13194D1* +X24501Y13211D1* +X24389Y13265D1* +X24299Y13350D1* +X24239Y13459D1* +X24215Y13585D1* +X23939Y13587D1* +X23407D1* +X23406Y12958D1* +Y12328D1* +Y11698D1* +Y11481D1* +X23909Y11479D1* +X23914Y11520D1* +X23966Y11633D1* +X24050Y11725D1* +X24158Y11787D1* +X24279Y11813D1* +X24403Y11801D1* +X24518Y11752D1* +X24611Y11670D1* +X24675Y11563D1* +X24696Y11476D1* +X24882Y11479D1* +X24845Y11633D1* +X24859Y11757D1* +X24911Y11870D1* +X24995Y11962D1* +X25103Y12024D1* +X25224Y12050D1* +X25306Y12042D1* +X25437Y12122D1* +X25517Y12139D1* +X25514Y12424D1* +Y12920D1* +X25355Y12935D1* +X25242Y12989D1* +X25152Y13074D1* +X25092Y13184D1* +X25068Y13306D1* +X25083Y13429D1* +X25134Y13543D1* +X25153Y13563D1* +X24214Y13587D2* +X23624Y13591D1* +X23404Y13587D1* +X23402Y13272D1* +X23406Y12869D1* +X23402Y12643D1* +X23406Y12299D1* +X23404Y11479D1* +X23721Y11476D1* +X23874Y11479D1* +X13448Y12387D2* +X13426Y12366D1* +X22204Y12365D1* +X22181Y12387D1* +X13451D1* +X12927D2* +X8310D1* +X8450Y12365D1* +X12954D1* +D16* +X27312Y11937D3* +Y12449D3* +Y13687D3* +Y14199D3* +D17* +X21812Y15437D3* +X22324D3* +X26562D3* +X27074D3* +D18* +X29812Y10813D3* +D19* +Y9813D3* +D21* +X30570Y13435D3* +Y13750D3* +Y14065D3* +Y14380D3* +Y14695D3* +D22* +X30609Y12313D3* +Y15817D3* +X32775Y12313D3* +Y15817D3* +D23* +X4499Y16062D3* +Y16692D3* +Y11687D3* +Y12317D3* +D24* +X8075Y8687D3* +D25* +X32812Y11188D3* +D26* +X9165Y8687D3* +X10256D3* +X11346D3* +X12437D3* +X8620Y7569D3* +X9711D3* +X10801D3* +X11892D3* +D27* +X5337Y8128D3* +X15175D3* +D24* +X21428Y8687D3* +D26* +X22519D3* +X23609D3* +X24700D3* +X25790D3* +X26881D3* +X27971D3* +X29062D3* +X21973Y7569D3* +X23064D3* +X24155D3* +X25245D3* +X26336D3* +X27426D3* +X28517D3* +D28* +X18686Y8128D3* +X31804D3* +D24* +X29071Y19687D3* +D26* +X27980D3* +X26890D3* +X25799D3* +X24709D3* +X23618D3* +X22528D3* +X21437D3* +X28526Y20805D3* +X27435D3* +X26344D3* +X25254D3* +X24163D3* +X23073D3* +X21982D3* +D28* +X31813Y20246D3* +X18695D3* +D24* +X12424Y19687D3* +D26* +X11334D3* +X10243D3* +X9153D3* +X8062D3* +X11879Y20805D3* +X10788D3* +X9698D3* +X8607D3* +D27* +X15162Y20246D3* +X5324D3* +D17* +X6062Y16062D3* +X6574D3* +X6062Y11687D3* +X6574D3* +X28062Y11063D3* +X28574D3* +D30* +X25562Y14187D3* +X25247D3* +X24932D3* +X24617D3* +X24302D3* +X23987D3* +X23672D3* +X23357D3* +D31* +X22806Y13636D3* +Y13321D3* +Y13006D3* +Y12691D3* +Y12376D3* +Y12061D3* +Y11746D3* +Y11431D3* +D30* +X23357Y10880D3* +X23672D3* +X23987D3* +X24302D3* +X24617D3* +X24932D3* +X25247D3* +X25562D3* +D31* +X26113Y11431D3* +Y11746D3* +Y12061D3* +Y12376D3* +Y12691D3* +Y13006D3* +Y13321D3* +Y13636D3* +D33* +X22562Y16687D3* +X26302D3* +M02* diff --git a/board/TopMask.gbr b/board/TopMask.gbr new file mode 100644 index 0000000..c004bf1 --- /dev/null +++ b/board/TopMask.gbr @@ -0,0 +1,177 @@ +G04 DipTrace 2.4.0.2* +%INTopMask.gbr*% +%MOIN*% +%ADD35C,0.0354*% +%ADD39R,0.2244X0.0866*% +%ADD41R,0.0748X0.0276*% +%ADD43R,0.0276X0.0748*% +%ADD45C,0.1969*% +%ADD47C,0.1953*% +%ADD49C,0.0744*% +%ADD51R,0.0669X0.0669*% +%ADD53R,0.0744X0.0744*% +%ADD55R,0.065X0.0472*% +%ADD57R,0.1063X0.0866*% +%ADD59R,0.0984X0.0276*% +%ADD61C,0.0709*% +%ADD63R,0.0709X0.0709*% +%ADD65R,0.0433X0.0354*% +%ADD67R,0.0354X0.0433*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNTopMask*% +%LPD*% +D67* +X27312Y11937D3* +Y12449D3* +Y13687D3* +Y14199D3* +D65* +X21812Y15437D3* +X22324D3* +X26562D3* +X27074D3* +D63* +X29812Y10813D3* +D61* +Y9813D3* +D59* +X30570Y13435D3* +Y13750D3* +Y14065D3* +Y14380D3* +Y14695D3* +D57* +X30609Y12313D3* +Y15817D3* +X32775Y12313D3* +Y15817D3* +D35* +X31594Y13199D3* +Y14931D3* +D55* +X4499Y16062D3* +Y16692D3* +Y11687D3* +Y12317D3* +D53* +X8075Y8687D3* +D51* +X32812Y11188D3* +D49* +X9165Y8687D3* +X10256D3* +X11346D3* +X12437D3* +X8620Y7569D3* +X9711D3* +X10801D3* +X11892D3* +D47* +X5337Y8128D3* +X15175D3* +D53* +X21428Y8687D3* +D49* +X22519D3* +X23609D3* +X24700D3* +X25790D3* +X26881D3* +X27971D3* +X29062D3* +X21973Y7569D3* +X23064D3* +X24155D3* +X25245D3* +X26336D3* +X27426D3* +X28517D3* +D45* +X18686Y8128D3* +X31804D3* +D53* +X29071Y19687D3* +D49* +X27980D3* +X26890D3* +X25799D3* +X24709D3* +X23618D3* +X22528D3* +X21437D3* +X28526Y20805D3* +X27435D3* +X26344D3* +X25254D3* +X24163D3* +X23073D3* +X21982D3* +D45* +X31813Y20246D3* +X18695D3* +D53* +X12424Y19687D3* +D49* +X11334D3* +X10243D3* +X9153D3* +X8062D3* +X11879Y20805D3* +X10788D3* +X9698D3* +X8607D3* +D47* +X15162Y20246D3* +X5324D3* +D65* +X6062Y16062D3* +X6574D3* +X6062Y11687D3* +X6574D3* +X28062Y11063D3* +X28574D3* +D43* +X25562Y14187D3* +X25247D3* +X24932D3* +X24617D3* +X24302D3* +X23987D3* +X23672D3* +X23357D3* +D41* +X22806Y13636D3* +Y13321D3* +Y13006D3* +Y12691D3* +Y12376D3* +Y12061D3* +Y11746D3* +Y11431D3* +D43* +X23357Y10880D3* +X23672D3* +X23987D3* +X24302D3* +X24617D3* +X24932D3* +X25247D3* +X25562D3* +D41* +X26113Y11431D3* +Y11746D3* +Y12061D3* +Y12376D3* +Y12691D3* +Y13006D3* +Y13321D3* +Y13636D3* +D39* +X22562Y16687D3* +X26302D3* +M02* diff --git a/board/TopSilk.gbr b/board/TopSilk.gbr new file mode 100644 index 0000000..0f0d9ea --- /dev/null +++ b/board/TopSilk.gbr @@ -0,0 +1,1078 @@ +G04 DipTrace 2.4.0.2* +%INTopSilk.gbr*% +%MOIN*% +%ADD10C,0.0098*% +%ADD20C,0.0197*% +%ADD29O,0.0164X0.0165*% +%ADD32C,0.0154*% +%ADD69C,0.0077*% +%ADD70C,0.0062*% +%ADD71C,0.0139*% +%FSLAX44Y44*% +G04* +G70* +G90* +G75* +G01* +%LNTopSilk*% +%LPD*% +X29694Y11612D2* +D10* +X29930D1* +X29812Y11730D2* +Y11494D1* +X28812Y10313D2* +G02X28812Y10313I1000J0D01* +G01* +X33936Y12530D2* +Y15600D1* +Y12530D2* +X33444D1* +X32113D2* +X31271D1* +X30235Y12884D2* +Y13159D1* +Y14970D2* +Y15246D1* +X31271Y15600D2* +X32113D1* +X33444D2* +X33936D1* +D20* +X29901Y13435D3* +X4736Y17058D2* +D10* +X4263D1* +X4736Y12683D2* +X4263D1* +X25582Y13675D2* +X23298D1* +Y11392D1* +X25582D1* +Y13675D1* +D29* +X25893Y14192D3* +G36* +X25582Y13675D2* +X25267D1* +X25582Y13360D1* +Y13675D1* +G37* +D32* +X21697Y17302D3* +X22188Y17356D2* +D10* +Y17652D1* +X26676Y15722D2* +Y16018D1* +X22188Y15722D2* +X26676D1* +X22188D2* +Y16018D1* +X26676Y17356D2* +Y17652D1* +X22188D2* +X26676D1* +X27735Y12235D2* +D69* +X27688Y12211D1* +X27640Y12163D1* +X27616Y12116D1* +Y12020D1* +X27640Y11972D1* +X27688Y11924D1* +X27735Y11900D1* +X27807Y11876D1* +X27927D1* +X27998Y11900D1* +X28047Y11924D1* +X28094Y11972D1* +X28118Y12020D1* +Y12116D1* +X28094Y12163D1* +X28047Y12211D1* +X27998Y12235D1* +X27712Y12389D2* +X27688Y12438D1* +X27617Y12509D1* +X28118D1* +X27716Y13878D2* +X27669Y13854D1* +X27621Y13806D1* +X27597Y13758D1* +Y13663D1* +X27621Y13615D1* +X27669Y13567D1* +X27716Y13543D1* +X27788Y13519D1* +X27908D1* +X27979Y13543D1* +X28027Y13567D1* +X28075Y13615D1* +X28099Y13663D1* +Y13758D1* +X28075Y13806D1* +X28027Y13854D1* +X27979Y13878D1* +X27717Y14056D2* +X27693D1* +X27645Y14080D1* +X27621Y14104D1* +X27597Y14152D1* +Y14248D1* +X27621Y14295D1* +X27645Y14319D1* +X27693Y14343D1* +X27741D1* +X27789Y14319D1* +X27860Y14271D1* +X28099Y14032D1* +Y14367D1* +X21003Y15438D2* +X20979Y15485D1* +X20931Y15533D1* +X20883Y15557D1* +X20788D1* +X20740Y15533D1* +X20692Y15485D1* +X20668Y15438D1* +X20644Y15366D1* +Y15246D1* +X20668Y15175D1* +X20692Y15126D1* +X20740Y15079D1* +X20788Y15055D1* +X20883D1* +X20931Y15079D1* +X20979Y15126D1* +X21003Y15175D1* +X21205Y15556D2* +X21468D1* +X21324Y15365D1* +X21396D1* +X21444Y15341D1* +X21468Y15318D1* +X21492Y15246D1* +Y15198D1* +X21468Y15126D1* +X21420Y15078D1* +X21348Y15055D1* +X21276D1* +X21205Y15078D1* +X21181Y15103D1* +X21157Y15150D1* +X27741Y15438D2* +X27717Y15485D1* +X27669Y15533D1* +X27621Y15557D1* +X27526D1* +X27478Y15533D1* +X27430Y15485D1* +X27406Y15438D1* +X27382Y15366D1* +Y15246D1* +X27406Y15175D1* +X27430Y15126D1* +X27478Y15079D1* +X27526Y15055D1* +X27621D1* +X27669Y15079D1* +X27717Y15126D1* +X27741Y15175D1* +X28134Y15055D2* +Y15556D1* +X27895Y15222D1* +X28254D1* +X29747Y12343D2* +X29723Y12390D1* +X29675Y12438D1* +X29627Y12462D1* +X29532D1* +X29484Y12438D1* +X29436Y12390D1* +X29412Y12343D1* +X29388Y12271D1* +Y12151D1* +X29412Y12080D1* +X29436Y12032D1* +X29484Y11984D1* +X29532Y11960D1* +X29627D1* +X29675Y11984D1* +X29723Y12032D1* +X29747Y12080D1* +X30188Y12462D2* +X29949D1* +X29925Y12247D1* +X29949Y12270D1* +X30021Y12295D1* +X30092D1* +X30164Y12270D1* +X30212Y12223D1* +X30236Y12151D1* +Y12103D1* +X30212Y12032D1* +X30164Y11984D1* +X30092Y11960D1* +X30021D1* +X29949Y11984D1* +X29925Y12008D1* +X29901Y12055D1* +X31744Y16943D2* +Y16560D1* +X31720Y16489D1* +X31696Y16465D1* +X31648Y16440D1* +X31600D1* +X31553Y16465D1* +X31529Y16489D1* +X31505Y16560D1* +Y16608D1* +X32185Y16942D2* +X31947D1* +X31923Y16727D1* +X31947Y16751D1* +X32018Y16775D1* +X32090D1* +X32162Y16751D1* +X32210Y16704D1* +X32233Y16632D1* +Y16584D1* +X32210Y16512D1* +X32162Y16464D1* +X32090Y16440D1* +X32018D1* +X31947Y16464D1* +X31923Y16489D1* +X31898Y16536D1* +X5044Y15704D2* +X5547D1* +Y15991D1* +X5044Y16456D2* +Y16145D1* +X5547D1* +Y16456D1* +X5284Y16145D2* +Y16336D1* +X5044Y16610D2* +X5547D1* +Y16778D1* +X5523Y16849D1* +X5475Y16898D1* +X5427Y16921D1* +X5356Y16945D1* +X5236D1* +X5164Y16921D1* +X5116Y16898D1* +X5068Y16849D1* +X5044Y16778D1* +Y16610D1* +X5141Y17099D2* +X5116Y17148D1* +X5045Y17219D1* +X5547D1* +X4982Y11284D2* +X5484D1* +Y11571D1* +X4982Y12036D2* +Y11725D1* +X5484D1* +Y12036D1* +X5221Y11725D2* +Y11916D1* +X4982Y12190D2* +X5484D1* +Y12358D1* +X5460Y12429D1* +X5412Y12478D1* +X5364Y12501D1* +X5293Y12525D1* +X5173D1* +X5101Y12501D1* +X5054Y12478D1* +X5006Y12429D1* +X4982Y12358D1* +Y12190D1* +X5102Y12704D2* +X5078D1* +X5030Y12728D1* +X5006Y12751D1* +X4982Y12799D1* +Y12895D1* +X5006Y12943D1* +X5030Y12966D1* +X5078Y12991D1* +X5126D1* +X5174Y12966D1* +X5245Y12919D1* +X5484Y12679D1* +Y13014D1* +X6013Y16693D2* +X6228D1* +X6300Y16717D1* +X6324Y16741D1* +X6348Y16788D1* +Y16836D1* +X6324Y16884D1* +X6300Y16908D1* +X6228Y16932D1* +X6013D1* +Y16430D1* +X6181Y16693D2* +X6348Y16430D1* +X6503Y16836D2* +X6551Y16860D1* +X6623Y16931D1* +Y16430D1* +X5906Y12318D2* +X6121D1* +X6193Y12342D1* +X6217Y12366D1* +X6241Y12413D1* +Y12461D1* +X6217Y12509D1* +X6193Y12533D1* +X6121Y12557D1* +X5906D1* +Y12055D1* +X6073Y12318D2* +X6241Y12055D1* +X6419Y12437D2* +Y12461D1* +X6443Y12509D1* +X6467Y12533D1* +X6515Y12556D1* +X6611D1* +X6658Y12533D1* +X6682Y12509D1* +X6706Y12461D1* +Y12413D1* +X6682Y12365D1* +X6634Y12294D1* +X6395Y12055D1* +X6730D1* +X27906Y11694D2* +X28121D1* +X28192Y11718D1* +X28217Y11742D1* +X28240Y11789D1* +Y11837D1* +X28217Y11885D1* +X28192Y11909D1* +X28121Y11933D1* +X27906D1* +Y11431D1* +X28073Y11694D2* +X28240Y11431D1* +X28443Y11932D2* +X28705D1* +X28562Y11741D1* +X28634D1* +X28682Y11717D1* +X28705Y11694D1* +X28730Y11622D1* +Y11574D1* +X28705Y11502D1* +X28658Y11454D1* +X28586Y11431D1* +X28514D1* +X28443Y11454D1* +X28419Y11479D1* +X28395Y11526D1* +X24155Y15254D2* +Y14895D1* +X24179Y14823D1* +X24227Y14776D1* +X24299Y14751D1* +X24346D1* +X24418Y14776D1* +X24466Y14823D1* +X24490Y14895D1* +Y15254D1* +X24644Y15158D2* +X24692Y15182D1* +X24764Y15253D1* +Y14751D1* +X24104Y18384D2* +X24295Y18144D1* +Y17881D1* +X24486Y18384D2* +X24295Y18144D1* +X24641Y18288D2* +X24689Y18312D1* +X24760Y18383D1* +Y17881D1* +X31280Y11202D2* +D70* +X31452D1* +X31510Y11221D1* +X31529Y11240D1* +X31548Y11278D1* +Y11317D1* +X31529Y11355D1* +X31510Y11374D1* +X31452Y11393D1* +X31280D1* +Y10991D1* +X31414Y11202D2* +X31548Y10991D1* +X31939Y11336D2* +X31901Y11374D1* +X31844Y11393D1* +X31767D1* +X31710Y11374D1* +X31672Y11336D1* +Y11298D1* +X31691Y11259D1* +X31710Y11240D1* +X31748Y11221D1* +X31863Y11183D1* +X31901Y11164D1* +X31920Y11144D1* +X31939Y11106D1* +Y11049D1* +X31901Y11011D1* +X31844Y10991D1* +X31767D1* +X31710Y11011D1* +X31672Y11049D1* +X32197Y11393D2* +Y10991D1* +X32063Y11393D2* +X32331D1* +X8551Y14393D2* +D71* +X8509Y14479D1* +X8422Y14565D1* +X8337Y14608D1* +X8164D1* +X8078Y14565D1* +X7992Y14479D1* +X7949Y14393D1* +X7906Y14264D1* +Y14048D1* +X7949Y13919D1* +X7992Y13833D1* +X8078Y13747D1* +X8164Y13704D1* +X8337D1* +X8422Y13747D1* +X8509Y13833D1* +X8551Y13919D1* +X8829Y14608D2* +Y13704D1* +X9346D1* +X9624Y14608D2* +Y13962D1* +X9666Y13833D1* +X9753Y13747D1* +X9882Y13704D1* +X9968D1* +X10097Y13747D1* +X10184Y13833D1* +X10226Y13962D1* +Y14608D1* +X11107Y14479D2* +X11022Y14565D1* +X10892Y14608D1* +X10720D1* +X10591Y14565D1* +X10504Y14479D1* +Y14393D1* +X10548Y14306D1* +X10591Y14264D1* +X10676Y14221D1* +X10935Y14134D1* +X11022Y14092D1* +X11064Y14048D1* +X11107Y13962D1* +Y13833D1* +X11022Y13747D1* +X10892Y13704D1* +X10720D1* +X10591Y13747D1* +X10504Y13833D1* +X11687Y14608D2* +Y13704D1* +X11385Y14608D2* +X11988D1* +X12825D2* +X12266D1* +Y13704D1* +X12825D1* +X12266Y14177D2* +X12610D1* +X13103D2* +X13490D1* +X13619Y14221D1* +X13663Y14264D1* +X13706Y14349D1* +Y14436D1* +X13663Y14521D1* +X13619Y14565D1* +X13490Y14608D1* +X13103D1* +Y13704D1* +X13404Y14177D2* +X13706Y13704D1* +X13984Y14177D2* +X14371D1* +X14500Y14221D1* +X14544Y14264D1* +X14587Y14349D1* +Y14436D1* +X14544Y14521D1* +X14500Y14565D1* +X14371Y14608D1* +X13984D1* +Y13704D1* +X14285Y14177D2* +X14587Y13704D1* +X14864Y14177D2* +X15251D1* +X15381Y14221D1* +X15425Y14264D1* +X15467Y14349D1* +Y14436D1* +X15425Y14521D1* +X15381Y14565D1* +X15251Y14608D1* +X14864D1* +Y13704D1* +X15166Y14177D2* +X15467Y13704D1* +X15788Y13790D2* +X15745Y13746D1* +X15788Y13704D1* +X15832Y13746D1* +X15788Y13790D1* +X16755Y14393D2* +X16713Y14479D1* +X16626Y14565D1* +X16540Y14608D1* +X16368D1* +X16282Y14565D1* +X16196Y14479D1* +X16153Y14393D1* +X16110Y14264D1* +Y14048D1* +X16153Y13919D1* +X16196Y13833D1* +X16282Y13747D1* +X16368Y13704D1* +X16540D1* +X16626Y13747D1* +X16713Y13833D1* +X16755Y13919D1* +X17292Y14608D2* +X17205Y14565D1* +X17120Y14479D1* +X17076Y14393D1* +X17033Y14264D1* +Y14048D1* +X17076Y13919D1* +X17120Y13833D1* +X17205Y13747D1* +X17292Y13704D1* +X17464D1* +X17550Y13747D1* +X17636Y13833D1* +X17679Y13919D1* +X17722Y14048D1* +Y14264D1* +X17679Y14393D1* +X17636Y14479D1* +X17550Y14565D1* +X17464Y14608D1* +X17292D1* +X18688Y13704D2* +Y14608D1* +X18344Y13704D1* +X18000Y14608D1* +Y13704D1* +X7092Y18915D2* +D69* +X7044Y18963D1* +X6973Y18987D1* +X6877D1* +X6805Y18963D1* +X6757Y18915D1* +Y18867D1* +X6781Y18819D1* +X6805Y18795D1* +X6853Y18772D1* +X6996Y18724D1* +X7044Y18700D1* +X7068Y18676D1* +X7092Y18628D1* +Y18556D1* +X7044Y18509D1* +X6973Y18484D1* +X6877D1* +X6805Y18509D1* +X6757Y18556D1* +X7557Y18987D2* +X7246D1* +Y18484D1* +X7557D1* +X7246Y18747D2* +X7438D1* +X8070Y18867D2* +X8046Y18915D1* +X7998Y18963D1* +X7951Y18987D1* +X7855D1* +X7807Y18963D1* +X7759Y18915D1* +X7735Y18867D1* +X7711Y18795D1* +Y18676D1* +X7735Y18604D1* +X7759Y18556D1* +X7807Y18509D1* +X7855Y18484D1* +X7951D1* +X7998Y18509D1* +X8046Y18556D1* +X8070Y18604D1* +Y18676D1* +X7951D1* +X8607Y18484D2* +X8416Y18987D1* +X8224Y18484D1* +X8296Y18652D2* +X8536D1* +X9630Y18484D2* +Y18987D1* +X9439Y18484D1* +X9248Y18987D1* +Y18484D1* +X9785Y18987D2* +Y18484D1* +X9952D1* +X10024Y18509D1* +X10072Y18556D1* +X10096Y18604D1* +X10120Y18676D1* +Y18795D1* +X10096Y18867D1* +X10072Y18915D1* +X10024Y18963D1* +X9952Y18987D1* +X9785D1* +X10760Y18724D2* +X10976D1* +X11047Y18747D1* +X11071Y18772D1* +X11095Y18819D1* +Y18891D1* +X11071Y18939D1* +X11047Y18963D1* +X10976Y18987D1* +X10760D1* +Y18484D1* +X11393Y18987D2* +X11345Y18963D1* +X11297Y18915D1* +X11273Y18867D1* +X11249Y18795D1* +Y18676D1* +X11273Y18604D1* +X11297Y18556D1* +X11345Y18509D1* +X11393Y18484D1* +X11489D1* +X11536Y18509D1* +X11584Y18556D1* +X11608Y18604D1* +X11632Y18676D1* +Y18795D1* +X11608Y18867D1* +X11584Y18915D1* +X11536Y18963D1* +X11489Y18987D1* +X11393D1* +X11786Y18747D2* +X12001D1* +X12073Y18772D1* +X12097Y18795D1* +X12121Y18843D1* +Y18891D1* +X12097Y18939D1* +X12073Y18963D1* +X12001Y18987D1* +X11786D1* +Y18484D1* +X11954Y18747D2* +X12121Y18484D1* +X12443Y18987D2* +Y18484D1* +X12276Y18987D2* +X12610D1* +X13442Y19082D2* +X13275Y18388D1* +X13586Y19082D2* +X13418Y18388D1* +X13275Y18807D2* +X13610D1* +X13251Y18663D2* +X13586D1* +X13764Y18891D2* +X13812Y18915D1* +X13884Y18986D1* +Y18484D1* +X13688Y9495D2* +X13736Y9447D1* +X13808Y9423D1* +X13903D1* +X13975Y9447D1* +X14023Y9495D1* +Y9543D1* +X13999Y9591D1* +X13975Y9614D1* +X13928Y9638D1* +X13784Y9686D1* +X13736Y9710D1* +X13712Y9734D1* +X13688Y9782D1* +Y9854D1* +X13736Y9901D1* +X13808Y9926D1* +X13903D1* +X13975Y9901D1* +X14023Y9854D1* +X13223Y9423D2* +X13534D1* +Y9926D1* +X13223D1* +X13534Y9662D2* +X13343D1* +X12710Y9543D2* +X12734Y9495D1* +X12782Y9447D1* +X12830Y9423D1* +X12925D1* +X12973Y9447D1* +X13021Y9495D1* +X13045Y9543D1* +X13069Y9614D1* +Y9734D1* +X13045Y9806D1* +X13021Y9854D1* +X12973Y9901D1* +X12925Y9926D1* +X12830D1* +X12782Y9901D1* +X12734Y9854D1* +X12710Y9806D1* +Y9734D1* +X12830D1* +X12173Y9926D2* +X12365Y9423D1* +X12556Y9926D1* +X12484Y9758D2* +X12245D1* +X11150Y9926D2* +Y9423D1* +X11341Y9926D1* +X11533Y9423D1* +Y9926D1* +X10996Y9423D2* +Y9926D1* +X10828D1* +X10756Y9901D1* +X10708Y9854D1* +X10685Y9806D1* +X10661Y9734D1* +Y9614D1* +X10685Y9543D1* +X10708Y9495D1* +X10756Y9447D1* +X10828Y9423D1* +X10996D1* +X10020Y9686D2* +X9805D1* +X9733Y9662D1* +X9709Y9638D1* +X9685Y9591D1* +Y9519D1* +X9709Y9471D1* +X9733Y9447D1* +X9805Y9423D1* +X10020D1* +Y9926D1* +X9387Y9423D2* +X9435Y9447D1* +X9483Y9495D1* +X9507Y9543D1* +X9531Y9614D1* +Y9734D1* +X9507Y9806D1* +X9483Y9854D1* +X9435Y9901D1* +X9387Y9926D1* +X9292D1* +X9244Y9901D1* +X9196Y9854D1* +X9172Y9806D1* +X9149Y9734D1* +Y9614D1* +X9172Y9543D1* +X9196Y9495D1* +X9244Y9447D1* +X9292Y9423D1* +X9387D1* +X8994Y9662D2* +X8779D1* +X8707Y9638D1* +X8683Y9614D1* +X8659Y9567D1* +Y9519D1* +X8683Y9471D1* +X8707Y9447D1* +X8779Y9423D1* +X8994D1* +Y9926D1* +X8827Y9662D2* +X8659Y9926D1* +X8337Y9423D2* +Y9926D1* +X8505Y9423D2* +X8170D1* +X7338Y9328D2* +X7505Y10021D1* +X7195Y9328D2* +X7362Y10021D1* +X7505Y9603D2* +X7171D1* +X7529Y9746D2* +X7195D1* +X6992Y9543D2* +Y9519D1* +X6968Y9471D1* +X6945Y9447D1* +X6896Y9424D1* +X6801D1* +X6753Y9447D1* +X6730Y9471D1* +X6705Y9519D1* +Y9567D1* +X6730Y9615D1* +X6777Y9686D1* +X7016Y9926D1* +X6681D1* +X22384Y18987D2* +Y18484D1* +X22551D1* +X22623Y18509D1* +X22671Y18556D1* +X22695Y18604D1* +X22719Y18676D1* +Y18795D1* +X22695Y18867D1* +X22671Y18915D1* +X22623Y18963D1* +X22551Y18987D1* +X22384D1* +X23184D2* +X22873D1* +Y18484D1* +X23184D1* +X22873Y18747D2* +X23064D1* +X23673Y18987D2* +Y18484D1* +X23338Y18987D1* +Y18484D1* +X23827Y18987D2* +Y18484D1* +X23995D1* +X24067Y18509D1* +X24115Y18556D1* +X24138Y18604D1* +X24162Y18676D1* +Y18795D1* +X24138Y18867D1* +X24115Y18915D1* +X24067Y18963D1* +X23995Y18987D1* +X23827D1* +X24317D2* +X24508Y18747D1* +Y18484D1* +X24699Y18987D2* +X24508Y18747D1* +X25340Y18724D2* +X25555D1* +X25626Y18747D1* +X25651Y18772D1* +X25674Y18819D1* +Y18891D1* +X25651Y18939D1* +X25626Y18963D1* +X25555Y18987D1* +X25340D1* +Y18484D1* +X25973Y18987D2* +X25924Y18963D1* +X25877Y18915D1* +X25853Y18867D1* +X25829Y18795D1* +Y18676D1* +X25853Y18604D1* +X25877Y18556D1* +X25924Y18509D1* +X25973Y18484D1* +X26068D1* +X26116Y18509D1* +X26164Y18556D1* +X26188Y18604D1* +X26211Y18676D1* +Y18795D1* +X26188Y18867D1* +X26164Y18915D1* +X26116Y18963D1* +X26068Y18987D1* +X25973D1* +X26366Y18747D2* +X26581D1* +X26653Y18772D1* +X26677Y18795D1* +X26701Y18843D1* +Y18891D1* +X26677Y18939D1* +X26653Y18963D1* +X26581Y18987D1* +X26366D1* +Y18484D1* +X26533Y18747D2* +X26701Y18484D1* +X27022Y18987D2* +Y18484D1* +X26855Y18987D2* +X27190D1* +X28022Y19082D2* +X27855Y18388D1* +X28165Y19082D2* +X27998Y18388D1* +X27855Y18807D2* +X28189D1* +X27830Y18663D2* +X28165D1* +X28343Y18891D2* +X28392Y18915D1* +X28463Y18986D1* +Y18484D1* +X28303Y9361D2* +Y9863D1* +X28136D1* +X28064Y9839D1* +X28016Y9791D1* +X27992Y9743D1* +X27968Y9672D1* +Y9552D1* +X27992Y9480D1* +X28016Y9432D1* +X28064Y9384D1* +X28136Y9361D1* +X28303D1* +X27503D2* +X27814D1* +Y9863D1* +X27503D1* +X27814Y9600D2* +X27623D1* +X27014Y9361D2* +Y9863D1* +X27349Y9361D1* +Y9863D1* +X26860Y9361D2* +Y9863D1* +X26692D1* +X26620Y9839D1* +X26572Y9791D1* +X26549Y9743D1* +X26525Y9672D1* +Y9552D1* +X26549Y9480D1* +X26572Y9432D1* +X26620Y9384D1* +X26692Y9361D1* +X26860D1* +X26370D2* +X26179Y9600D1* +Y9863D1* +X25988Y9361D2* +X26179Y9600D1* +X25347Y9624D2* +X25132D1* +X25061Y9600D1* +X25036Y9576D1* +X25013Y9528D1* +Y9456D1* +X25036Y9409D1* +X25061Y9384D1* +X25132Y9361D1* +X25347D1* +Y9863D1* +X24714Y9361D2* +X24763Y9384D1* +X24810Y9432D1* +X24834Y9480D1* +X24858Y9552D1* +Y9672D1* +X24834Y9743D1* +X24810Y9791D1* +X24763Y9839D1* +X24714Y9863D1* +X24619D1* +X24571Y9839D1* +X24523Y9791D1* +X24499Y9743D1* +X24476Y9672D1* +Y9552D1* +X24499Y9480D1* +X24523Y9432D1* +X24571Y9384D1* +X24619Y9361D1* +X24714D1* +X24321Y9600D2* +X24106D1* +X24034Y9576D1* +X24010Y9552D1* +X23986Y9504D1* +Y9456D1* +X24010Y9409D1* +X24034Y9384D1* +X24106Y9361D1* +X24321D1* +Y9863D1* +X24154Y9600D2* +X23986Y9863D1* +X23665Y9361D2* +Y9863D1* +X23832Y9361D2* +X23497D1* +X22665Y9265D2* +X22832Y9959D1* +X22522Y9265D2* +X22689Y9959D1* +X22832Y9540D2* +X22498D1* +X22857Y9684D2* +X22522D1* +X22319Y9481D2* +Y9457D1* +X22295Y9409D1* +X22272Y9385D1* +X22224Y9361D1* +X22128D1* +X22080Y9385D1* +X22057Y9409D1* +X22032Y9457D1* +Y9504D1* +X22057Y9552D1* +X22104Y9624D1* +X22344Y9863D1* +X22009D1* +M02* diff --git a/board/nessmd2usb.dip b/board/nessmd2usb.dip new file mode 100644 index 0000000..da85a14 Binary files /dev/null and b/board/nessmd2usb.dip differ diff --git a/board/~nessmd2usb.dip~ b/board/~nessmd2usb.dip~ new file mode 100644 index 0000000..d847d8a --- /dev/null +++ b/board/~nessmd2usb.dip~ @@ -0,0 +1,3 @@ +CLUSTER-MAIN +Cluster +23.04.2016 21:29:56 diff --git a/defines.h b/defines.h new file mode 100644 index 0000000..2ebf2a2 --- /dev/null +++ b/defines.h @@ -0,0 +1,30 @@ +#define SMD_ENABLED +#define SMD_SECOND_ENABLED +#define SMD_SELECT_PORT D +#define SMD_SELECT_PIN 6 +#define SMD_DATA_PORT D +#define SMD_DATA0_PIN 0 +#define SMD_DATA1_PIN 1 +#define SMD_DATA2_PIN 2 +#define SMD_DATA3_PIN 3 +#define SMD_DATA4_PIN 4 +#define SMD_DATA5_PIN 5 +#define SMD_DATA_PORT2 B +#define SMD_DATA0_PIN2 0 +#define SMD_DATA1_PIN2 1 +#define SMD_DATA2_PIN2 2 +#define SMD_DATA3_PIN2 3 +#define SMD_DATA4_PIN2 4 +#define SMD_DATA5_PIN2 5 + +#define NES_ENABLED +#define NES_SECOND_ENABLED +#define NES_PORT C +#define NES_LATCH_PIN 4 +#define NES_CLOCK_PIN 5 +#define NES_DATA_PIN 6 +#define NES_DATA_PIN2 7 + +#define LED_PORT B +#define LED_RED_PIN 6 +#define LED_GREEN_PIN 7 diff --git a/doxyfile b/doxyfile new file mode 100644 index 0000000..a48265c --- /dev/null +++ b/doxyfile @@ -0,0 +1,2364 @@ +# Doxyfile 1.8.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "LUFA Library - Joystick Device Demo" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./Documentation/ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = NO + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. +# Note: If this tag is empty the current directory is searched. + +INPUT = ./ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. + +FILE_PATTERNS = *.h \ + *.c \ + *.txt + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = Documentation/ + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = __* \ + INCLUDE_FROM_* + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER ) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = NO + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# compiled with the --with-libclang option. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra stylesheet files is of importance (e.g. the last +# stylesheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the stylesheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = YES + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = YES + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = YES + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 1 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /