From c5695ab11e83f2d76f0fc0eca044dd06e8323a79 Mon Sep 17 00:00:00 2001 From: Milan Prochac Date: Fri, 29 Jul 2016 22:15:46 +0200 Subject: [PATCH] Buried vias --- doc/pcb.texi | 19 +- src/action.c | 202 +- src/buffer.c | 4 +- src/change.c | 127 + src/change.h | 2 + src/const.h | 1 + src/copy.c | 4 +- src/create.c | 40 + src/create.h | 1 + src/draw.c | 135 +- src/draw.h | 2 +- src/file.c | 9 + src/file.h | 3 +- src/find.c | 43 + src/flags.c | 1 + src/global.h | 5 +- src/gpcb-menu.res.in | 16 +- src/hid/common/flags.c | 10 + src/hid/gerber/gerber.c | 6 +- src/hid/hidint.h | 1 + src/hid/ps/ps.c | 12 +- src/macro.h | 3 + src/main.c | 10 + src/misc.c | 302 ++- src/misc.h | 14 + src/move.c | 32 +- src/parse_y.y | 14 +- src/polygon.c | 31 +- src/remove.c | 14 + src/remove.h | 1 + src/report.c | 16 + src/search.c | 25 + src/search.h | 2 +- src/select.c | 24 + src/select.h | 1 + src/strflags.c | 1 + src/undo.c | 73 +- src/undo.h | 1 + tests/golden/hid_gerber4/buried.bottom.gbr | 17 + tests/golden/hid_gerber4/buried.fab.gbr | 2092 +++++++++++++++ tests/golden/hid_gerber4/buried.group2.gbr | 22 + tests/golden/hid_gerber4/buried.group4.gbr | 21 + tests/golden/hid_gerber4/buried.group7.gbr | 22 + tests/golden/hid_gerber4/buried.plated-drill.cnc | 7 + .../hid_gerber4/buried.plated-drill_03-08.cnc | 8 + tests/golden/hid_gerber4/buried.top.gbr | 17 + tests/golden/hid_ps2/buried.ps | 2674 ++++++++++++++++++++ tests/inputs/buried.pcb | 836 ++++++ tests/tests.list | 2 + 49 files changed, 6869 insertions(+), 56 deletions(-) create mode 100644 tests/golden/hid_gerber4/buried.bottom.gbr create mode 100644 tests/golden/hid_gerber4/buried.fab.gbr create mode 100644 tests/golden/hid_gerber4/buried.group2.gbr create mode 100644 tests/golden/hid_gerber4/buried.group4.gbr create mode 100644 tests/golden/hid_gerber4/buried.group7.gbr create mode 100644 tests/golden/hid_gerber4/buried.plated-drill.cnc create mode 100644 tests/golden/hid_gerber4/buried.plated-drill_03-08.cnc create mode 100644 tests/golden/hid_gerber4/buried.top.gbr create mode 100644 tests/golden/hid_ps2/buried.ps create mode 100644 tests/inputs/buried.pcb diff --git a/doc/pcb.texi b/doc/pcb.texi index b813ced..b395b00 100644 --- a/doc/pcb.texi +++ b/doc/pcb.texi @@ -304,9 +304,15 @@ and also appear in the unplated drill file. @emph{Ctrl-H} key over a via switches it between being a pure-mounting hole and a regular via. You can assign a name to a via, which is useful during the creation of new element definitions. -Each via exists on all copper layers. (@emph{i.e.} -blind and buried vias are not supported) +Blind and buried vias are supported. Blind and buried vias exist only +on specified layer range. The first and last layer can be assigned using +appropriate action, menu item or keys: @emph{Ctrl-Shift-F} to set active +layer as first layer, @emph{Ctrl-Shift-T} to set last layer and +@emph{Ctrl-Shift-P} to convert via to through-hole. + +Blind and buried vias have colored half-circles drawn on top to designate +first and last layer.. @node Element Objects @section Elements @@ -546,7 +552,8 @@ point you can delete the intermediate point, otherwise the delete tool removes a Feel free to experiment since @pcb{} will allow you to undo and redo anything that materially affects your work. If you switch active layers in the midst of placing lines a via will automatically be -placed, when necessary, in order to continue the connection. +placed, when necessary, in order to continue the connection. The via can be through-hole via or +buried/blind via; the via type is controlled by option @emph{Auto buried vias}. @cindex clearance If you draw a line inside a polygon, it will either plow through the @@ -1539,6 +1546,12 @@ the layers and so place them where they won't interfere with connectivity. You can convert a hole back into a normal via with the same keystroke used to convert it in the first place. +The via can be converted to blind or buried via using +appropriate action, menu item or keys: @emph{Ctrl-Shift-F} to set active +layer as first layer, @emph{Ctrl-Shift-T} to set last layer and +@emph{Ctrl-Shift-P} to convert via back to through-hole via. + + @node Elements @subsection Elements @cindex element, an example diff --git a/src/action.c b/src/action.c index cac8dbb..6a00cd2 100644 --- a/src/action.c +++ b/src/action.c @@ -211,7 +211,10 @@ typedef enum F_Value, F_ViaDrillingHole, F_ViaSize, - F_Zoom + F_Zoom, + F_ThroughHole, + F_BuriedVias, + F_ToggleAutoBuriedVias } FunctionID; @@ -446,7 +449,11 @@ static FunctionType Functions[] = { {"ViaByName", F_ViaByName}, {"ViaSize", F_ViaSize}, {"ViaDrillingHole", F_ViaDrillingHole}, - {"Zoom", F_Zoom} + {"Zoom", F_Zoom}, + {"ThroughHole", F_ThroughHole}, + {"TH", F_ThroughHole}, + {"BuriedVias", F_BuriedVias}, + {"ToggleAutoBuriedVias", F_ToggleAutoBuriedVias} }; /* --------------------------------------------------------------------------- @@ -1270,6 +1277,7 @@ NotifyMode (void) Crosshair.AttachedLine.Point2.Y)) { PinType *via; + Cardinal layer_from, layer_to; if ((line = CreateDrawnLineOnLayer (CURRENT, @@ -1281,7 +1289,6 @@ NotifyMode (void) 2 * Settings.Keepaway, MakeFlags (line_flags))) != NULL) { - addedLines++; AddObjectToCreateUndoList (LINE_TYPE, CURRENT, line, line); DrawLine (CURRENT, line); @@ -1289,6 +1296,17 @@ NotifyMode (void) /* place a via if vias are visible, the layer is in a new group since the last line and there isn't a pin already here */ + if (TEST_FLAG (AUTOBURIEDVIASFLAG, PCB)) + { + layer_from = GetLayerNumber (PCB->Data, lastLayer); + layer_to = GetLayerNumber (PCB->Data, CURRENT); + } + else + { + layer_from = 0; + layer_to = 0; + } + if (PCB->ViaOn && GetLayerGroupNumberByPointer (CURRENT) != GetLayerGroupNumberByPointer (lastLayer) && SearchObjectByLocation (PIN_TYPES, &ptr1, &ptr2, &ptr3, @@ -1297,13 +1315,13 @@ NotifyMode (void) Settings.ViaThickness / 2) == NO_TYPE && (via = - CreateNewVia (PCB->Data, + CreateNewViaEx (PCB->Data, Crosshair.AttachedLine.Point1.X, Crosshair.AttachedLine.Point1.Y, Settings.ViaThickness, 2 * Settings.Keepaway, 0, Settings.ViaDrillingHole, NULL, - NoFlags ())) != NULL) + NoFlags (), layer_from, layer_to)) != NULL) { AddObjectToCreateUndoList (VIA_TYPE, via, via, via); DrawVia (via); @@ -2627,6 +2645,9 @@ Toggles whether the names of pins, pads, or (yes) vias will be displayed. If the cursor is over an element, all of its pins and pads are affected. +@item ToggleAutoBuriedVias +If set, automatically created vias are buried vias. + @end table %end-doc */ @@ -2735,6 +2756,12 @@ ActionDisplay (int argc, char **argv, Coord childX, Coord childY) notify_crosshair_change (true); break; + case F_ToggleAutoBuriedVias: + notify_crosshair_change (false); + TOGGLE_FLAG (AUTOBURIEDVIASFLAG, PCB); + notify_crosshair_change (true); + break; + case F_ToggleStartDirection: notify_crosshair_change (false); TOGGLE_FLAG (SWAPSTARTDIRFLAG, PCB); @@ -5351,7 +5378,7 @@ ActionChangePaste (int argc, char **argv, Coord x, Coord y) static const char select_syntax[] = N_("Select(Object|ToggleObject)\n" - "Select(All|Block|Connection)\n" + "Select(All|Block|Connection|BuriedVias)\n" "Select(ElementByName|ObjectByName|PadByName|PinByName)\n" "Select(ElementByName|ObjectByName|PadByName|PinByName, Name)\n" "Select(TextByName|ViaByName|NetByName)\n" @@ -5393,6 +5420,9 @@ Selects all connections with the ``found'' flag set. @item Connection Selects all connections with the ``connected'' flag set. +@item Connection +Selects all blind and buried vias. + @item Convert Converts the selected objects to an element. This uses the highest numbered paste buffer. @@ -5517,6 +5547,15 @@ ActionSelect (int argc, char **argv, Coord x, Coord y) } break; + case F_BuriedVias: + if (SelectBuriedVias (true)) + { + Draw (); + IncrementUndoSerialNumber (); + SetChangedFlag (true); + } + break; + case F_Convert: { Coord x, y; @@ -8085,6 +8124,154 @@ ActionAttributes (int argc, char **argv, Coord x, Coord y) /* --------------------------------------------------------------------------- */ +static const char setvialayers_syntax[] = + N_("SetViaLayers(Object|SelectedVias|Selected[,ThroughHole|TH])\n" + "SetViaLayers(Object|SelectedVias|Selected,from,to)\n" + "SetViaLayers(Object|SelectedVias|Selected,[c|-|from],[c|-|to])" + ); + +static const char setvialayers_help[] = + N_("Sets starting and ending layer for burried/blind/standard vias."); + +/* %start-doc actions setvialayers + +Specifies layers, which are connected by via. + +@table @code + +@item TH|ThroughHole +The vias will be set as through-hole, connecting all layers + +@item from +layer name or layer number of the first layer to be connected by via; "-" stands for unchanged, "c" stands for currently selected layer + +@item to +layer name or layer number of the last layer to be connected by via; "-" stands for unchanged, "c" stands for currently selected layer + +@end table + +If no parameter us used, dialog is displayed (if implemented in the respective GUI HID). + + +%end-doc */ + +static bool +identify_layer (char *layer_name, Cardinal *layer_no) +{ + int layer; + + if (strcmp (layer_name, "-") == 0) + { + *layer_no = -1; + return true; + } + + if (strcmp (layer_name, "c") == 0) + { + if ((unsigned int)INDEXOFCURRENT < max_copper_layer) + { + *layer_no = INDEXOFCURRENT; + return true; + } + } + + layer = SearchLayerByName (PCB->Data, layer_name); + if (layer == -1) + { + if (sscanf (layer_name, "%d", &layer) != 1) + layer = -1; + } + + if (layer != -1) + *layer_no = layer; + + return (layer != -1); +} + +static int +ActionSetViaLayers (int argc, char **argv, Coord x, Coord y) +{ + char *function = ARG (0); + char *layername_from = ARG (1); + char *layername_to = ARG (2); + Cardinal layer_from ; + Cardinal layer_to = -1; + + if (!function) + AFAIL (setvialayers); + + if ( /* !gui->edit_attributes &&*/ argc < 2) + { + Message (_("This GUI doesn't support Via Layers editing\n")); + return 1; + } + + if (GetFunctionID (layername_from) == F_ThroughHole) + { + layer_from = 0; + layer_to = 0; + } + else + { + if (!identify_layer (layername_from, &layer_from) + || !identify_layer (layername_to, &layer_to)) + { + Message (_("Sorry, wrong layers specified.\n")); + return 1; + } + } + + /* ensure that layer_from < layer_to */ + if (layer_from != -1 + && layer_to != -1 + && layer_from > layer_to) + { + int tmp; + + tmp = layer_from; + layer_from = layer_to; + layer_to = tmp; + } + + if (layer_to != -1) + layer_to = min (layer_to, max_copper_layer-1); + + switch (GetFunctionID (function)) + { + case F_Object: + { + int type; + void *ptr1, *ptr2, *ptr3; + + if ((type = + SearchScreen (Crosshair.X, Crosshair.Y, VIA_TYPE, + &ptr1, &ptr2, &ptr3)) != NO_TYPE) + { + if (TEST_FLAG (LOCKFLAG, (PinType *) ptr1)) + Message (_("Sorry, the object is locked\n")); + else + { + if (ChangeObjectViaLayers (ptr1, ptr2, ptr3, layer_from, layer_to)) + { + SetChangedFlag (true); + } + } + } + break; + case F_SelectedVias: + case F_Selected: + if (ChangeSelectedViaLayers (layer_from, layer_to)) + { + SetChangedFlag (true); + } + break; + } + } + + return 0; +} +/* --------------------------------------------------------------------------- */ + HID_Action action_action_list[] = { {"AddRats", 0, ActionAddRats, addrats_help, addrats_syntax} @@ -8274,6 +8461,9 @@ HID_Action action_action_list[] = { {"Import", 0, ActionImport, import_help, import_syntax} , + {"SetViaLayers", 0, ActionSetViaLayers, + setvialayers_help, setvialayers_syntax} + , }; REGISTER_ACTIONS (action_action_list) diff --git a/src/buffer.c b/src/buffer.c index 3b5f6c3..4ffce3a 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -121,9 +121,9 @@ static int ExtraFlag = 0; static void * AddViaToBuffer (PinType *Via) { - return (CreateNewVia (Dest, Via->X, Via->Y, Via->Thickness, Via->Clearance, + return (CreateNewViaEx (Dest, Via->X, Via->Y, Via->Thickness, Via->Clearance, Via->Mask, Via->DrillingHole, Via->Name, - MaskFlags (Via->Flags, NOCOPY_FLAGS | ExtraFlag))); + MaskFlags (Via->Flags, NOCOPY_FLAGS | ExtraFlag), Via->BuriedFrom, Via->BuriedTo)); } /*! diff --git a/src/change.c b/src/change.c index 823f3b2..b48e82d 100644 --- a/src/change.c +++ b/src/change.c @@ -1718,6 +1718,71 @@ ChangeSelectedThermals (int types, int therm_style) return (change); } + +/*! + * \brief Changes the thermals on all selected and visible pins and/or + * vias. + * + * \return True if anything has changed. + */ +bool +ChangeSelectedViaLayers (int from, int to) +{ + bool change = false; + int new_from; + int new_to; + int i; + + VIA_LOOP (PCB->Data); + { + if (TEST_FLAG (LOCKFLAG, via)) + continue; + if (TEST_FLAG (SELECTEDFLAG, via)) + { + + new_from = (from != -1)?from:via->BuriedFrom; + new_to = (to != -1)?to:via->BuriedTo; + + if (new_from == new_to) + continue; + + /* special case - changing TH via "from" layer sets "to" layer to bottom layer */ + if (!VIA_IS_BURIED (via) + && (to == -1)) + new_to = GetMaxBottomLayer (); + + for (i=0; i < max_copper_layer; i++) + { + /* AddObjectToClearPolyUndoList (VIA_TYPE, &(PCB->Data->Layer[i]), via, via, false); not needed? */ + RestoreToPolygon (PCB->Data, VIA_TYPE, &(PCB->Data->Layer[i]), via); + } + + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom = new_from; + via->BuriedTo = new_to; + + if (VIA_IS_BURIED (via)) + { + SanitizeBuriedVia (via); + for (i=0; i < max_copper_layer; i++) + { + /* AddObjectToClearPolyUndoList (VIA_TYPE, &(PCB->Data->Layer[i]), via, via, true); not needed? */ + ClearFromPolygon (PCB->Data, VIA_TYPE, &(PCB->Data->Layer[i]), via); + } + DrawVia (via); + } + change = true; + } + } + END_LOOP; + if (change) + { + Draw (); + IncrementUndoSerialNumber (); + } + return (change); +} + /*! * \brief Changes the size of all selected and visible object types. * @@ -2097,6 +2162,68 @@ ChangeObjectThermal (int Type, void *Ptr1, void *Ptr2, void *Ptr3, } /*! + * \brief Changes the thermal of the passed object. + * + * \return True if anything is changed. + * + */ +bool +ChangeObjectViaLayers (void *Ptr1, void *Ptr2, void *Ptr3, + int from, int to) +{ + bool change = false; + PinType *via = (PinType *) Ptr1; + int new_from = (from != -1)?from:via->BuriedFrom; + int new_to = (to != -1)?to:via->BuriedTo; + int i; + + if (TEST_FLAG (LOCKFLAG, via)) + return (NULL); + + if ((new_from == new_to) + && new_from != 0) + return false; + + /* special case - changing TH via "from" layer sets "to" layer to bottom layer */ + if (!VIA_IS_BURIED (via) + && (to == -1)) + new_to = GetMaxBottomLayer (); + + for (i=0; i < max_copper_layer; i++) + { + /* AddObjectToClearPolyUndoList (VIA_TYPE, &(PCB->Data->Layer[i]), via, via, false); not needed? */ + RestoreToPolygon (PCB->Data, VIA_TYPE, &(PCB->Data->Layer[i]), via); + } + + if (from != -1 || to != -1) + { + AddObjectToSetViaLayersUndoList (via, via, via); + change = true; + } + + via->BuriedFrom = new_from; + via->BuriedTo = new_to; + + if (VIA_IS_BURIED (via)) + { + SanitizeBuriedVia (via); + for (i=0; i < max_copper_layer; i++) + { + /* AddObjectToClearPolyUndoList (VIA_TYPE, &(PCB->Data->Layer[i]), via, via, true); not needed? */ + ClearFromPolygon (PCB->Data, VIA_TYPE, &(PCB->Data->Layer[i]), via); + } + DrawVia (via); + } + + if (change) + { + Draw (); + IncrementUndoSerialNumber (); + } + return (change); +} + +/*! * \brief Changes the 2nd size of the passed object. * * \return True if anything is changed. diff --git a/src/change.h b/src/change.h index 29e9501..d8041f8 100644 --- a/src/change.h +++ b/src/change.h @@ -80,6 +80,7 @@ bool ChangeSelectedSquare (int); bool SetSelectedSquare (int); bool ClrSelectedSquare (int); bool ChangeSelectedThermals (int, int); +bool ChangeSelectedViaLayers (int, int); bool ChangeSelectedHole (void); bool ChangeSelectedPaste (void); bool ChangeSelectedOctagon (int); @@ -91,6 +92,7 @@ bool ChangeHole (PinType *); bool ChangePaste (PadType *); bool ChangeObjectSize (int, void *, void *, void *, Coord, bool); bool ChangeObjectThermal (int, void *, void *, void *, int); +bool ChangeObjectViaLayers (void *, void *, void *, int, int); bool ChangeObjectClearSize (int, void *, void *, void *, Coord, bool); bool ChangeObject2ndSize (int, void *, void *, void *, Coord, diff --git a/src/const.h b/src/const.h index 3798251..2edcbbb 100644 --- a/src/const.h +++ b/src/const.h @@ -354,6 +354,7 @@ When set, element names are not drawn. #define ONLYNAMESFLAG 0x00080000 #define NEWFULLPOLYFLAG 0x00100000 #define HIDENAMESFLAG 0x00200000 +#define AUTOBURIEDVIASFLAG 0x00400000 /* --------------------------------------------------------------------------- * object types diff --git a/src/copy.c b/src/copy.c index 81b14a7..0bfbbcd 100644 --- a/src/copy.c +++ b/src/copy.c @@ -190,10 +190,10 @@ CopyVia (PinType *Via) { PinType *via; - via = CreateNewVia (PCB->Data, Via->X + DeltaX, Via->Y + DeltaY, + via = CreateNewViaEx (PCB->Data, Via->X + DeltaX, Via->Y + DeltaY, Via->Thickness, Via->Clearance, Via->Mask, Via->DrillingHole, Via->Name, - MaskFlags (Via->Flags, NOCOPY_FLAGS)); + MaskFlags (Via->Flags, NOCOPY_FLAGS), Via->BuriedFrom, Via->BuriedTo); if (!via) return (via); DrawVia (via); diff --git a/src/create.c b/src/create.c index 6a7a972..d41b456 100644 --- a/src/create.c +++ b/src/create.c @@ -189,6 +189,8 @@ CreateNewPCB (void) SET_FLAG (SHOWDRCFLAG, ptr); if (Settings.AutoDRC) SET_FLAG (AUTODRCFLAG, ptr); + if (Settings.AutoBuriedVias) + SET_FLAG (AUTOBURIEDVIASFLAG, ptr); ptr->Grid = Settings.Grid; ptr->LayerGroups = Settings.LayerGroups; STYLE_LOOP (ptr); @@ -290,6 +292,8 @@ CreateNewVia (DataType *Data, Via->Name = STRDUP (Name); Via->Flags = Flags; + Via->BuriedFrom = 0; + Via->BuriedTo = 0; CLEAR_FLAG (WARNFLAG, Via); SET_FLAG (VIAFLAG, Via); Via->ID = ID++; @@ -314,6 +318,42 @@ CreateNewVia (DataType *Data, return (Via); } +/*! + * * \brief Creates a new via with buried info. + * */ +PinType * +CreateNewViaEx (DataType *Data, + Coord X, Coord Y, + Coord Thickness, Coord Clearance, Coord Mask, + Coord DrillingHole, char *Name, FlagType Flags, + Cardinal buried_from, Cardinal buried_to) +{ + PinType *Via; + + Via = CreateNewVia (Data, X, Y, Thickness, Clearance, Mask, + DrillingHole, Name, Flags); + if (Via) + { + if (buried_from == buried_to) + { + Via->BuriedFrom = 0; + Via->BuriedTo = 0; + } + else if (buried_from <= buried_to) + { + Via->BuriedFrom = buried_from; + Via->BuriedTo = buried_to; + } + else + { + Via->BuriedFrom = buried_to; + Via->BuriedTo = buried_from; + } + } + return Via; +} + + struct line_info { Coord X1, X2, Y1, Y2; diff --git a/src/create.h b/src/create.h index db043c3..c61dfcd 100644 --- a/src/create.h +++ b/src/create.h @@ -42,6 +42,7 @@ void pcb_colors_from_settings (PCBType *); PCBType * CreateNewPCB (); int CreateNewPCBPost (PCBType *, int /* set defaults */); PinType * CreateNewVia (DataType *, Coord, Coord, Coord, Coord, Coord, Coord, char *, FlagType); +PinType * CreateNewViaEx (DataType *, Coord, Coord, Coord, Coord, Coord, Coord, char *, FlagType, Cardinal buried_from, Cardinal buried_to); LineType * CreateDrawnLineOnLayer (LayerType *, Coord, Coord, Coord, Coord, Coord, Coord, FlagType); LineType * CreateNewLineOnLayer (LayerType *, Coord, Coord, Coord, Coord, Coord, Coord, FlagType); RatType * CreateNewRat (DataType *, Coord, Coord, Coord, Coord, Cardinal, Cardinal, Coord, FlagType); diff --git a/src/draw.c b/src/draw.c index 00966af..b134cb0 100644 --- a/src/draw.c +++ b/src/draw.c @@ -77,6 +77,8 @@ static BoxType Block = {MAXINT, MAXINT, -MAXINT, -MAXINT}; static int doing_pinout = 0; static bool doing_assy = false; +static int current_layergroup; /* used by via_callback */ + /* --------------------------------------------------------------------------- * some local prototypes */ @@ -190,8 +192,28 @@ _draw_pv (PinType *pv, bool draw_hole) { if (TEST_FLAG (THINDRAWFLAG, PCB)) gui->graphics->thindraw_pcb_pv (Output.fgGC, Output.fgGC, pv, draw_hole, false); + else if (!ViaIsOnAnyVisibleLayer (pv)) + gui->graphics->thindraw_pcb_pv (Output.fgGC, Output.fgGC, pv, false, false); else - gui->graphics->fill_pcb_pv (Output.fgGC, Output.bgGC, pv, draw_hole, false); + { + gui->graphics->fill_pcb_pv (Output.fgGC, Output.bgGC, pv, draw_hole, false); + if (gui->gui + && VIA_IS_BURIED (pv) + && !(TEST_FLAG (SELECTEDFLAG, pv) + || TEST_FLAG (CONNECTEDFLAG, pv) + || TEST_FLAG (FOUNDFLAG, pv))) + { + int w = (pv->Thickness - pv->DrillingHole) / 4; + int r = pv->DrillingHole / 2 + w / 2; + gui->graphics->set_line_cap (Output.fgGC, Square_Cap); + gui->graphics->set_color (Output.fgGC, PCB->Data->Layer[pv->BuriedFrom].Color); + gui->graphics->set_line_width (Output.fgGC, w); + gui->graphics->draw_arc (Output.fgGC, pv->X, pv->Y, r, r, 270, 180); + gui->graphics->set_color (Output.fgGC, PCB->Data->Layer[pv->BuriedTo].Color); + gui->graphics->set_line_width (Output.fgGC, w); + gui->graphics->draw_arc (Output.fgGC, pv->X, pv->Y, r, r, 90, 170); + } + } if ((!TEST_FLAG (HOLEFLAG, pv) && TEST_FLAG (DISPLAYNAMEFLAG, pv)) || doing_pinout) _draw_pv_name (pv); @@ -230,10 +252,23 @@ draw_via (PinType *via, bool draw_hole) _draw_pv (via, draw_hole); } +static bool +via_visible_on_layer_group (PinType *via) +{ + if (current_layergroup == -1) + return true; + else + return ViaIsOnLayerGroup (via, current_layergroup); +} + static int via_callback (const BoxType * b, void *cl) { - draw_via ((PinType *)b, false); + PinType *via = (PinType *)b; + + if (via_visible_on_layer_group (via)) + draw_via (via, false); + return 1; } @@ -376,16 +411,51 @@ EMark_callback (const BoxType * b, void *cl) return 1; } +typedef struct +{ + int plated; + bool drill_pair; + Cardinal group_from; + Cardinal group_to; +} hole_info; + static int hole_callback (const BoxType * b, void *cl) { + hole_info his = {-1, false, 0, 0}; + hole_info *hi = &his; PinType *pv = (PinType *) b; - int plated = cl ? *(int *) cl : -1; - if ((plated == 0 && !TEST_FLAG (HOLEFLAG, pv)) || - (plated == 1 && TEST_FLAG (HOLEFLAG, pv))) + if (cl) + hi = (hole_info *)cl; + + if (hi->drill_pair) + { + if (hi->group_from != 0 + || hi->group_to != 0) + { + if (VIA_IS_BURIED (pv)) + { + if (hi->group_from == GetLayerGroupNumberByNumber (pv->BuriedFrom) + && hi->group_to == GetLayerGroupNumberByNumber (pv->BuriedTo)) + goto via_ok; + } + } + else + if (!VIA_IS_BURIED (pv)) + goto via_ok; + + return 1; + } + +via_ok: + if ((hi->plated == 0 && !TEST_FLAG (HOLEFLAG, pv)) || + (hi->plated == 1 && TEST_FLAG (HOLEFLAG, pv))) return 1; + if (!via_visible_on_layer_group (pv)) + return 1; + if (TEST_FLAG (THINDRAWFLAG, PCB)) { if (!TEST_FLAG (HOLEFLAG, pv)) @@ -398,7 +468,16 @@ hole_callback (const BoxType * b, void *cl) } } else - gui->graphics->fill_circle (Output.bgGC, pv->X, pv->Y, pv->DrillingHole / 2); + if (ViaIsOnAnyVisibleLayer (pv)) + gui->graphics->fill_circle (Output.bgGC, pv->X, pv->Y, pv->DrillingHole / 2); + else + { + gui->graphics->set_line_cap (Output.fgGC, Round_Cap); + gui->graphics->set_line_width (Output.fgGC, 0); + gui->graphics->draw_arc (Output.fgGC, + pv->X, pv->Y, pv->DrillingHole / 2, + pv->DrillingHole / 2, 0, 360); + } if (TEST_FLAG (HOLEFLAG, pv)) { @@ -416,15 +495,17 @@ hole_callback (const BoxType * b, void *cl) } void -DrawHoles (bool draw_plated, bool draw_unplated, const BoxType *drawn_area) +DrawHoles (bool draw_plated, bool draw_unplated, const BoxType *drawn_area, Cardinal g_from, Cardinal g_to) { - int plated = -1; + hole_info hi = {-1, true, g_from, g_to}; - if ( draw_plated && !draw_unplated) plated = 1; - if (!draw_plated && draw_unplated) plated = 0; + if ( draw_plated && !draw_unplated) hi.plated = 1; + if (!draw_plated && draw_unplated) hi.plated = 0; - r_search (PCB->Data->pin_tree, drawn_area, NULL, hole_callback, &plated); - r_search (PCB->Data->via_tree, drawn_area, NULL, hole_callback, &plated); + current_layergroup = -1; + + r_search (PCB->Data->pin_tree, drawn_area, NULL, hole_callback, &hi); + r_search (PCB->Data->via_tree, drawn_area, NULL, hole_callback, &hi); } static int @@ -548,6 +629,8 @@ DrawEverything (const BoxType *drawn_area) int drawn_groups[MAX_GROUP]; int plated, unplated; bool paste_empty; + int g_from, g_to; + char s[22]; PCB->Data->SILKLAYER.Color = PCB->ElementColor; PCB->Data->BACKSILKLAYER.Color = PCB->InvisibleObjectsColor; @@ -608,15 +691,36 @@ DrawEverything (const BoxType *drawn_area) if (plated && gui->set_layer ("plated-drill", SL (PDRILL, 0), 0)) { - DrawHoles (true, false, drawn_area); + DrawHoles (true, false, drawn_area, 0, 0); gui->end_layer (); } if (unplated && gui->set_layer ("unplated-drill", SL (UDRILL, 0), 0)) { - DrawHoles (false, true, drawn_area); + DrawHoles (false, true, drawn_area, 0, 0); gui->end_layer (); } + + for (g_from = 0; g_from < (max_group - 1); g_from++) + for (g_to = g_from+1 ; g_to < max_group; g_to++ ) + { + CountHolesEx (&plated, &unplated, drawn_area, g_from, g_to); + sprintf (s, "plated-drill_%02d-%02d", g_from+1, g_to+1); + if (plated && gui->set_layer (s, SL (PDRILL, 0), 0)) + { + DrawHoles (true, false, drawn_area, g_from, g_to); + gui->end_layer (); + } + + sprintf (s, "unplated-drill_%02d-%02d", g_from+1, g_to+1); + if (unplated && gui->set_layer (s, SL (UDRILL, 0), 0)) + { + DrawHoles (false, true, drawn_area, g_from, g_to); + gui->end_layer (); + } + } + + } /* Draw the solder mask if turned on */ @@ -767,6 +871,9 @@ DrawPPV (int group, const BoxType *drawn_area) /* draw vias */ if (PCB->ViaOn || !gui->gui) { + + current_layergroup = (gui->gui)?(-1):group; /* Limit vias only for layer group */ + r_search (PCB->Data->via_tree, drawn_area, NULL, via_callback, NULL); r_search (PCB->Data->via_tree, drawn_area, NULL, hole_callback, NULL); } diff --git a/src/draw.h b/src/draw.h index fe78b41..26901d2 100644 --- a/src/draw.h +++ b/src/draw.h @@ -74,7 +74,7 @@ void DrawLayerGroup (int side, const BoxType *drawn_area); void DrawPaste (int side, const BoxType *drawn_area); void DrawSilk (int side, const BoxType *drawn_area); void DrawMask (int side, const BoxType *drawn_area); -void DrawHoles (bool draw_plated, bool draw_unplated, const BoxType *drawn_area); +void DrawHoles (bool draw_plated, bool draw_unplated, const BoxType *drawn_area, Cardinal g_from, Cardinal g_to); void PrintAssembly (int side, const BoxType *drawn_area); #endif diff --git a/src/file.c b/src/file.c index 91b4a8e..4f83ef8 100644 --- a/src/file.c +++ b/src/file.c @@ -157,6 +157,8 @@ static int LoadNewlibFootprintsFromDir(char *path, char *toppath, bool recursive */ +#define PCB_FILE_VERSION_BURIED_VIAS 20160729 /*!< Buried vias */ + #define PCB_FILE_VERSION_HOLES 20100606 /*!< Hole[] in Polygon. */ #define PCB_FILE_VERSION_BASELINE 20091103 /*!< First version ever saved. */ @@ -171,6 +173,11 @@ PCBFileVersionNeeded (void) } ENDALL_LOOP; + VIA_LOOP (PCB->Data); + if ((via->BuriedFrom != 0) || (via->BuriedTo != 0)) + return PCB_FILE_VERSION_BURIED_VIAS; + END_LOOP; + return PCB_FILE_VERSION_BASELINE; } @@ -636,6 +643,8 @@ WriteViaData (FILE * FP, DataType *Data) PinType *via = iter->data; pcb_fprintf (FP, "Via[%mr %mr %mr %mr %mr %mr ", via->X, via->Y, via->Thickness, via->Clearance, via->Mask, via->DrillingHole); + if ((via->BuriedFrom != 0) || (via->BuriedTo != 0)) + fprintf (FP, "%d %d ", via->BuriedFrom, via->BuriedTo); PrintQuotedString (FP, (char *)EMPTY (via->Name)); fprintf (FP, " %s]\n", F2S (via, VIA_TYPE)); } diff --git a/src/file.h b/src/file.h index 0515882..541d01b 100644 --- a/src/file.h +++ b/src/file.h @@ -54,7 +54,8 @@ void sort_netlist (void); int PCBFileVersionNeeded (void); /*!< This is the version needed by the file we're saving. */ -#define PCB_FILE_VERSION 20110603 +#define PCB_FILE_VERSION 20160729 + /*!< \brief This is the version we support. * * Whenever the pcb file format is modified, this version number diff --git a/src/find.c b/src/find.c index 0016396..38c4f84 100644 --- a/src/find.c +++ b/src/find.c @@ -617,6 +617,9 @@ LOCtoPVline_callback (const BoxType * b, void *cl) LineType *line = (LineType *) b; struct pv_info *i = (struct pv_info *) cl; + if (!ViaIsOnLayerGroup (i->pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + if (!TEST_FLAG (i->flag, line) && PinLineIntersect (i->pv, line) && !TEST_FLAG (HOLEFLAG, i->pv)) { @@ -632,6 +635,9 @@ LOCtoPVarc_callback (const BoxType * b, void *cl) ArcType *arc = (ArcType *) b; struct pv_info *i = (struct pv_info *) cl; + if (!ViaIsOnLayerGroup (i->pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + if (!TEST_FLAG (i->flag, arc) && IS_PV_ON_ARC (i->pv, arc) && !TEST_FLAG (HOLEFLAG, i->pv)) { @@ -647,6 +653,9 @@ LOCtoPVpad_callback (const BoxType * b, void *cl) PadType *pad = (PadType *) b; struct pv_info *i = (struct pv_info *) cl; + if (!ViaIsOnLayerGroup (i->pv, GetLayerGroupNumberBySide (TEST_FLAG (ONSOLDERFLAG, pad) ? BOTTOM_SIDE : TOP_SIDE))) + return 0; + if (!TEST_FLAG (i->flag, pad) && IS_PV_ON_PAD (i->pv, pad) && !TEST_FLAG (HOLEFLAG, i->pv) && ADD_PAD_TO_LIST (TEST_FLAG (ONSOLDERFLAG, pad) ? BOTTOM_SIDE : @@ -666,12 +675,16 @@ LOCtoPVrat_callback (const BoxType * b, void *cl) longjmp (i->env, 1); return 0; } + static int LOCtoPVpoly_callback (const BoxType * b, void *cl) { PolygonType *polygon = (PolygonType *) b; struct pv_info *i = (struct pv_info *) cl; + if (!ViaIsOnLayerGroup (i->pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + /* if the pin doesn't have a therm and polygon is clearing * then it can't touch due to clearance, so skip the expensive * test. If it does have a therm, you still need to test @@ -904,6 +917,22 @@ pv_pv_callback (const BoxType * b, void *cl) { PinType *pin = (PinType *) b; struct pv_info *i = (struct pv_info *) cl; + bool pv_overlap = false; + Cardinal l; + + if (VIA_IS_BURIED (pin) && VIA_IS_BURIED (i->pv)) + { + for (l = pin->BuriedFrom ; l <= pin->BuriedTo; l++) + { + if (ViaIsOnLayerGroup (i->pv, GetLayerGroupNumberByNumber (l))) + { + pv_overlap = true; + break; + } + } + if (!pv_overlap) + return 0; + } if (!TEST_FLAG (i->flag, pin) && PV_TOUCH_PV (i->pv, pin)) { @@ -977,6 +1006,9 @@ pv_line_callback (const BoxType * b, void *cl) PinType *pv = (PinType *) b; struct lo_info *i = (struct lo_info *) cl; + if (!ViaIsOnLayerGroup (pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + if (!TEST_FLAG (i->flag, pv) && PinLineIntersect (pv, i->line)) { if (TEST_FLAG (HOLEFLAG, pv)) @@ -997,6 +1029,9 @@ pv_pad_callback (const BoxType * b, void *cl) PinType *pv = (PinType *) b; struct lo_info *i = (struct lo_info *) cl; + if (!ViaIsOnLayerGroup (pv, GetLayerGroupNumberBySide (i->layer))) + return 0; + if (!TEST_FLAG (i->flag, pv) && IS_PV_ON_PAD (pv, i->pad)) { if (TEST_FLAG (HOLEFLAG, pv)) @@ -1017,6 +1052,9 @@ pv_arc_callback (const BoxType * b, void *cl) PinType *pv = (PinType *) b; struct lo_info *i = (struct lo_info *) cl; + if (!ViaIsOnLayerGroup (pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + if (!TEST_FLAG (i->flag, pv) && IS_PV_ON_ARC (pv, i->arc)) { if (TEST_FLAG (HOLEFLAG, pv)) @@ -1037,6 +1075,9 @@ pv_poly_callback (const BoxType * b, void *cl) PinType *pv = (PinType *) b; struct lo_info *i = (struct lo_info *) cl; + if (!ViaIsOnLayerGroup (pv, GetLayerGroupNumberByNumber (i->layer))) + return 0; + /* note that holes in polygons are ok, so they don't generate warnings. */ if (!TEST_FLAG (i->flag, pv) && !TEST_FLAG (HOLEFLAG, pv) && (TEST_THERM (i->layer, pv) || @@ -1112,6 +1153,7 @@ LookupPVConnectionsToLOList (int flag, bool AndRats) continue; } + info.layer = layer_no; /* check all lines */ while (LineList[layer_no].Location < LineList[layer_no].Number) { @@ -1194,6 +1236,7 @@ LookupPVConnectionsToLOList (int flag, bool AndRats) { BoxType search_box; + info.layer = layer_no; info.pad = PADLIST_ENTRY (layer_no, PadList[layer_no].Location); search_box = expand_bounds ((BoxType *)info.pad); diff --git a/src/flags.c b/src/flags.c index 471d497..74aaae5 100644 --- a/src/flags.c +++ b/src/flags.c @@ -252,6 +252,7 @@ HID_Flag flags_flag_list[] = { {"onlynames", FlagTESTFLAG, GINT_TO_POINTER (ONLYNAMESFLAG)}, {"newfullpoly", FlagTESTFLAG, GINT_TO_POINTER (NEWFULLPOLYFLAG)}, {"hidenames", FlagTESTFLAG, GINT_TO_POINTER (HIDENAMESFLAG)}, + {"autoburiedvias", FlagTESTFLAG, GINT_TO_POINTER (AUTOBURIEDVIASFLAG)}, {"grid_units_mm", FlagUnitsMm, NULL}, {"grid_units_mil", FlagUnitsMil, NULL}, diff --git a/src/global.h b/src/global.h index 8b7ca60..313a3a8 100644 --- a/src/global.h +++ b/src/global.h @@ -393,6 +393,8 @@ struct pin_st char *Number; void *Element; void *Spare; + Cardinal BuriedFrom; + Cardinal BuriedTo; }; /* This is the extents of a Pin or Via, depending on whether it's a @@ -840,6 +842,7 @@ typedef struct OrthogonalMoves, /*!< . */ ResetAfterElement, /*!< Reset connections after each element. */ liveRouting, /*!< Autorouter shows tracks in progress. */ + AutoBuriedVias, RingBellWhenFinished, /*!< flag if a signal should be produced when searching of * connections is done. */ @@ -973,7 +976,7 @@ struct drc_violation_st #define UNDO_LAYERCHANGE 0x20000 /*!< Layer new/delete/move. */ #define UNDO_CLEAR 0x40000 /*!< Clear/restore to polygons. */ #define UNDO_NETLISTCHANGE 0x80000 /*!< Netlist change. */ - +#define UNDO_CHANGESETVIALAYERS 0x100000 /*!< Buried data change. */ /* --------------------------------------------------------------------------- */ #if (__GNUC__ * 1000 + __GNUC_MINOR__) > 2007 diff --git a/src/gpcb-menu.res.in b/src/gpcb-menu.res.in index 4cea179..9bd3b69 100644 --- a/src/gpcb-menu.res.in +++ b/src/gpcb-menu.res.in @@ -115,6 +115,12 @@ MainMenu = - {"Edit..." AdjustStyle(0)} } + - + {"Via type" + {"Through-hole" a={"Xtrl-Shift-P" "Ctrl Shiftp"} SetViaLayers(Object,th)} + {"Buried from" a={"Xtrl-Shift-F" "Ctrl Shiftf"} SetViaLayers(Object,c,-)} + {"Buried to" a={"Xtrl-Shift-T" "Ctrl Shiftt"} SetViaLayers(Object,-,c)} + } } # @@ -217,7 +223,8 @@ MainMenu = {"Thin draw" checked=thindraw Display(ToggleThindraw) a={"|" "|"}} {"Thin draw poly" checked=thindrawpoly Display(ToggleThindrawPoly) a={"Ctrl-Shift-P" "Ctrl Shiftp"}} {"Check polygons" checked=checkplanes Display(ToggleCheckPlanes)} - - + {"Auto buried vias" checked=autoburiedvias Display(ToggleAutoBuriedVias)} + {"Vendor drill mapping" ToggleVendor() checked=VendorMapOn} {"Import New Elements at" m=I {" Center" Import(setnewpoint,center) m=C} @@ -235,6 +242,7 @@ MainMenu = {"Select all visible" Select(All)} {"Select all found" Select(Found)} {"Select all connected" Select(Connection)} + {"Select all buried vias" Select(BuriedVias)} - {"Unselect all" Unselect(All)} {"Unselect all found" Unselect(Found)} @@ -286,6 +294,12 @@ MainMenu = {"Elements" ChangeSquare(SelectedElements)} {"Pins" ChangeSquare(SelectedPins)} } + - + {"Change type of selected vias" + {"Through-hole" SetViaLayers(selected,th)} + {"Buried from current layer" SetViaLayers(selected,c,-)} + {"Buried to current layer" SetViaLayers(selected,-,c)} + } } # diff --git a/src/hid/common/flags.c b/src/hid/common/flags.c index 0dad8c8..f5ce449 100644 --- a/src/hid/common/flags.c +++ b/src/hid/common/flags.c @@ -216,3 +216,13 @@ layer_type_to_file_name (int idx, int style) break; } } + +const char * +layer_type_to_file_name_ex (int idx, int style, const char *layer_name) +{ + if (idx == SL (PDRILL, 0) + || idx == SL (UDRILL, 0)) + return layer_name; + else + return layer_type_to_file_name (idx, style); +} diff --git a/src/hid/gerber/gerber.c b/src/hid/gerber/gerber.c index 89d4f3d..86aaccf 100644 --- a/src/hid/gerber/gerber.c +++ b/src/hid/gerber/gerber.c @@ -548,7 +548,7 @@ assign_hackvana_file_suffix (char *dest, int idx) } static void -assign_file_suffix (char *dest, int idx) +assign_file_suffix (char *dest, int idx, const char *layer_name) { int fns_style; const char *sext = ".gbr"; @@ -577,7 +577,7 @@ assign_file_suffix (char *dest, int idx) break; } - strcpy (dest, layer_type_to_file_name (idx, fns_style)); + strcpy (dest, layer_type_to_file_name_ex (idx, fns_style, layer_name)); strcat (dest, sext); } @@ -796,7 +796,7 @@ gerber_set_layer (const char *name, int group, int empty) f = NULL; pagecount++; - assign_file_suffix (filesuff, idx); + assign_file_suffix (filesuff, idx, name); f = fopen (filename, "wb"); /* Binary needed to force CR-LF */ if (f == NULL) { diff --git a/src/hid/hidint.h b/src/hid/hidint.h index 4bebd6e..580525a 100644 --- a/src/hid/hidint.h +++ b/src/hid/hidint.h @@ -61,6 +61,7 @@ enum File_Name_Style { /* Returns a filename base that can be used to output the layer. */ const char *layer_type_to_file_name (int idx, int style); +const char *layer_type_to_file_name_ex (int idx, int style, const char *layer_name); /* Convenience function that calls the expose callback for the item, and returns the extents of what was drawn. */ diff --git a/src/hid/ps/ps.c b/src/hid/ps/ps.c index b74f7d1..4cb58cc 100644 --- a/src/hid/ps/ps.c +++ b/src/hid/ps/ps.c @@ -681,10 +681,10 @@ ps_hid_export_to_file (FILE * the_file, HID_Attr_Val * options) { /* %%Page DSC requires both a label and an ordinal */ fprintf (the_file, "%%%%Page: TableOfContents 1\n"); - fprintf (the_file, "/Times-Roman findfont 24 scalefont setfont\n"); + fprintf (the_file, "/Times-Roman findfont 14 scalefont setfont\n"); fprintf (the_file, "/rightshow { /s exch def s stringwidth pop -1 mul 0 rmoveto s show } def\n"); fprintf (the_file, "/y 72 9 mul def /toc { 100 y moveto show /y y 24 sub def } bind def\n"); - fprintf (the_file, "/tocp { /y y 12 sub def 90 y moveto rightshow } bind def\n"); + fprintf (the_file, "/tocp { /y y 0 sub def 90 y moveto rightshow } bind def\n"); global.doing_toc = 1; global.pagecount = 1; /* 'pagecount' is modified by hid_expose_callback() call */ @@ -853,7 +853,7 @@ ps_set_layer (const char *name, int group, int empty) ps_end_file (global.f); fclose (global.f); } - global.f = psopen (global.filename, layer_type_to_file_name (idx, FNS_fixed)); + global.f = psopen (global.filename, layer_type_to_file_name_ex (idx, FNS_fixed, name)); if (!global.f) { perror (global.filename); @@ -871,7 +871,7 @@ ps_set_layer (const char *name, int group, int empty) * ordinal page number must reflect the position of that page in * the body of the PostScript file and must start with 1, not 0. */ - fprintf (global.f, "%%%%Page: %s %d\n", layer_type_to_file_name(idx, FNS_fixed), global.pagecount); + fprintf (global.f, "%%%%Page: %s %d\n", layer_type_to_file_name_ex (idx, FNS_fixed, name), global.pagecount); if (global.mirror) mirror_this = !mirror_this; @@ -887,10 +887,10 @@ ps_set_layer (const char *name, int group, int empty) fprintf (global.f, "30 30 moveto (%s) show\n", PCB->Filename); if (PCB->Name) fprintf (global.f, "30 41 moveto (%s, %s) show\n", - PCB->Name, layer_type_to_file_name (idx, FNS_fixed)); + PCB->Name, layer_type_to_file_name_ex (idx, FNS_fixed, name)); else fprintf (global.f, "30 41 moveto (%s) show\n", - layer_type_to_file_name (idx, FNS_fixed)); + layer_type_to_file_name_ex (idx, FNS_fixed, name)); if (mirror_this) fprintf (global.f, "( \\(mirrored\\)) show\n"); diff --git a/src/macro.h b/src/macro.h index a66d2aa..aeccd7e 100644 --- a/src/macro.h +++ b/src/macro.h @@ -482,3 +482,6 @@ extern int mem_any_set (unsigned char *, int); continue; #endif + +#define VIA_IS_BURIED(via) (via->BuriedFrom != 0 || via->BuriedTo != 0) +#define VIA_ON_LAYER(via, layer) (layer >= via->BuriedFrom && layer <= via->BuriedTo ) diff --git a/src/main.c b/src/main.c index 46df856..fca36b8 100644 --- a/src/main.c +++ b/src/main.c @@ -1542,6 +1542,16 @@ If set, all found connections are reset before a new component is scanned. "If set, all found connections are reset before a new component is scanned"), /* %start-doc options "1 General Options" + * @ftable @code + * @item --auto-buried-vias + * Enables automatically created vias (during line moves and layer switch) to be buriad/blind vias + * @end ftable + * %end-doc + * */ + BSET (AutoBuriedVias, 0, "auto-buried-vias", + "Enables automatically created vias to be buriad/blind vias"), + +/* %start-doc options "1 General Options" @ftable @code @item --ring-bell-finished Execute the bell command when all rats are routed. diff --git a/src/misc.c b/src/misc.c index 8c84ab0..ef1323d 100644 --- a/src/misc.c +++ b/src/misc.c @@ -724,6 +724,8 @@ typedef struct { int nplated; int nunplated; + Cardinal group_from; + Cardinal group_to; } HoleCountStruct; static int @@ -731,6 +733,20 @@ hole_counting_callback (const BoxType * b, void *cl) { PinType *pin = (PinType *) b; HoleCountStruct *hcs = (HoleCountStruct *) cl; + + if (hcs->group_from != 0 + || hcs->group_to != 0) + { + if (VIA_IS_BURIED (pin)) + { + if (hcs->group_from == GetLayerGroupNumberByNumber (pin->BuriedFrom) + && hcs->group_to == GetLayerGroupNumberByNumber (pin->BuriedTo)) + goto count; + } + return 1; + } + +count: if (TEST_FLAG (HOLEFLAG, pin)) hcs->nunplated++; else @@ -747,7 +763,7 @@ hole_counting_callback (const BoxType * b, void *cl) void CountHoles (int *plated, int *unplated, const BoxType *within_area) { - HoleCountStruct hcs = {0, 0}; + HoleCountStruct hcs = {0, 0, 0, 0}; r_search (PCB->Data->pin_tree, within_area, NULL, hole_counting_callback, &hcs); r_search (PCB->Data->via_tree, within_area, NULL, hole_counting_callback, &hcs); @@ -756,6 +772,23 @@ CountHoles (int *plated, int *unplated, const BoxType *within_area) if (unplated != NULL) *unplated = hcs.nunplated; } +/*! + * \brief Counts the number of plated and unplated holes in the design + * within a given area of the board. + * + * To count for the whole board, pass NULL to the within_area. + */ +void +CountHolesEx (int *plated, int *unplated, const BoxType *within_area, Cardinal group_from, Cardinal group_to) +{ + HoleCountStruct hcs = {0, 0, group_from, group_to}; + + r_search (PCB->Data->pin_tree, within_area, NULL, hole_counting_callback, &hcs); + r_search (PCB->Data->via_tree, within_area, NULL, hole_counting_callback, &hcs); + + if (plated != NULL) *plated = hcs.nplated; + if (unplated != NULL) *unplated = hcs.nunplated; +} /*! * \brief Gets minimum and maximum coordinates. @@ -1599,7 +1632,7 @@ GetLayerGroupNumberBySide (int side) /* Find the relavant board side layer group by determining the * layer group associated with the relevant side's silk-screen */ - return GetLayerGroupNumberByNumber( + return GetLayerGroupNumberByNumber ( side == TOP_SIDE ? top_silk_layer : bottom_silk_layer); } @@ -2207,6 +2240,271 @@ LayerGroupsToString (LayerGroupType *lg) return buf; } +int +GetMaxBottomLayer () +{ + int l = 0; + int group, i; + + group = GetLayerGroupNumberBySide (BOTTOM_SIDE); + for (i = 0; i < PCB->LayerGroups.Number[group]; i++) + { + if (PCB->LayerGroups.Entries[group][i] < max_copper_layer) + l = max (l, PCB->LayerGroups.Entries[group][i]); + } + return l; +} + + +/*! + * \brief Sanitize buried via + * + * - remove degraded vias + * - ensure correct order of layers + * - change full size vias to TH vias + */ +void +SanitizeBuriedVia (PinType *via) +{ + /* we expect that via is burried/blind */ + + if (via->BuriedFrom > via->BuriedTo) + { + int tmp = via->BuriedFrom; + via->BuriedFrom = via->BuriedTo; + via->BuriedTo = tmp; + } + + /* check, if via was extended to full stack (after first layer removal)*/ + /* convert it in TH via in such case */ + if (via->BuriedTo == GetMaxBottomLayer () + && via->BuriedFrom == 0) + via->BuriedTo = 0; +} + +#if 0 +bool +IsLayerMoveSafe (int old_index, int new_index) +{ + VIA_LOOP (PCB->Data); + { + if (VIA_IS_BURIED (via)) + { + /* moving from below to inside */ + if ((old_index < via->BuriedFrom) + && (new_index < via->BuriedTo)) + return false; + + /* moving from above to inside */ + if ((old_index > via->BuriedTo) + && (new_index > via->BuriedFrom)) + return false; + } + } + END_LOOP; + + return true; +} + +#endif + +/*! + * \brief Update buried vias after layer move + * + */ + +void +ChangeBuriedViasAfterLayerMove (int old_index, int new_index) +{ + VIA_LOOP (PCB->Data); + { + if (VIA_IS_BURIED (via)) + { + /* do nothing, if both layers are below the via */ + if ((old_index < via->BuriedFrom) + && (new_index < via->BuriedFrom)) + continue; + + /* do nothing, if both layers are above the via */ + if ((old_index > via->BuriedTo) + && (new_index > via->BuriedTo)) + continue; + + /* moving via top layer - via top follows layer */ + if (old_index == via->BuriedFrom) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom = new_index; + } + + /* moving via bottom layer - via bottom follows layer */ + else if (old_index == via->BuriedTo) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedTo = new_index; + } + + /* moving layer covered by via inside the via (except top and bottom) - do nothing */ + else if (VIA_ON_LAYER (via, old_index) + && VIA_ON_LAYER (via, new_index)) + continue; + + /* moving from inside to below - shrink via DANGEROUS op*/ + else if (VIA_ON_LAYER (via, old_index) + && (new_index < via->BuriedFrom)) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom++; + } + + /* moving from inside to above - shrink via DANGEROUS op*/ + else if (VIA_ON_LAYER (via, old_index) + && (new_index > via->BuriedTo)) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedTo--; + } + + /* moving from above to below - shift via up */ + else if ((old_index > via->BuriedTo) + && (new_index < via->BuriedFrom)) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom++; + via->BuriedTo++; + } + + /* moving from below to above - shift via down */ + else if ((old_index < via->BuriedFrom) + && (new_index >= via->BuriedTo)) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom--; + via->BuriedTo--; + } + + /* moving from below to inside - extend via down DANGEROUS op*/ + else if ((old_index < via->BuriedFrom) + && (new_index < via->BuriedTo)) + { + AddObjectToSetViaLayersUndoList (via, via, via); + via->BuriedFrom--; + } + + /* moving from above to inside - extend via up DANGEROUS op*/ + else if ((old_index > via->BuriedTo) + && (new_index > via->BuriedFrom)) + { + AddObjectToSetViaLayersUndoList ( via, via, via); + via->BuriedTo++; + } + else + { + Message (_("Layer move: failed via update: %d -> %d, via: %d:%d\n"), old_index, new_index, via->BuriedFrom, via->BuriedTo); + continue; + } + + SanitizeBuriedVia (via); + } + } + END_LOOP; + RemoveDegradedVias (); +} + +/*! + * \brief Update buried vias after new layer create + * + */ +void +ChangeBuriedViasAfterLayerCreate (int index) +{ + VIA_LOOP (PCB->Data); + { + if (VIA_IS_BURIED (via)) + { + if (index <= via->BuriedFrom + || index <= via->BuriedTo) + AddObjectToSetViaLayersUndoList (via, via, via); + + if (index <= via->BuriedFrom) + via->BuriedFrom++; + if (index <= via->BuriedTo) + via->BuriedTo++; + } + } + END_LOOP; +} + +/*! + * \brief Update buried vias after layer delete + * + */ +void +ChangeBuriedViasAfterLayerDelete (int index) +{ + VIA_LOOP (PCB->Data); + { + if (VIA_IS_BURIED (via)) + { + if (index < via->BuriedFrom + || index <= via->BuriedTo) + AddObjectToSetViaLayersUndoList (via, via, via); + + if (index < via->BuriedFrom) + via->BuriedFrom--; + if (index <= via->BuriedTo) + via->BuriedTo--; + + SanitizeBuriedVia (via); + } + } + END_LOOP; + RemoveDegradedVias (); +} + +/*! + * \brief Check if via penetrates layer group + * + */ +bool +ViaIsOnLayerGroup (PinType *via, int group) +{ + Cardinal layer; + + if (!VIA_IS_BURIED (via)) + return true; + + for (layer = via->BuriedFrom; layer <= via->BuriedTo; layer++) + { + if (GetLayerGroupNumberByNumber (layer) == group) + return true; + } + + return false; +} + +/*! + * \brief Check if via penetrates any visible layer + * + */ +bool +ViaIsOnAnyVisibleLayer (PinType *via) +{ + Cardinal layer; + + if (!VIA_IS_BURIED (via)) + return true; + + for (layer = via->BuriedFrom; layer <= via->BuriedTo; layer ++) + { + if (PCB->Data->Layer[layer].On) + return true; + } + + return false; +} + + char * pcb_author (void) { diff --git a/src/misc.h b/src/misc.h index ff49933..e5ac4c7 100644 --- a/src/misc.h +++ b/src/misc.h @@ -64,6 +64,7 @@ bool IsLayerNumEmpty (int); bool IsLayerGroupEmpty (int); bool IsPasteEmpty (int); void CountHoles (int *, int *, const BoxType *); +void CountHolesEx (int *, int *, const BoxType *, Cardinal, Cardinal); BoxType * GetDataBoundingBox (DataType *); void CenterDisplay (Coord, Coord, bool warp_pointer); void SetFontInfo (FontType *); @@ -133,6 +134,19 @@ char * GetInfoString (void); void AssignDefaultLayerTypes (); int ElementOrientation (ElementType *e); +/* Buried vias Functions */ +bool IsLayerMoveSafe (int, int); +void ChangeBuriedViasAfterLayerMove (int, int); +void ChangeBuriedViasAfterLayerCreate (int); +void ChangeBuriedViasAfterLayerDelete (int); +bool ViaIsOnLayerGroup (PinType *, int); +bool ViaIsOnAnyVisibleLayer (PinType *); +void SanitizeBuriedVia (PinType *); + +int GetMaxBottomLayer (); + + + /*! * \todo These are in netlist.c */ diff --git a/src/move.c b/src/move.c index ad90493..dfaf613 100644 --- a/src/move.c +++ b/src/move.c @@ -538,6 +538,7 @@ MoveRatToLayer (RatType *Rat) struct via_info { Coord X, Y; + Cardinal layer_from, layer_to; jmp_buf env; }; @@ -548,10 +549,10 @@ moveline_callback (const BoxType * b, void *cl) PinType *via; if ((via = - CreateNewVia (PCB->Data, i->X, i->Y, + CreateNewViaEx (PCB->Data, i->X, i->Y, Settings.ViaThickness, 2 * Settings.Keepaway, NOFLAG, Settings.ViaDrillingHole, NULL, - NoFlags ())) != NULL) + NoFlags (), i->layer_from, i->layer_to)) != NULL) { AddObjectToCreateUndoList (VIA_TYPE, via, via, via); DrawVia (via); @@ -596,6 +597,17 @@ MoveLineToLayer (LayerType *Layer, LineType *Line) TEST_SILK_LAYER(Layer) || TEST_SILK_LAYER(Dest)) return (newone); + + if (TEST_FLAG (AUTOBURIEDVIASFLAG, PCB)) + { + info.layer_from = GetLayerNumber (PCB->Data, Layer); + info.layer_to = GetLayerNumber (PCB->Data, Dest); + } + else + { + info.layer_from = 0; + info.layer_to = 0; + } /* consider via at Point1 */ sb.X1 = newone->Point1.X - newone->Thickness / 2; sb.X2 = newone->Point1.X + newone->Thickness / 2; @@ -910,8 +922,8 @@ move_all_thermals (int old_index, int new_index) static int LastNormalLayerInSideGroup (int side, int layer) { - int side_group = GetLayerGroupNumberBySide(side); - int lgroup = GetLayerGroupNumberByNumber(layer); + int side_group = GetLayerGroupNumberBySide (side); + int lgroup = GetLayerGroupNumberByNumber (layer); if (side_group == lgroup && PCB->LayerGroups.Number[lgroup] == 2) return 1; @@ -935,7 +947,6 @@ MoveLayer (int old_index, int new_index) int saved_group; AddLayerChangeToUndoList (old_index, new_index); - IncrementUndoSerialNumber (); if (old_index < -1 || old_index >= max_copper_layer) { @@ -1000,6 +1011,9 @@ MoveLayer (int old_index, int new_index) if (LayerStack[l] >= new_index) LayerStack[l]++; LayerStack[max_copper_layer - 1] = new_index; + + if (!Undoing ()) + ChangeBuriedViasAfterLayerCreate (new_index); } else if (new_index == -1) { @@ -1022,6 +1036,9 @@ MoveLayer (int old_index, int new_index) for (l = 0; l < max_copper_layer; l++) if (LayerStack[l] > old_index) LayerStack[l]--; + + if (!Undoing ()) + ChangeBuriedViasAfterLayerDelete (old_index); } else { @@ -1048,8 +1065,13 @@ MoveLayer (int old_index, int new_index) } memcpy (&PCB->Data->Layer[new_index], &saved_layer, sizeof (LayerType)); group_of_layer[new_index] = saved_group; + + if (!Undoing ()) + ChangeBuriedViasAfterLayerMove (old_index, new_index); } + IncrementUndoSerialNumber (); + move_all_thermals(old_index, new_index); for (g = 0; g < MAX_GROUP; g++) diff --git a/src/parse_y.y b/src/parse_y.y index c893fa8..9119314 100644 --- a/src/parse_y.y +++ b/src/parse_y.y @@ -715,7 +715,8 @@ pcbdefinition ; via - : via_hi_format + : via_ehi_format + | via_hi_format | via_2.0_format | via_1.7_format | via_newformat @@ -725,6 +726,7 @@ via /* %start-doc pcbfile Via @syntax +Via [X Y Thickness Clearance Mask Drill BuriedFrom BuriedTo "Name" SFlags] Via [X Y Thickness Clearance Mask Drill "Name" SFlags] Via (X Y Thickness Clearance Mask Drill "Name" NFlags) Via (X Y Thickness Clearance Drill "Name" NFlags) @@ -753,6 +755,16 @@ numerical flags only %end-doc */ +via_ehi_format + /* x, y, thickness, clearance, mask, drilling-hole, buried_from, buried_to, name, flags */ + : T_VIA '[' measure measure measure measure measure measure INTEGER INTEGER STRING flags ']' + { + CreateNewViaEx (yyData, NU ($3), NU ($4), NU ($5), NU ($6), NU ($7), + NU ($8), $11, $12, $9, $10); + free ($11); + } + ; + via_hi_format /* x, y, thickness, clearance, mask, drilling-hole, name, flags */ : T_VIA '[' measure measure measure measure measure measure STRING flags ']' diff --git a/src/polygon.c b/src/polygon.c index 82ebe61..45d4634 100644 --- a/src/polygon.c +++ b/src/polygon.c @@ -926,9 +926,13 @@ pin_sub_callback (const BoxType * b, void *cl) return 0; polygon = info->polygon; + i = GetLayerNumber (info->data, info->layer); + + if (VIA_IS_BURIED (pin) && (!VIA_ON_LAYER (pin, i))) + return 0; + if (pin->Clearance == 0) return 0; - i = GetLayerNumber (info->data, info->layer); if (TEST_THERM (i, pin)) { np = ThermPoly ((PCBType *) (info->data->pcb), pin, i); @@ -1495,15 +1499,26 @@ static int subtract_plow (DataType *Data, LayerType *Layer, PolygonType *Polygon, int type, void *ptr1, void *ptr2, void *userdata) { + PinType *via; + int layer_n = GetLayerNumber (Data, Layer); + if (!Polygon->Clipped) return 0; switch (type) { case PIN_TYPE: - case VIA_TYPE: SubtractPin (Data, (PinType *) ptr2, Layer, Polygon); Polygon->NoHolesValid = 0; return 1; + case VIA_TYPE: + via = (PinType *) ptr2; + if (!VIA_IS_BURIED (via) || VIA_ON_LAYER (via, layer_n)) + { + SubtractPin (Data, via, Layer, Polygon); + Polygon->NoHolesValid = 0; + return 1; + } + break; case LINE_TYPE: SubtractLine ((LineType *) ptr2, Polygon); Polygon->NoHolesValid = 0; @@ -1528,12 +1543,22 @@ static int add_plow (DataType *Data, LayerType *Layer, PolygonType *Polygon, int type, void *ptr1, void *ptr2, void *userdata) { + PinType *via; + int layer_n = GetLayerNumber (Data, Layer); + switch (type) { case PIN_TYPE: - case VIA_TYPE: UnsubtractPin ((PinType *) ptr2, Layer, Polygon); return 1; + case VIA_TYPE: + via = (PinType *) ptr2; + if (!VIA_IS_BURIED (via) || VIA_ON_LAYER (via, layer_n)) + { + UnsubtractPin ((PinType *) ptr2, Layer, Polygon); + return 1; + } + break; case LINE_TYPE: UnsubtractLine ((LineType *) ptr2, Layer, Polygon); return 1; diff --git a/src/remove.c b/src/remove.c index 3ca5197..d0f3cdc 100644 --- a/src/remove.c +++ b/src/remove.c @@ -609,6 +609,20 @@ RemoveSelected (void) return (false); } +void +RemoveDegradedVias (void) +{ + Bulk = true; + VIA_LOOP (PCB->Data); + { + if (VIA_IS_BURIED (via) + && (via->BuriedFrom == via->BuriedTo)) + RemoveVia (via); + } + END_LOOP; + Bulk = false; +} + /*! * \brief Remove object as referred by pointers and type, * allocated memory is passed to the 'remove undo' list. diff --git a/src/remove.h b/src/remove.h index 10a21d1..b072cff 100644 --- a/src/remove.h +++ b/src/remove.h @@ -56,5 +56,6 @@ bool RemoveSelected (void); bool DeleteRats (bool); void *RemoveObject (int, void *, void *, void *); void *DestroyObject (DataType *, int, void *, void *, void *); +void RemoveDegradedVias (void); #endif diff --git a/src/report.c b/src/report.c index 13a03f8..d40c65f 100644 --- a/src/report.c +++ b/src/report.c @@ -139,6 +139,20 @@ static const char reportdialog_syntax[] = N_("ReportDialog()"); static const char reportdialog_help[] = N_("Report on the object under the crosshair"); + +static char* +CreateBuriedViaDescription (int from, int to) +{ + static char s[32]; + + if ((from == 0) && (to == 0)) + strcpy (s, "Through-hole"); + else + sprintf (s, "Buried (%d:%d)", from, to); + + return s; +} + /* %start-doc actions ReportDialog This is a shortcut for @code{Report(Object)}. @@ -185,6 +199,7 @@ ReportDialog (int argc, char **argv, Coord x, Coord y) "Clearance width in polygons = %$mS.\n" "Annulus = %$mS.\n" "Solder mask hole = %$mS (gap = %$mS).\n" + "Type = %s.\n" "Name = \"%s\"." "%s"), USER_UNITMASK, via->ID, flags_to_string (via->Flags, VIA_TYPE), via->X, via->Y, @@ -194,6 +209,7 @@ ReportDialog (int argc, char **argv, Coord x, Coord y) (via->Thickness - via->DrillingHole) / 2, via->Mask, (via->Mask - via->Thickness) / 2, + CreateBuriedViaDescription (via->BuriedFrom, via->BuriedTo), EMPTY (via->Name), TEST_FLAG (LOCKFLAG, via) ? _("It is LOCKED.\n") : ""); break; diff --git a/src/search.c b/src/search.c index 10f8d79..efcf571 100644 --- a/src/search.c +++ b/src/search.c @@ -1644,6 +1644,31 @@ SearchElementByName (DataType *Base, char *Name) } /*! + * \brief Searches for an layer by its board name. + * + * \return The function returns an index of the layer, -1 if not + * found. + */ +int +SearchLayerByName (DataType *Base, char *Name) +{ + int result = 0; + + LAYER_LOOP (Base, max_copper_layer); + { + if (layer->Name && + NSTRCMP (layer->Name, Name) == 0) + { + return result; + } + else + result++; + } + END_LOOP; + return -1; +} + +/*! * \brief Searches the cursor position for the type. */ int diff --git a/src/search.h b/src/search.h index 473cb69..d4e01e5 100644 --- a/src/search.h +++ b/src/search.h @@ -88,5 +88,5 @@ int SearchObjectByLocation (unsigned, void **, void **, void **, Coord, Coord, C int SearchScreen (Coord, Coord, int, void **, void **, void **); int SearchObjectByID (DataType *, void **, void **, void **, int, int); ElementType * SearchElementByName (DataType *, char *); - +int SearchLayerByName (DataType *Base, char *Name); #endif diff --git a/src/select.c b/src/select.c index 8d71db4..1de41e7 100644 --- a/src/select.c +++ b/src/select.c @@ -1017,3 +1017,27 @@ SelectObjectByName (int Type, char *Pattern, bool select) return (changed); } #endif /* defined(HAVE_REGCOMP) || defined(HAVE_RE_COMP) */ + +/*! + * \brief Selects all blind/buried vias + * + * \return true if any object has been selected. + */ +bool +SelectBuriedVias (bool select) +{ + bool changed = false; + + VIA_LOOP (PCB->Data) + if (TEST_FLAG (LOCKFLAG, via)) + continue; + if (VIA_IS_BURIED (via)) + { + AddObjectToFlagUndoList (VIA_TYPE, via, via, via); + ASSIGN_FLAG (SELECTEDFLAG, select, via); + changed = true; + } + END_LOOP; + + return changed; +} diff --git a/src/select.h b/src/select.h index 06aa08c..5ec4a60 100644 --- a/src/select.h +++ b/src/select.h @@ -46,6 +46,7 @@ bool SelectBlock (BoxType *, bool); bool SelectedOperation (ObjectFunctionType *, bool, int); void *ObjectOperation (ObjectFunctionType *, int, void *, void *, void *); bool SelectByFlag (int flag, bool select); +bool SelectBuriedVias (bool select); #if defined(HAVE_REGCOMP) || defined(HAVE_RE_COMP) bool SelectObjectByName (int, char *, bool); diff --git a/src/strflags.c b/src/strflags.c index dcf4c1a..5d4e6a3 100644 --- a/src/strflags.c +++ b/src/strflags.c @@ -135,6 +135,7 @@ static FlagBitsType pcb_flagbits[] = { { LOCKNAMESFLAG, N ("locknames"), ALL_TYPES }, { ONLYNAMESFLAG, N ("onlynames"), ALL_TYPES }, { HIDENAMESFLAG, N ("hidenames"), ALL_TYPES }, + { AUTOBURIEDVIASFLAG, N ("autoburiedvias"), ALL_TYPES }, }; #undef N diff --git a/src/undo.c b/src/undo.c index 626efb2..d7f566f 100644 --- a/src/undo.c +++ b/src/undo.c @@ -147,6 +147,15 @@ typedef struct } LayerChangeType; /*! + * \brief Information about layer changes. + */ +typedef struct +{ + int from; + int to; +} SetViaLayersChangeType; + +/*! * \brief Information about poly clear/restore. */ typedef struct @@ -186,6 +195,7 @@ typedef struct LayerChangeType LayerChange; ClearPolyType ClearPoly; NetlistChangeType NetlistChange; + SetViaLayersChangeType SetViaLayersChange; long int CopyID; } Data; @@ -229,6 +239,7 @@ static bool UndoChangeAngles (UndoListType *); static bool UndoChangeClearSize (UndoListType *); static bool UndoChangeMaskSize (UndoListType *); static bool UndoClearPoly (UndoListType *); +static bool UndoSetViaLayers (UndoListType *); static int PerformUndo (UndoListType *); /*! @@ -1021,8 +1032,40 @@ UndoNetlistChange (UndoListType *Entry) return true; } -/*! - * \brief Undo of any 'hard to recover' operation. +/* --------------------------------------------------------------------------- + * recovers an object from a Size change operation + */ +static bool +UndoSetViaLayers (UndoListType *Entry) +{ + void *ptr1, *ptr2, *ptr3; + int type; + int from, to; + + /* lookup entry by ID */ + type = + SearchObjectByID (PCB->Data, &ptr1, &ptr2, &ptr3, Entry->ID, Entry->Kind); + if (type == VIA_TYPE) + { + from = ((PinType *) ptr2)->BuriedFrom; + to = ((PinType *) ptr2)->BuriedTo; + RestoreToPolygon (PCB->Data, type, ptr1, ptr2); + if (andDraw) + EraseObject (type, ptr1, ptr2); + ((PinType *) ptr2)->BuriedFrom = Entry->Data.SetViaLayersChange.from; + ((PinType *) ptr2)->BuriedTo = Entry->Data.SetViaLayersChange.to; + Entry->Data.SetViaLayersChange.from = from; + Entry->Data.SetViaLayersChange.to = to; + ClearFromPolygon (PCB->Data, type, ptr1, ptr2); + if (andDraw) + DrawObject (type, ptr1, ptr2); + return (true); + } + return (false); +} + +/* --------------------------------------------------------------------------- + * \brief Undo of any 'hard to recover' operation * * \return The bitfield for the types of operations that were undone. */ @@ -1203,6 +1246,11 @@ PerformUndo (UndoListType *ptr) if (UndoMirror (ptr)) return (UNDO_MIRROR); break; + + case UNDO_CHANGESETVIALAYERS: + if (UndoSetViaLayers (ptr)) + return (UNDO_CHANGESETVIALAYERS); + break; } return 0; } @@ -1824,8 +1872,25 @@ AddNetlistLibToUndoList (LibraryType *lib) } } -/*! - * \brief Set lock flag. +/* --------------------------------------------------------------------------- + * adds an object to the list of objects with buried info data + */ +void +AddObjectToSetViaLayersUndoList (void *ptr1, void *ptr2, void *ptr3) +{ + UndoListType *undo; + + if (!Locked) + { + undo = GetUndoSlot (UNDO_CHANGESETVIALAYERS, OBJECT_ID (ptr2), VIA_TYPE); + undo->Data.SetViaLayersChange.from = ((PinType *) ptr2)->BuriedFrom; + undo->Data.SetViaLayersChange.to = ((PinType *) ptr2)->BuriedTo; + } +} + + +/* --------------------------------------------------------------------------- + * \brief Set lock flag */ void LockUndo (void) diff --git a/src/undo.h b/src/undo.h index 41de084..9cd3eaa 100644 --- a/src/undo.h +++ b/src/undo.h @@ -69,6 +69,7 @@ void AddObjectToClearSizeUndoList (int, void *, void *, void *); void AddObjectToMaskSizeUndoList (int, void *, void *, void *); void AddObjectToChangeAnglesUndoList (int, void *, void *, void *); void AddObjectToClearPolyUndoList (int, void *, void *, void *, bool); +void AddObjectToSetViaLayersUndoList (void *ptr1, void *ptr2, void *ptr3); void AddLayerChangeToUndoList (int, int); void AddNetlistLibToUndoList (LibraryType *); void LockUndo (void); diff --git a/tests/golden/hid_gerber4/buried.bottom.gbr b/tests/golden/hid_gerber4/buried.bottom.gbr new file mode 100644 index 0000000..ff6a84f --- /dev/null +++ b/tests/golden/hid_gerber4/buried.bottom.gbr @@ -0,0 +1,17 @@ +G04 start of page 3 for group 1 idx 7 * +G04 Title: Basic Single Trace RS274-X Test, solder * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNBOTTOM*% +%ADD16C,0.0350*% +%ADD15C,0.0600*% +%ADD14C,0.0400*% +G54D14*X170000Y50000D02*X90000D01* +G54D15*D03* +G54D16*M02* diff --git a/tests/golden/hid_gerber4/buried.fab.gbr b/tests/golden/hid_gerber4/buried.fab.gbr new file mode 100644 index 0000000..706d05d --- /dev/null +++ b/tests/golden/hid_gerber4/buried.fab.gbr @@ -0,0 +1,2092 @@ +G04 start of page 9 for group -3984 idx -3984 * +G04 Title: Basic Single Trace RS274-X Test, fab * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNFAB*% +%ADD36C,0.0100*% +%ADD35C,0.0060*% +%ADD34C,0.0080*% +G54D34*X90000Y51600D02*Y48400D01* +X88400Y50000D02*X91600D01* +X15000Y142850D02*Y139650D01* +X13400Y141250D02*X16600D01* +G54D35*X135000Y143500D02*Y142750D01* +X136500Y141250D01* +X138000Y142750D01* +Y143500D02*Y142750D01* +X136500Y141250D02*Y137500D01* +X139800Y140500D02*X142050D01* +X139800Y137500D02*X142800D01* +X139800Y143500D02*Y137500D01* +Y143500D02*X142800D01* +X147600D02*X148350Y142750D01* +X145350Y143500D02*X147600D01* +X144600Y142750D02*X145350Y143500D01* +X144600Y142750D02*Y141250D01* +X145350Y140500D01* +X147600D01* +X148350Y139750D01* +Y138250D01* +X147600Y137500D02*X148350Y138250D01* +X145350Y137500D02*X147600D01* +X144600Y138250D02*X145350Y137500D01* +X98750D02*X100250D01* +X99500Y143500D02*Y137500D01* +X98000Y142000D02*X99500Y143500D01* +X45000Y138250D02*X45750Y137500D01* +X45000Y142750D02*Y138250D01* +Y142750D02*X45750Y143500D01* +X47250D01* +X48000Y142750D01* +Y138250D01* +X47250Y137500D02*X48000Y138250D01* +X45750Y137500D02*X47250D01* +X45000Y139000D02*X48000Y142000D01* +X49800Y137500D02*X50550D01* +X52350Y138250D02*X53100Y137500D01* +X52350Y142750D02*Y138250D01* +Y142750D02*X53100Y143500D01* +X54600D01* +X55350Y142750D01* +Y138250D01* +X54600Y137500D02*X55350Y138250D01* +X53100Y137500D02*X54600D01* +X52350Y139000D02*X55350Y142000D01* +X57150Y142750D02*X57900Y143500D01* +X59400D01* +X60150Y142750D01* +Y138250D01* +X59400Y137500D02*X60150Y138250D01* +X57900Y137500D02*X59400D01* +X57150Y138250D02*X57900Y137500D01* +Y140500D02*X60150D01* +X61950Y143500D02*X64950D01* +X61950D02*Y140500D01* +X62700Y141250D01* +X64200D01* +X64950Y140500D01* +Y138250D01* +X64200Y137500D02*X64950Y138250D01* +X62700Y137500D02*X64200D01* +X61950Y138250D02*X62700Y137500D01* +X90000Y20000D02*Y18400D01* +Y20000D02*X91387Y20800D01* +X90000Y20000D02*X88613Y20800D01* +X90000Y80000D02*Y78400D01* +Y80000D02*X91387Y80800D01* +X90000Y80000D02*X88613Y80800D01* +X15000Y156250D02*Y154650D01* +Y156250D02*X16387Y157050D01* +X15000Y156250D02*X13613Y157050D01* +X135000Y158500D02*Y157750D01* +X136500Y156250D01* +X138000Y157750D01* +Y158500D02*Y157750D01* +X136500Y156250D02*Y152500D01* +X139800Y155500D02*X142050D01* +X139800Y152500D02*X142800D01* +X139800Y158500D02*Y152500D01* +Y158500D02*X142800D01* +X147600D02*X148350Y157750D01* +X145350Y158500D02*X147600D01* +X144600Y157750D02*X145350Y158500D01* +X144600Y157750D02*Y156250D01* +X145350Y155500D01* +X147600D01* +X148350Y154750D01* +Y153250D01* +X147600Y152500D02*X148350Y153250D01* +X145350Y152500D02*X147600D01* +X144600Y153250D02*X145350Y152500D01* +X98000Y157750D02*X98750Y158500D01* +X101000D01* +X101750Y157750D01* +Y156250D01* +X98000Y152500D02*X101750Y156250D01* +X98000Y152500D02*X101750D01* +X45000Y153250D02*X45750Y152500D01* +X45000Y157750D02*Y153250D01* +Y157750D02*X45750Y158500D01* +X47250D01* +X48000Y157750D01* +Y153250D01* +X47250Y152500D02*X48000Y153250D01* +X45750Y152500D02*X47250D01* +X45000Y154000D02*X48000Y157000D01* +X49800Y152500D02*X50550D01* +X52350Y153250D02*X53100Y152500D01* +X52350Y157750D02*Y153250D01* +Y157750D02*X53100Y158500D01* +X54600D01* +X55350Y157750D01* +Y153250D01* +X54600Y152500D02*X55350Y153250D01* +X53100Y152500D02*X54600D01* +X52350Y154000D02*X55350Y157000D01* +X57150Y157750D02*X57900Y158500D01* +X60150D01* +X60900Y157750D01* +Y156250D01* +X57150Y152500D02*X60900Y156250D01* +X57150Y152500D02*X60900D01* +X62700Y153250D02*X63450Y152500D01* +X62700Y157750D02*Y153250D01* +Y157750D02*X63450Y158500D01* +X64950D01* +X65700Y157750D01* +Y153250D01* +X64950Y152500D02*X65700Y153250D01* +X63450Y152500D02*X64950D01* +X62700Y154000D02*X65700Y157000D01* +X3000Y173500D02*X3750Y172750D01* +X750Y173500D02*X3000D01* +X0Y172750D02*X750Y173500D01* +X0Y172750D02*Y171250D01* +X750Y170500D01* +X3000D01* +X3750Y169750D01* +Y168250D01* +X3000Y167500D02*X3750Y168250D01* +X750Y167500D02*X3000D01* +X0Y168250D02*X750Y167500D01* +X5550Y170500D02*Y168250D01* +X6300Y167500D01* +X8550Y170500D02*Y166000D01* +X7800Y165250D02*X8550Y166000D01* +X6300Y165250D02*X7800D01* +X5550Y166000D02*X6300Y165250D01* +Y167500D02*X7800D01* +X8550Y168250D01* +X11100Y169750D02*Y167500D01* +Y169750D02*X11850Y170500D01* +X12600D01* +X13350Y169750D01* +Y167500D01* +Y169750D02*X14100Y170500D01* +X14850D01* +X15600Y169750D01* +Y167500D01* +X10350Y170500D02*X11100Y169750D01* +X17400Y173500D02*Y167500D01* +Y168250D02*X18150Y167500D01* +X19650D01* +X20400Y168250D01* +Y169750D02*Y168250D01* +X19650Y170500D02*X20400Y169750D01* +X18150Y170500D02*X19650D01* +X17400Y169750D02*X18150Y170500D01* +X22200Y169750D02*Y168250D01* +Y169750D02*X22950Y170500D01* +X24450D01* +X25200Y169750D01* +Y168250D01* +X24450Y167500D02*X25200Y168250D01* +X22950Y167500D02*X24450D01* +X22200Y168250D02*X22950Y167500D01* +X27000Y173500D02*Y168250D01* +X27750Y167500D01* +X0Y164250D02*X29250D01* +X41750Y173500D02*Y167500D01* +X44000Y173500D02*X44750Y172750D01* +Y168250D01* +X44000Y167500D02*X44750Y168250D01* +X41000Y167500D02*X44000D01* +X41000Y173500D02*X44000D01* +X46550Y172000D02*Y171250D01* +Y169750D02*Y167500D01* +X50300Y170500D02*X51050Y169750D01* +X48800Y170500D02*X50300D01* +X48050Y169750D02*X48800Y170500D01* +X48050Y169750D02*Y168250D01* +X48800Y167500D01* +X51050Y170500D02*Y168250D01* +X51800Y167500D01* +X48800D02*X50300D01* +X51050Y168250D01* +X54350Y169750D02*Y167500D01* +Y169750D02*X55100Y170500D01* +X55850D01* +X56600Y169750D01* +Y167500D01* +Y169750D02*X57350Y170500D01* +X58100D01* +X58850Y169750D01* +Y167500D01* +X53600Y170500D02*X54350Y169750D01* +X60650Y167500D02*X61400D01* +X65900Y168250D02*X66650Y167500D01* +X65900Y172750D02*X66650Y173500D01* +X65900Y172750D02*Y168250D01* +X68450Y173500D02*X69950D01* +X69200D02*Y167500D01* +X68450D02*X69950D01* +X72500Y169750D02*Y167500D01* +Y169750D02*X73250Y170500D01* +X74000D01* +X74750Y169750D01* +Y167500D01* +X71750Y170500D02*X72500Y169750D01* +X77300Y170500D02*X79550D01* +X76550Y169750D02*X77300Y170500D01* +X76550Y169750D02*Y168250D01* +X77300Y167500D01* +X79550D01* +X81350Y173500D02*Y167500D01* +Y169750D02*X82100Y170500D01* +X83600D01* +X84350Y169750D01* +Y167500D01* +X86150Y173500D02*X86900Y172750D01* +Y168250D01* +X86150Y167500D02*X86900Y168250D01* +X41000Y164250D02*X88700D01* +X95750Y167500D02*X98000D01* +X95000Y168250D02*X95750Y167500D01* +X95000Y172750D02*Y168250D01* +Y172750D02*X95750Y173500D01* +X98000D01* +X99800Y169750D02*Y168250D01* +Y169750D02*X100550Y170500D01* +X102050D01* +X102800Y169750D01* +Y168250D01* +X102050Y167500D02*X102800Y168250D01* +X100550Y167500D02*X102050D01* +X99800Y168250D02*X100550Y167500D01* +X104600Y170500D02*Y168250D01* +X105350Y167500D01* +X106850D01* +X107600Y168250D01* +Y170500D02*Y168250D01* +X110150Y169750D02*Y167500D01* +Y169750D02*X110900Y170500D01* +X111650D01* +X112400Y169750D01* +Y167500D01* +X109400Y170500D02*X110150Y169750D01* +X114950Y173500D02*Y168250D01* +X115700Y167500D01* +X114200Y171250D02*X115700D01* +X95000Y164250D02*X117200D01* +X130750Y173500D02*Y167500D01* +X130000Y173500D02*X133000D01* +X133750Y172750D01* +Y171250D01* +X133000Y170500D02*X133750Y171250D01* +X130750Y170500D02*X133000D01* +X135550Y173500D02*Y168250D01* +X136300Y167500D01* +X140050Y170500D02*X140800Y169750D01* +X138550Y170500D02*X140050D01* +X137800Y169750D02*X138550Y170500D01* +X137800Y169750D02*Y168250D01* +X138550Y167500D01* +X140800Y170500D02*Y168250D01* +X141550Y167500D01* +X138550D02*X140050D01* +X140800Y168250D01* +X144100Y173500D02*Y168250D01* +X144850Y167500D01* +X143350Y171250D02*X144850D01* +X147100Y167500D02*X149350D01* +X146350Y168250D02*X147100Y167500D01* +X146350Y169750D02*Y168250D01* +Y169750D02*X147100Y170500D01* +X148600D01* +X149350Y169750D01* +X146350Y169000D02*X149350D01* +Y169750D02*Y169000D01* +X154150Y173500D02*Y167500D01* +X153400D02*X154150Y168250D01* +X151900Y167500D02*X153400D01* +X151150Y168250D02*X151900Y167500D01* +X151150Y169750D02*Y168250D01* +Y169750D02*X151900Y170500D01* +X153400D01* +X154150Y169750D01* +X157450Y170500D02*Y169750D01* +Y168250D02*Y167500D01* +X155950Y172750D02*Y172000D01* +Y172750D02*X156700Y173500D01* +X158200D01* +X158950Y172750D01* +Y172000D01* +X157450Y170500D02*X158950Y172000D01* +X130000Y164250D02*X160750D01* +X0Y188500D02*X3000D01* +X1500D02*Y182500D01* +X4800Y188500D02*Y182500D01* +Y184750D02*X5550Y185500D01* +X7050D01* +X7800Y184750D01* +Y182500D01* +X10350D02*X12600D01* +X9600Y183250D02*X10350Y182500D01* +X9600Y184750D02*Y183250D01* +Y184750D02*X10350Y185500D01* +X11850D01* +X12600Y184750D01* +X9600Y184000D02*X12600D01* +Y184750D02*Y184000D01* +X15150Y184750D02*Y182500D01* +Y184750D02*X15900Y185500D01* +X17400D01* +X14400D02*X15150Y184750D01* +X19950Y182500D02*X22200D01* +X19200Y183250D02*X19950Y182500D01* +X19200Y184750D02*Y183250D01* +Y184750D02*X19950Y185500D01* +X21450D01* +X22200Y184750D01* +X19200Y184000D02*X22200D01* +Y184750D02*Y184000D01* +X28950Y185500D02*X29700Y184750D01* +X27450Y185500D02*X28950D01* +X26700Y184750D02*X27450Y185500D01* +X26700Y184750D02*Y183250D01* +X27450Y182500D01* +X29700Y185500D02*Y183250D01* +X30450Y182500D01* +X27450D02*X28950D01* +X29700Y183250D01* +X33000Y184750D02*Y182500D01* +Y184750D02*X33750Y185500D01* +X35250D01* +X32250D02*X33000Y184750D01* +X37800Y182500D02*X40050D01* +X37050Y183250D02*X37800Y182500D01* +X37050Y184750D02*Y183250D01* +Y184750D02*X37800Y185500D01* +X39300D01* +X40050Y184750D01* +X37050Y184000D02*X40050D01* +Y184750D02*Y184000D01* +X44550Y187750D02*X45300Y188500D01* +X47550D01* +X48300Y187750D01* +Y186250D01* +X44550Y182500D02*X48300Y186250D01* +X44550Y182500D02*X48300D01* +X55800Y188500D02*Y182500D01* +X55050D02*X55800Y183250D01* +X53550Y182500D02*X55050D01* +X52800Y183250D02*X53550Y182500D01* +X52800Y184750D02*Y183250D01* +Y184750D02*X53550Y185500D01* +X55050D01* +X55800Y184750D01* +X57600Y187000D02*Y186250D01* +Y184750D02*Y182500D01* +X59850Y187750D02*Y182500D01* +Y187750D02*X60600Y188500D01* +X61350D01* +X59100Y185500D02*X60600D01* +X63600Y187750D02*Y182500D01* +Y187750D02*X64350Y188500D01* +X65100D01* +X62850Y185500D02*X64350D01* +X67350Y182500D02*X69600D01* +X66600Y183250D02*X67350Y182500D01* +X66600Y184750D02*Y183250D01* +Y184750D02*X67350Y185500D01* +X68850D01* +X69600Y184750D01* +X66600Y184000D02*X69600D01* +Y184750D02*Y184000D01* +X72150Y184750D02*Y182500D01* +Y184750D02*X72900Y185500D01* +X74400D01* +X71400D02*X72150Y184750D01* +X76950Y182500D02*X79200D01* +X76200Y183250D02*X76950Y182500D01* +X76200Y184750D02*Y183250D01* +Y184750D02*X76950Y185500D01* +X78450D01* +X79200Y184750D01* +X76200Y184000D02*X79200D01* +Y184750D02*Y184000D01* +X81750Y184750D02*Y182500D01* +Y184750D02*X82500Y185500D01* +X83250D01* +X84000Y184750D01* +Y182500D01* +X81000Y185500D02*X81750Y184750D01* +X86550Y188500D02*Y183250D01* +X87300Y182500D01* +X85800Y186250D02*X87300D01* +X94500Y188500D02*Y182500D01* +X93750D02*X94500Y183250D01* +X92250Y182500D02*X93750D01* +X91500Y183250D02*X92250Y182500D01* +X91500Y184750D02*Y183250D01* +Y184750D02*X92250Y185500D01* +X93750D01* +X94500Y184750D01* +X97050D02*Y182500D01* +Y184750D02*X97800Y185500D01* +X99300D01* +X96300D02*X97050Y184750D01* +X101100Y187000D02*Y186250D01* +Y184750D02*Y182500D01* +X102600Y188500D02*Y183250D01* +X103350Y182500D01* +X104850Y188500D02*Y183250D01* +X105600Y182500D01* +X110550D02*X112800D01* +X113550Y183250D01* +X112800Y184000D02*X113550Y183250D01* +X110550Y184000D02*X112800D01* +X109800Y184750D02*X110550Y184000D01* +X109800Y184750D02*X110550Y185500D01* +X112800D01* +X113550Y184750D01* +X109800Y183250D02*X110550Y182500D01* +X115350Y187000D02*Y186250D01* +Y184750D02*Y182500D01* +X116850Y185500D02*X119850D01* +X116850Y182500D02*X119850Y185500D01* +X116850Y182500D02*X119850D01* +X122400D02*X124650D01* +X121650Y183250D02*X122400Y182500D01* +X121650Y184750D02*Y183250D01* +Y184750D02*X122400Y185500D01* +X123900D01* +X124650Y184750D01* +X121650Y184000D02*X124650D01* +Y184750D02*Y184000D01* +X127200Y182500D02*X129450D01* +X130200Y183250D01* +X129450Y184000D02*X130200Y183250D01* +X127200Y184000D02*X129450D01* +X126450Y184750D02*X127200Y184000D01* +X126450Y184750D02*X127200Y185500D01* +X129450D01* +X130200Y184750D01* +X126450Y183250D02*X127200Y182500D01* +X134700Y185500D02*Y183250D01* +X135450Y182500D01* +X136950D01* +X137700Y183250D01* +Y185500D02*Y183250D01* +X140250Y182500D02*X142500D01* +X143250Y183250D01* +X142500Y184000D02*X143250Y183250D01* +X140250Y184000D02*X142500D01* +X139500Y184750D02*X140250Y184000D01* +X139500Y184750D02*X140250Y185500D01* +X142500D01* +X143250Y184750D01* +X139500Y183250D02*X140250Y182500D01* +X145800D02*X148050D01* +X145050Y183250D02*X145800Y182500D01* +X145050Y184750D02*Y183250D01* +Y184750D02*X145800Y185500D01* +X147300D01* +X148050Y184750D01* +X145050Y184000D02*X148050D01* +Y184750D02*Y184000D01* +X152850Y188500D02*Y182500D01* +X152100D02*X152850Y183250D01* +X150600Y182500D02*X152100D01* +X149850Y183250D02*X150600Y182500D01* +X149850Y184750D02*Y183250D01* +Y184750D02*X150600Y185500D01* +X152100D01* +X152850Y184750D01* +X157350Y187000D02*Y186250D01* +Y184750D02*Y182500D01* +X159600Y184750D02*Y182500D01* +Y184750D02*X160350Y185500D01* +X161100D01* +X161850Y184750D01* +Y182500D01* +X158850Y185500D02*X159600Y184750D01* +X167100Y188500D02*Y183250D01* +X167850Y182500D01* +X166350Y186250D02*X167850D01* +X169350Y188500D02*Y182500D01* +Y184750D02*X170100Y185500D01* +X171600D01* +X172350Y184750D01* +Y182500D01* +X174150Y187000D02*Y186250D01* +Y184750D02*Y182500D01* +X176400D02*X178650D01* +X179400Y183250D01* +X178650Y184000D02*X179400Y183250D01* +X176400Y184000D02*X178650D01* +X175650Y184750D02*X176400Y184000D01* +X175650Y184750D02*X176400Y185500D01* +X178650D01* +X179400Y184750D01* +X175650Y183250D02*X176400Y182500D01* +X183900Y188500D02*Y183250D01* +X184650Y182500D01* +X188400Y185500D02*X189150Y184750D01* +X186900Y185500D02*X188400D01* +X186150Y184750D02*X186900Y185500D01* +X186150Y184750D02*Y183250D01* +X186900Y182500D01* +X189150Y185500D02*Y183250D01* +X189900Y182500D01* +X186900D02*X188400D01* +X189150Y183250D01* +X191700Y185500D02*Y183250D01* +X192450Y182500D01* +X194700Y185500D02*Y181000D01* +X193950Y180250D02*X194700Y181000D01* +X192450Y180250D02*X193950D01* +X191700Y181000D02*X192450Y180250D01* +Y182500D02*X193950D01* +X194700Y183250D01* +X196500Y184750D02*Y183250D01* +Y184750D02*X197250Y185500D01* +X198750D01* +X199500Y184750D01* +Y183250D01* +X198750Y182500D02*X199500Y183250D01* +X197250Y182500D02*X198750D01* +X196500Y183250D02*X197250Y182500D01* +X201300Y185500D02*Y183250D01* +X202050Y182500D01* +X203550D01* +X204300Y183250D01* +Y185500D02*Y183250D01* +X206850Y188500D02*Y183250D01* +X207600Y182500D01* +X206100Y186250D02*X207600D01* +X209100Y181000D02*X210600Y182500D01* +X215100Y187750D02*X215850Y188500D01* +X217350D01* +X218100Y187750D01* +Y183250D01* +X217350Y182500D02*X218100Y183250D01* +X215850Y182500D02*X217350D01* +X215100Y183250D02*X215850Y182500D01* +Y185500D02*X218100D01* +X222600Y188500D02*Y182500D01* +Y184750D02*X223350Y185500D01* +X224850D01* +X225600Y184750D01* +Y182500D01* +X227400Y184750D02*Y183250D01* +Y184750D02*X228150Y185500D01* +X229650D01* +X230400Y184750D01* +Y183250D01* +X229650Y182500D02*X230400Y183250D01* +X228150Y182500D02*X229650D01* +X227400Y183250D02*X228150Y182500D01* +X232200Y188500D02*Y183250D01* +X232950Y182500D01* +X235200D02*X237450D01* +X234450Y183250D02*X235200Y182500D01* +X234450Y184750D02*Y183250D01* +Y184750D02*X235200Y185500D01* +X236700D01* +X237450Y184750D01* +X234450Y184000D02*X237450D01* +Y184750D02*Y184000D01* +X240000Y182500D02*X242250D01* +X243000Y183250D01* +X242250Y184000D02*X243000Y183250D01* +X240000Y184000D02*X242250D01* +X239250Y184750D02*X240000Y184000D01* +X239250Y184750D02*X240000Y185500D01* +X242250D01* +X243000Y184750D01* +X239250Y183250D02*X240000Y182500D01* +X248250Y188500D02*Y183250D01* +X249000Y182500D01* +X247500Y186250D02*X249000D01* +X250500Y184750D02*Y183250D01* +Y184750D02*X251250Y185500D01* +X252750D01* +X253500Y184750D01* +Y183250D01* +X252750Y182500D02*X253500Y183250D01* +X251250Y182500D02*X252750D01* +X250500Y183250D02*X251250Y182500D01* +X256050Y188500D02*Y183250D01* +X256800Y182500D01* +X255300Y186250D02*X256800D01* +X260550Y185500D02*X261300Y184750D01* +X259050Y185500D02*X260550D01* +X258300Y184750D02*X259050Y185500D01* +X258300Y184750D02*Y183250D01* +X259050Y182500D01* +X261300Y185500D02*Y183250D01* +X262050Y182500D01* +X259050D02*X260550D01* +X261300Y183250D01* +X263850Y188500D02*Y183250D01* +X264600Y182500D01* +G54D36*X0Y100000D02*X200000D01* +X0D02*Y0D01* +X200000Y100000D02*Y0D01* +X0D02*X200000D01* +G54D35*Y113500D02*Y107500D01* +Y113500D02*X202250Y111250D01* +X204500Y113500D01* +Y107500D01* +X208550Y110500D02*X209300Y109750D01* +X207050Y110500D02*X208550D01* +X206300Y109750D02*X207050Y110500D01* +X206300Y109750D02*Y108250D01* +X207050Y107500D01* +X209300Y110500D02*Y108250D01* +X210050Y107500D01* +X207050D02*X208550D01* +X209300Y108250D01* +X211850Y110500D02*X214850Y107500D01* +X211850D02*X214850Y110500D01* +X216650Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X218900Y109750D02*Y107500D01* +Y109750D02*X219650Y110500D01* +X220400D01* +X221150Y109750D01* +Y107500D01* +Y109750D02*X221900Y110500D01* +X222650D01* +X223400Y109750D01* +Y107500D01* +X218150Y110500D02*X218900Y109750D01* +X225200Y110500D02*Y108250D01* +X225950Y107500D01* +X227450D01* +X228200Y108250D01* +Y110500D02*Y108250D01* +X230750Y109750D02*Y107500D01* +Y109750D02*X231500Y110500D01* +X232250D01* +X233000Y109750D01* +Y107500D01* +Y109750D02*X233750Y110500D01* +X234500D01* +X235250Y109750D01* +Y107500D01* +X230000Y110500D02*X230750Y109750D01* +X240500Y113500D02*Y107500D01* +X242750Y113500D02*X243500Y112750D01* +Y108250D01* +X242750Y107500D02*X243500Y108250D01* +X239750Y107500D02*X242750D01* +X239750Y113500D02*X242750D01* +X245300Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X247550Y109750D02*Y107500D01* +Y109750D02*X248300Y110500D01* +X249050D01* +X249800Y109750D01* +Y107500D01* +Y109750D02*X250550Y110500D01* +X251300D01* +X252050Y109750D01* +Y107500D01* +X246800Y110500D02*X247550Y109750D01* +X254600Y107500D02*X256850D01* +X253850Y108250D02*X254600Y107500D01* +X253850Y109750D02*Y108250D01* +Y109750D02*X254600Y110500D01* +X256100D01* +X256850Y109750D01* +X253850Y109000D02*X256850D01* +Y109750D02*Y109000D01* +X259400Y109750D02*Y107500D01* +Y109750D02*X260150Y110500D01* +X260900D01* +X261650Y109750D01* +Y107500D01* +X258650Y110500D02*X259400Y109750D01* +X264200Y107500D02*X266450D01* +X267200Y108250D01* +X266450Y109000D02*X267200Y108250D01* +X264200Y109000D02*X266450D01* +X263450Y109750D02*X264200Y109000D01* +X263450Y109750D02*X264200Y110500D01* +X266450D01* +X267200Y109750D01* +X263450Y108250D02*X264200Y107500D01* +X269000Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X270500Y109750D02*Y108250D01* +Y109750D02*X271250Y110500D01* +X272750D01* +X273500Y109750D01* +Y108250D01* +X272750Y107500D02*X273500Y108250D01* +X271250Y107500D02*X272750D01* +X270500Y108250D02*X271250Y107500D01* +X276050Y109750D02*Y107500D01* +Y109750D02*X276800Y110500D01* +X277550D01* +X278300Y109750D01* +Y107500D01* +X275300Y110500D02*X276050Y109750D01* +X280850Y107500D02*X283100D01* +X283850Y108250D01* +X283100Y109000D02*X283850Y108250D01* +X280850Y109000D02*X283100D01* +X280100Y109750D02*X280850Y109000D01* +X280100Y109750D02*X280850Y110500D01* +X283100D01* +X283850Y109750D01* +X280100Y108250D02*X280850Y107500D01* +X285650Y111250D02*X286400D01* +X285650Y109750D02*X286400D01* +X290900Y112750D02*X291650Y113500D01* +X293900D01* +X294650Y112750D01* +Y111250D01* +X290900Y107500D02*X294650Y111250D01* +X290900Y107500D02*X294650D01* +X296450Y108250D02*X297200Y107500D01* +X296450Y112750D02*Y108250D01* +Y112750D02*X297200Y113500D01* +X298700D01* +X299450Y112750D01* +Y108250D01* +X298700Y107500D02*X299450Y108250D01* +X297200Y107500D02*X298700D01* +X296450Y109000D02*X299450Y112000D01* +X301250Y108250D02*X302000Y107500D01* +X301250Y112750D02*Y108250D01* +Y112750D02*X302000Y113500D01* +X303500D01* +X304250Y112750D01* +Y108250D01* +X303500Y107500D02*X304250Y108250D01* +X302000Y107500D02*X303500D01* +X301250Y109000D02*X304250Y112000D01* +X306050Y108250D02*X306800Y107500D01* +X306050Y112750D02*Y108250D01* +Y112750D02*X306800Y113500D01* +X308300D01* +X309050Y112750D01* +Y108250D01* +X308300Y107500D02*X309050Y108250D01* +X306800Y107500D02*X308300D01* +X306050Y109000D02*X309050Y112000D01* +X310850Y107500D02*X311600D01* +X313400Y108250D02*X314150Y107500D01* +X313400Y112750D02*Y108250D01* +Y112750D02*X314150Y113500D01* +X315650D01* +X316400Y112750D01* +Y108250D01* +X315650Y107500D02*X316400Y108250D01* +X314150Y107500D02*X315650D01* +X313400Y109000D02*X316400Y112000D01* +X318200Y108250D02*X318950Y107500D01* +X318200Y112750D02*Y108250D01* +Y112750D02*X318950Y113500D01* +X320450D01* +X321200Y112750D01* +Y108250D01* +X320450Y107500D02*X321200Y108250D01* +X318950Y107500D02*X320450D01* +X318200Y109000D02*X321200Y112000D01* +X323000Y108250D02*X323750Y107500D01* +X323000Y112750D02*Y108250D01* +Y112750D02*X323750Y113500D01* +X325250D01* +X326000Y112750D01* +Y108250D01* +X325250Y107500D02*X326000Y108250D01* +X323750Y107500D02*X325250D01* +X323000Y109000D02*X326000Y112000D01* +X327800Y108250D02*X328550Y107500D01* +X327800Y112750D02*Y108250D01* +Y112750D02*X328550Y113500D01* +X330050D01* +X330800Y112750D01* +Y108250D01* +X330050Y107500D02*X330800Y108250D01* +X328550Y107500D02*X330050D01* +X327800Y109000D02*X330800Y112000D01* +X332600Y108250D02*X333350Y107500D01* +X332600Y112750D02*Y108250D01* +Y112750D02*X333350Y113500D01* +X334850D01* +X335600Y112750D01* +Y108250D01* +X334850Y107500D02*X335600Y108250D01* +X333350Y107500D02*X334850D01* +X332600Y109000D02*X335600Y112000D01* +X337400Y108250D02*X338150Y107500D01* +X337400Y112750D02*Y108250D01* +Y112750D02*X338150Y113500D01* +X339650D01* +X340400Y112750D01* +Y108250D01* +X339650Y107500D02*X340400Y108250D01* +X338150Y107500D02*X339650D01* +X337400Y109000D02*X340400Y112000D01* +X345650Y109750D02*Y107500D01* +Y109750D02*X346400Y110500D01* +X347150D01* +X347900Y109750D01* +Y107500D01* +Y109750D02*X348650Y110500D01* +X349400D01* +X350150Y109750D01* +Y107500D01* +X344900Y110500D02*X345650Y109750D01* +X351950Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X353450Y113500D02*Y108250D01* +X354200Y107500D01* +X356450D02*X358700D01* +X359450Y108250D01* +X358700Y109000D02*X359450Y108250D01* +X356450Y109000D02*X358700D01* +X355700Y109750D02*X356450Y109000D01* +X355700Y109750D02*X356450Y110500D01* +X358700D01* +X359450Y109750D01* +X355700Y108250D02*X356450Y107500D01* +X363950Y110500D02*Y108250D01* +X364700Y107500D01* +X365450D01* +X366200Y108250D01* +Y110500D02*Y108250D01* +X366950Y107500D01* +X367700D01* +X368450Y108250D01* +Y110500D02*Y108250D01* +X370250Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X374750Y113500D02*Y107500D01* +X374000D02*X374750Y108250D01* +X372500Y107500D02*X374000D01* +X371750Y108250D02*X372500Y107500D01* +X371750Y109750D02*Y108250D01* +Y109750D02*X372500Y110500D01* +X374000D01* +X374750Y109750D01* +X377300Y107500D02*X379550D01* +X376550Y108250D02*X377300Y107500D01* +X376550Y109750D02*Y108250D01* +Y109750D02*X377300Y110500D01* +X378800D01* +X379550Y109750D01* +X376550Y109000D02*X379550D01* +Y109750D02*Y109000D01* +X381350Y106000D02*X382850Y107500D01* +X388100D02*X389600D01* +X388850Y113500D02*Y107500D01* +X387350Y112000D02*X388850Y113500D01* +X391400Y108250D02*X392150Y107500D01* +X391400Y112750D02*Y108250D01* +Y112750D02*X392150Y113500D01* +X393650D01* +X394400Y112750D01* +Y108250D01* +X393650Y107500D02*X394400Y108250D01* +X392150Y107500D02*X393650D01* +X391400Y109000D02*X394400Y112000D01* +X396200Y108250D02*X396950Y107500D01* +X396200Y112750D02*Y108250D01* +Y112750D02*X396950Y113500D01* +X398450D01* +X399200Y112750D01* +Y108250D01* +X398450Y107500D02*X399200Y108250D01* +X396950Y107500D02*X398450D01* +X396200Y109000D02*X399200Y112000D01* +X401000Y108250D02*X401750Y107500D01* +X401000Y112750D02*Y108250D01* +Y112750D02*X401750Y113500D01* +X403250D01* +X404000Y112750D01* +Y108250D01* +X403250Y107500D02*X404000Y108250D01* +X401750Y107500D02*X403250D01* +X401000Y109000D02*X404000Y112000D01* +X405800Y107500D02*X406550D01* +X408350Y108250D02*X409100Y107500D01* +X408350Y112750D02*Y108250D01* +Y112750D02*X409100Y113500D01* +X410600D01* +X411350Y112750D01* +Y108250D01* +X410600Y107500D02*X411350Y108250D01* +X409100Y107500D02*X410600D01* +X408350Y109000D02*X411350Y112000D01* +X413150Y108250D02*X413900Y107500D01* +X413150Y112750D02*Y108250D01* +Y112750D02*X413900Y113500D01* +X415400D01* +X416150Y112750D01* +Y108250D01* +X415400Y107500D02*X416150Y108250D01* +X413900Y107500D02*X415400D01* +X413150Y109000D02*X416150Y112000D01* +X417950Y108250D02*X418700Y107500D01* +X417950Y112750D02*Y108250D01* +Y112750D02*X418700Y113500D01* +X420200D01* +X420950Y112750D01* +Y108250D01* +X420200Y107500D02*X420950Y108250D01* +X418700Y107500D02*X420200D01* +X417950Y109000D02*X420950Y112000D01* +X422750Y108250D02*X423500Y107500D01* +X422750Y112750D02*Y108250D01* +Y112750D02*X423500Y113500D01* +X425000D01* +X425750Y112750D01* +Y108250D01* +X425000Y107500D02*X425750Y108250D01* +X423500Y107500D02*X425000D01* +X422750Y109000D02*X425750Y112000D01* +X427550Y108250D02*X428300Y107500D01* +X427550Y112750D02*Y108250D01* +Y112750D02*X428300Y113500D01* +X429800D01* +X430550Y112750D01* +Y108250D01* +X429800Y107500D02*X430550Y108250D01* +X428300Y107500D02*X429800D01* +X427550Y109000D02*X430550Y112000D01* +X432350Y108250D02*X433100Y107500D01* +X432350Y112750D02*Y108250D01* +Y112750D02*X433100Y113500D01* +X434600D01* +X435350Y112750D01* +Y108250D01* +X434600Y107500D02*X435350Y108250D01* +X433100Y107500D02*X434600D01* +X432350Y109000D02*X435350Y112000D01* +X440600Y109750D02*Y107500D01* +Y109750D02*X441350Y110500D01* +X442100D01* +X442850Y109750D01* +Y107500D01* +Y109750D02*X443600Y110500D01* +X444350D01* +X445100Y109750D01* +Y107500D01* +X439850Y110500D02*X440600Y109750D01* +X446900Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X448400Y113500D02*Y108250D01* +X449150Y107500D01* +X451400D02*X453650D01* +X454400Y108250D01* +X453650Y109000D02*X454400Y108250D01* +X451400Y109000D02*X453650D01* +X450650Y109750D02*X451400Y109000D01* +X450650Y109750D02*X451400Y110500D01* +X453650D01* +X454400Y109750D01* +X450650Y108250D02*X451400Y107500D01* +X458900Y113500D02*Y107500D01* +Y109750D02*X459650Y110500D01* +X461150D01* +X461900Y109750D01* +Y107500D01* +X463700Y112000D02*Y111250D01* +Y109750D02*Y107500D01* +X467450Y110500D02*X468200Y109750D01* +X465950Y110500D02*X467450D01* +X465200Y109750D02*X465950Y110500D01* +X465200Y109750D02*Y108250D01* +X465950Y107500D01* +X467450D01* +X468200Y108250D01* +X465200Y106000D02*X465950Y105250D01* +X467450D01* +X468200Y106000D01* +Y110500D02*Y106000D01* +X470000Y113500D02*Y107500D01* +Y109750D02*X470750Y110500D01* +X472250D01* +X473000Y109750D01* +Y107500D01* +X0Y-9500D02*X3000D01* +X3750Y-8750D01* +Y-7250D02*Y-8750D01* +X3000Y-6500D02*X3750Y-7250D01* +X750Y-6500D02*X3000D01* +X750Y-3500D02*Y-9500D01* +X0Y-3500D02*X3000D01* +X3750Y-4250D01* +Y-5750D01* +X3000Y-6500D02*X3750Y-5750D01* +X5550Y-7250D02*Y-8750D01* +Y-7250D02*X6300Y-6500D01* +X7800D01* +X8550Y-7250D01* +Y-8750D01* +X7800Y-9500D02*X8550Y-8750D01* +X6300Y-9500D02*X7800D01* +X5550Y-8750D02*X6300Y-9500D01* +X12600Y-6500D02*X13350Y-7250D01* +X11100Y-6500D02*X12600D01* +X10350Y-7250D02*X11100Y-6500D01* +X10350Y-7250D02*Y-8750D01* +X11100Y-9500D01* +X13350Y-6500D02*Y-8750D01* +X14100Y-9500D01* +X11100D02*X12600D01* +X13350Y-8750D01* +X16650Y-7250D02*Y-9500D01* +Y-7250D02*X17400Y-6500D01* +X18900D01* +X15900D02*X16650Y-7250D01* +X23700Y-3500D02*Y-9500D01* +X22950D02*X23700Y-8750D01* +X21450Y-9500D02*X22950D01* +X20700Y-8750D02*X21450Y-9500D01* +X20700Y-7250D02*Y-8750D01* +Y-7250D02*X21450Y-6500D01* +X22950D01* +X23700Y-7250D01* +X28200D02*Y-8750D01* +Y-7250D02*X28950Y-6500D01* +X30450D01* +X31200Y-7250D01* +Y-8750D01* +X30450Y-9500D02*X31200Y-8750D01* +X28950Y-9500D02*X30450D01* +X28200Y-8750D02*X28950Y-9500D01* +X33000Y-6500D02*Y-8750D01* +X33750Y-9500D01* +X35250D01* +X36000Y-8750D01* +Y-6500D02*Y-8750D01* +X38550Y-3500D02*Y-8750D01* +X39300Y-9500D01* +X37800Y-5750D02*X39300D01* +X40800Y-3500D02*Y-8750D01* +X41550Y-9500D01* +X43050Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X45300Y-7250D02*Y-9500D01* +Y-7250D02*X46050Y-6500D01* +X46800D01* +X47550Y-7250D01* +Y-9500D01* +X44550Y-6500D02*X45300Y-7250D01* +X50100Y-9500D02*X52350D01* +X49350Y-8750D02*X50100Y-9500D01* +X49350Y-7250D02*Y-8750D01* +Y-7250D02*X50100Y-6500D01* +X51600D01* +X52350Y-7250D01* +X49350Y-8000D02*X52350D01* +Y-7250D02*Y-8000D01* +X56850Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X59100D02*X61350D01* +X62100Y-8750D01* +X61350Y-8000D02*X62100Y-8750D01* +X59100Y-8000D02*X61350D01* +X58350Y-7250D02*X59100Y-8000D01* +X58350Y-7250D02*X59100Y-6500D01* +X61350D01* +X62100Y-7250D01* +X58350Y-8750D02*X59100Y-9500D01* +X67350Y-3500D02*Y-8750D01* +X68100Y-9500D01* +X66600Y-5750D02*X68100D01* +X69600Y-3500D02*Y-9500D01* +Y-7250D02*X70350Y-6500D01* +X71850D01* +X72600Y-7250D01* +Y-9500D01* +X75150D02*X77400D01* +X74400Y-8750D02*X75150Y-9500D01* +X74400Y-7250D02*Y-8750D01* +Y-7250D02*X75150Y-6500D01* +X76650D01* +X77400Y-7250D01* +X74400Y-8000D02*X77400D01* +Y-7250D02*Y-8000D01* +X82650Y-6500D02*X84900D01* +X81900Y-7250D02*X82650Y-6500D01* +X81900Y-7250D02*Y-8750D01* +X82650Y-9500D01* +X84900D01* +X87450D02*X89700D01* +X86700Y-8750D02*X87450Y-9500D01* +X86700Y-7250D02*Y-8750D01* +Y-7250D02*X87450Y-6500D01* +X88950D01* +X89700Y-7250D01* +X86700Y-8000D02*X89700D01* +Y-7250D02*Y-8000D01* +X92250Y-7250D02*Y-9500D01* +Y-7250D02*X93000Y-6500D01* +X93750D01* +X94500Y-7250D01* +Y-9500D01* +X91500Y-6500D02*X92250Y-7250D01* +X97050Y-3500D02*Y-8750D01* +X97800Y-9500D01* +X96300Y-5750D02*X97800D01* +X100050Y-9500D02*X102300D01* +X99300Y-8750D02*X100050Y-9500D01* +X99300Y-7250D02*Y-8750D01* +Y-7250D02*X100050Y-6500D01* +X101550D01* +X102300Y-7250D01* +X99300Y-8000D02*X102300D01* +Y-7250D02*Y-8000D01* +X104850Y-7250D02*Y-9500D01* +Y-7250D02*X105600Y-6500D01* +X107100D01* +X104100D02*X104850Y-7250D01* +X108900Y-3500D02*Y-8750D01* +X109650Y-9500D01* +X111150Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X113400Y-7250D02*Y-9500D01* +Y-7250D02*X114150Y-6500D01* +X114900D01* +X115650Y-7250D01* +Y-9500D01* +X112650Y-6500D02*X113400Y-7250D01* +X118200Y-9500D02*X120450D01* +X117450Y-8750D02*X118200Y-9500D01* +X117450Y-7250D02*Y-8750D01* +Y-7250D02*X118200Y-6500D01* +X119700D01* +X120450Y-7250D01* +X117450Y-8000D02*X120450D01* +Y-7250D02*Y-8000D01* +X124950Y-7250D02*Y-8750D01* +Y-7250D02*X125700Y-6500D01* +X127200D01* +X127950Y-7250D01* +Y-8750D01* +X127200Y-9500D02*X127950Y-8750D01* +X125700Y-9500D02*X127200D01* +X124950Y-8750D02*X125700Y-9500D01* +X130500Y-4250D02*Y-9500D01* +Y-4250D02*X131250Y-3500D01* +X132000D01* +X129750Y-6500D02*X131250D01* +X136950Y-3500D02*Y-8750D01* +X137700Y-9500D01* +X136200Y-5750D02*X137700D01* +X139200Y-3500D02*Y-9500D01* +Y-7250D02*X139950Y-6500D01* +X141450D01* +X142200Y-7250D01* +Y-9500D01* +X144000Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X146250D02*X148500D01* +X149250Y-8750D01* +X148500Y-8000D02*X149250Y-8750D01* +X146250Y-8000D02*X148500D01* +X145500Y-7250D02*X146250Y-8000D01* +X145500Y-7250D02*X146250Y-6500D01* +X148500D01* +X149250Y-7250D01* +X145500Y-8750D02*X146250Y-9500D01* +X153750Y-8750D02*X154500Y-9500D01* +X153750Y-7250D02*Y-8750D01* +Y-7250D02*X154500Y-6500D01* +X156000D01* +X156750Y-7250D01* +Y-8750D01* +X156000Y-9500D02*X156750Y-8750D01* +X154500Y-9500D02*X156000D01* +X153750Y-5750D02*X154500Y-6500D01* +X153750Y-4250D02*Y-5750D01* +Y-4250D02*X154500Y-3500D01* +X156000D01* +X156750Y-4250D01* +Y-5750D01* +X156000Y-6500D02*X156750Y-5750D01* +X158550Y-9500D02*X159300D01* +X161100Y-8750D02*X161850Y-9500D01* +X161100Y-4250D02*Y-8750D01* +Y-4250D02*X161850Y-3500D01* +X163350D01* +X164100Y-4250D01* +Y-8750D01* +X163350Y-9500D02*X164100Y-8750D01* +X161850Y-9500D02*X163350D01* +X161100Y-8000D02*X164100Y-5000D01* +X165900Y-8750D02*X166650Y-9500D01* +X165900Y-4250D02*Y-8750D01* +Y-4250D02*X166650Y-3500D01* +X168150D01* +X168900Y-4250D01* +Y-8750D01* +X168150Y-9500D02*X168900Y-8750D01* +X166650Y-9500D02*X168150D01* +X165900Y-8000D02*X168900Y-5000D01* +X170700Y-8750D02*X171450Y-9500D01* +X170700Y-4250D02*Y-8750D01* +Y-4250D02*X171450Y-3500D01* +X172950D01* +X173700Y-4250D01* +Y-8750D01* +X172950Y-9500D02*X173700Y-8750D01* +X171450Y-9500D02*X172950D01* +X170700Y-8000D02*X173700Y-5000D01* +X175500Y-8750D02*X176250Y-9500D01* +X175500Y-4250D02*Y-8750D01* +Y-4250D02*X176250Y-3500D01* +X177750D01* +X178500Y-4250D01* +Y-8750D01* +X177750Y-9500D02*X178500Y-8750D01* +X176250Y-9500D02*X177750D01* +X175500Y-8000D02*X178500Y-5000D01* +X180300Y-8750D02*X181050Y-9500D01* +X180300Y-4250D02*Y-8750D01* +Y-4250D02*X181050Y-3500D01* +X182550D01* +X183300Y-4250D01* +Y-8750D01* +X182550Y-9500D02*X183300Y-8750D01* +X181050Y-9500D02*X182550D01* +X180300Y-8000D02*X183300Y-5000D01* +X185100Y-8750D02*X185850Y-9500D01* +X185100Y-4250D02*Y-8750D01* +Y-4250D02*X185850Y-3500D01* +X187350D01* +X188100Y-4250D01* +Y-8750D01* +X187350Y-9500D02*X188100Y-8750D01* +X185850Y-9500D02*X187350D01* +X185100Y-8000D02*X188100Y-5000D01* +X193350Y-7250D02*Y-9500D01* +Y-7250D02*X194100Y-6500D01* +X194850D01* +X195600Y-7250D01* +Y-9500D01* +Y-7250D02*X196350Y-6500D01* +X197100D01* +X197850Y-7250D01* +Y-9500D01* +X192600Y-6500D02*X193350Y-7250D01* +X199650Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X201150Y-3500D02*Y-8750D01* +X201900Y-9500D01* +X206850Y-7250D02*Y-9500D01* +Y-7250D02*X207600Y-6500D01* +X209100D01* +X206100D02*X206850Y-7250D01* +X211650Y-9500D02*X213900D01* +X210900Y-8750D02*X211650Y-9500D01* +X210900Y-7250D02*Y-8750D01* +Y-7250D02*X211650Y-6500D01* +X213150D01* +X213900Y-7250D01* +X210900Y-8000D02*X213900D01* +Y-7250D02*Y-8000D01* +X216450Y-6500D02*X218700D01* +X215700Y-7250D02*X216450Y-6500D01* +X215700Y-7250D02*Y-8750D01* +X216450Y-9500D01* +X218700D01* +X221250Y-3500D02*Y-8750D01* +X222000Y-9500D01* +X220500Y-5750D02*X222000D01* +X225750Y-6500D02*X226500Y-7250D01* +X224250Y-6500D02*X225750D01* +X223500Y-7250D02*X224250Y-6500D01* +X223500Y-7250D02*Y-8750D01* +X224250Y-9500D01* +X226500Y-6500D02*Y-8750D01* +X227250Y-9500D01* +X224250D02*X225750D01* +X226500Y-8750D01* +X229800Y-7250D02*Y-9500D01* +Y-7250D02*X230550Y-6500D01* +X231300D01* +X232050Y-7250D01* +Y-9500D01* +X229050Y-6500D02*X229800Y-7250D01* +X236100Y-6500D02*X236850Y-7250D01* +X234600Y-6500D02*X236100D01* +X233850Y-7250D02*X234600Y-6500D01* +X233850Y-7250D02*Y-8750D01* +X234600Y-9500D01* +X236100D01* +X236850Y-8750D01* +X233850Y-11000D02*X234600Y-11750D01* +X236100D01* +X236850Y-11000D01* +Y-6500D02*Y-11000D01* +X238650Y-3500D02*Y-8750D01* +X239400Y-9500D01* +X241650D02*X243900D01* +X240900Y-8750D02*X241650Y-9500D01* +X240900Y-7250D02*Y-8750D01* +Y-7250D02*X241650Y-6500D01* +X243150D01* +X243900Y-7250D01* +X240900Y-8000D02*X243900D01* +Y-7250D02*Y-8000D01* +X248400Y-6500D02*X251400D01* +X255900Y-8750D02*X256650Y-9500D01* +X255900Y-4250D02*Y-8750D01* +Y-4250D02*X256650Y-3500D01* +X258150D01* +X258900Y-4250D01* +Y-8750D01* +X258150Y-9500D02*X258900Y-8750D01* +X256650Y-9500D02*X258150D01* +X255900Y-8000D02*X258900Y-5000D01* +X260700Y-11000D02*X262200Y-9500D01* +X264000Y-8750D02*X264750Y-9500D01* +X264000Y-4250D02*Y-8750D01* +Y-4250D02*X264750Y-3500D01* +X266250D01* +X267000Y-4250D01* +Y-8750D01* +X266250Y-9500D02*X267000Y-8750D01* +X264750Y-9500D02*X266250D01* +X264000Y-8000D02*X267000Y-5000D01* +X272250Y-3500D02*Y-8750D01* +X273000Y-9500D01* +X271500Y-5750D02*X273000D01* +X274500Y-7250D02*Y-8750D01* +Y-7250D02*X275250Y-6500D01* +X276750D01* +X277500Y-7250D01* +Y-8750D01* +X276750Y-9500D02*X277500Y-8750D01* +X275250Y-9500D02*X276750D01* +X274500Y-8750D02*X275250Y-9500D01* +X282000Y-4250D02*X282750Y-3500D01* +X285000D01* +X285750Y-4250D01* +Y-5750D01* +X282000Y-9500D02*X285750Y-5750D01* +X282000Y-9500D02*X285750D01* +X287550Y-8750D02*X288300Y-9500D01* +X287550Y-4250D02*Y-8750D01* +Y-4250D02*X288300Y-3500D01* +X289800D01* +X290550Y-4250D01* +Y-8750D01* +X289800Y-9500D02*X290550Y-8750D01* +X288300Y-9500D02*X289800D01* +X287550Y-8000D02*X290550Y-5000D01* +X292350Y-8750D02*X293100Y-9500D01* +X292350Y-4250D02*Y-8750D01* +Y-4250D02*X293100Y-3500D01* +X294600D01* +X295350Y-4250D01* +Y-8750D01* +X294600Y-9500D02*X295350Y-8750D01* +X293100Y-9500D02*X294600D01* +X292350Y-8000D02*X295350Y-5000D01* +X297150Y-8750D02*X297900Y-9500D01* +X297150Y-4250D02*Y-8750D01* +Y-4250D02*X297900Y-3500D01* +X299400D01* +X300150Y-4250D01* +Y-8750D01* +X299400Y-9500D02*X300150Y-8750D01* +X297900Y-9500D02*X299400D01* +X297150Y-8000D02*X300150Y-5000D01* +X301950Y-9500D02*X302700D01* +X304500Y-8750D02*X305250Y-9500D01* +X304500Y-4250D02*Y-8750D01* +Y-4250D02*X305250Y-3500D01* +X306750D01* +X307500Y-4250D01* +Y-8750D01* +X306750Y-9500D02*X307500Y-8750D01* +X305250Y-9500D02*X306750D01* +X304500Y-8000D02*X307500Y-5000D01* +X309300Y-8750D02*X310050Y-9500D01* +X309300Y-4250D02*Y-8750D01* +Y-4250D02*X310050Y-3500D01* +X311550D01* +X312300Y-4250D01* +Y-8750D01* +X311550Y-9500D02*X312300Y-8750D01* +X310050Y-9500D02*X311550D01* +X309300Y-8000D02*X312300Y-5000D01* +X314100Y-8750D02*X314850Y-9500D01* +X314100Y-4250D02*Y-8750D01* +Y-4250D02*X314850Y-3500D01* +X316350D01* +X317100Y-4250D01* +Y-8750D01* +X316350Y-9500D02*X317100Y-8750D01* +X314850Y-9500D02*X316350D01* +X314100Y-8000D02*X317100Y-5000D01* +X318900Y-8750D02*X319650Y-9500D01* +X318900Y-4250D02*Y-8750D01* +Y-4250D02*X319650Y-3500D01* +X321150D01* +X321900Y-4250D01* +Y-8750D01* +X321150Y-9500D02*X321900Y-8750D01* +X319650Y-9500D02*X321150D01* +X318900Y-8000D02*X321900Y-5000D01* +X323700Y-8750D02*X324450Y-9500D01* +X323700Y-4250D02*Y-8750D01* +Y-4250D02*X324450Y-3500D01* +X325950D01* +X326700Y-4250D01* +Y-8750D01* +X325950Y-9500D02*X326700Y-8750D01* +X324450Y-9500D02*X325950D01* +X323700Y-8000D02*X326700Y-5000D01* +X328500Y-8750D02*X329250Y-9500D01* +X328500Y-4250D02*Y-8750D01* +Y-4250D02*X329250Y-3500D01* +X330750D01* +X331500Y-4250D01* +Y-8750D01* +X330750Y-9500D02*X331500Y-8750D01* +X329250Y-9500D02*X330750D01* +X328500Y-8000D02*X331500Y-5000D01* +X333300Y-11000D02*X334800Y-9500D01* +X337350D02*X338850D01* +X338100Y-3500D02*Y-9500D01* +X336600Y-5000D02*X338100Y-3500D01* +X340650Y-8750D02*X341400Y-9500D01* +X340650Y-4250D02*Y-8750D01* +Y-4250D02*X341400Y-3500D01* +X342900D01* +X343650Y-4250D01* +Y-8750D01* +X342900Y-9500D02*X343650Y-8750D01* +X341400Y-9500D02*X342900D01* +X340650Y-8000D02*X343650Y-5000D01* +X345450Y-8750D02*X346200Y-9500D01* +X345450Y-4250D02*Y-8750D01* +Y-4250D02*X346200Y-3500D01* +X347700D01* +X348450Y-4250D01* +Y-8750D01* +X347700Y-9500D02*X348450Y-8750D01* +X346200Y-9500D02*X347700D01* +X345450Y-8000D02*X348450Y-5000D01* +X350250Y-8750D02*X351000Y-9500D01* +X350250Y-4250D02*Y-8750D01* +Y-4250D02*X351000Y-3500D01* +X352500D01* +X353250Y-4250D01* +Y-8750D01* +X352500Y-9500D02*X353250Y-8750D01* +X351000Y-9500D02*X352500D01* +X350250Y-8000D02*X353250Y-5000D01* +X355050Y-9500D02*X355800D01* +X357600Y-8750D02*X358350Y-9500D01* +X357600Y-4250D02*Y-8750D01* +Y-4250D02*X358350Y-3500D01* +X359850D01* +X360600Y-4250D01* +Y-8750D01* +X359850Y-9500D02*X360600Y-8750D01* +X358350Y-9500D02*X359850D01* +X357600Y-8000D02*X360600Y-5000D01* +X362400Y-8750D02*X363150Y-9500D01* +X362400Y-4250D02*Y-8750D01* +Y-4250D02*X363150Y-3500D01* +X364650D01* +X365400Y-4250D01* +Y-8750D01* +X364650Y-9500D02*X365400Y-8750D01* +X363150Y-9500D02*X364650D01* +X362400Y-8000D02*X365400Y-5000D01* +X367200Y-8750D02*X367950Y-9500D01* +X367200Y-4250D02*Y-8750D01* +Y-4250D02*X367950Y-3500D01* +X369450D01* +X370200Y-4250D01* +Y-8750D01* +X369450Y-9500D02*X370200Y-8750D01* +X367950Y-9500D02*X369450D01* +X367200Y-8000D02*X370200Y-5000D01* +X372000Y-8750D02*X372750Y-9500D01* +X372000Y-4250D02*Y-8750D01* +Y-4250D02*X372750Y-3500D01* +X374250D01* +X375000Y-4250D01* +Y-8750D01* +X374250Y-9500D02*X375000Y-8750D01* +X372750Y-9500D02*X374250D01* +X372000Y-8000D02*X375000Y-5000D01* +X376800Y-8750D02*X377550Y-9500D01* +X376800Y-4250D02*Y-8750D01* +Y-4250D02*X377550Y-3500D01* +X379050D01* +X379800Y-4250D01* +Y-8750D01* +X379050Y-9500D02*X379800Y-8750D01* +X377550Y-9500D02*X379050D01* +X376800Y-8000D02*X379800Y-5000D01* +X381600Y-8750D02*X382350Y-9500D01* +X381600Y-4250D02*Y-8750D01* +Y-4250D02*X382350Y-3500D01* +X383850D01* +X384600Y-4250D01* +Y-8750D01* +X383850Y-9500D02*X384600Y-8750D01* +X382350Y-9500D02*X383850D01* +X381600Y-8000D02*X384600Y-5000D01* +X389850Y-7250D02*Y-9500D01* +Y-7250D02*X390600Y-6500D01* +X391350D01* +X392100Y-7250D01* +Y-9500D01* +Y-7250D02*X392850Y-6500D01* +X393600D01* +X394350Y-7250D01* +Y-9500D01* +X389100Y-6500D02*X389850Y-7250D01* +X396150Y-5000D02*Y-5750D01* +Y-7250D02*Y-9500D01* +X397650Y-3500D02*Y-8750D01* +X398400Y-9500D01* +X400650D02*X402900D01* +X403650Y-8750D01* +X402900Y-8000D02*X403650Y-8750D01* +X400650Y-8000D02*X402900D01* +X399900Y-7250D02*X400650Y-8000D01* +X399900Y-7250D02*X400650Y-6500D01* +X402900D01* +X403650Y-7250D01* +X399900Y-8750D02*X400650Y-9500D01* +X200750Y128500D02*Y122500D01* +X203000Y128500D02*X203750Y127750D01* +Y123250D01* +X203000Y122500D02*X203750Y123250D01* +X200000Y122500D02*X203000D01* +X200000Y128500D02*X203000D01* +X207800Y125500D02*X208550Y124750D01* +X206300Y125500D02*X207800D01* +X205550Y124750D02*X206300Y125500D01* +X205550Y124750D02*Y123250D01* +X206300Y122500D01* +X208550Y125500D02*Y123250D01* +X209300Y122500D01* +X206300D02*X207800D01* +X208550Y123250D01* +X211850Y128500D02*Y123250D01* +X212600Y122500D01* +X211100Y126250D02*X212600D01* +X214850Y122500D02*X217100D01* +X214100Y123250D02*X214850Y122500D01* +X214100Y124750D02*Y123250D01* +Y124750D02*X214850Y125500D01* +X216350D01* +X217100Y124750D01* +X214100Y124000D02*X217100D01* +Y124750D02*Y124000D01* +X218900Y126250D02*X219650D01* +X218900Y124750D02*X219650D01* +X224150Y128500D02*X227150D01* +X225650D02*Y122500D01* +X228950Y128500D02*Y122500D01* +Y124750D02*X229700Y125500D01* +X231200D01* +X231950Y124750D01* +Y122500D01* +X233750Y125500D02*Y123250D01* +X234500Y122500D01* +X236000D01* +X236750Y123250D01* +Y125500D02*Y123250D01* +X244250Y128500D02*X245000Y127750D01* +X242000Y128500D02*X244250D01* +X241250Y127750D02*X242000Y128500D01* +X241250Y127750D02*Y126250D01* +X242000Y125500D01* +X244250D01* +X245000Y124750D01* +Y123250D01* +X244250Y122500D02*X245000Y123250D01* +X242000Y122500D02*X244250D01* +X241250Y123250D02*X242000Y122500D01* +X247550D02*X249800D01* +X246800Y123250D02*X247550Y122500D01* +X246800Y124750D02*Y123250D01* +Y124750D02*X247550Y125500D01* +X249050D01* +X249800Y124750D01* +X246800Y124000D02*X249800D01* +Y124750D02*Y124000D01* +X252350Y124750D02*Y120250D01* +X251600Y125500D02*X252350Y124750D01* +X253100Y125500D01* +X254600D01* +X255350Y124750D01* +Y123250D01* +X254600Y122500D02*X255350Y123250D01* +X253100Y122500D02*X254600D01* +X252350Y123250D02*X253100Y122500D01* +X263300D02*X264800D01* +X264050Y128500D02*Y122500D01* +X262550Y127000D02*X264050Y128500D01* +X269300Y127750D02*X270050Y128500D01* +X272300D01* +X273050Y127750D01* +Y126250D01* +X269300Y122500D02*X273050Y126250D01* +X269300Y122500D02*X273050D01* +X275600D02*X277100D01* +X276350Y128500D02*Y122500D01* +X274850Y127000D02*X276350Y128500D01* +X278900Y126250D02*X279650D01* +X278900Y124750D02*X279650D01* +X281450Y127750D02*X282200Y128500D01* +X284450D01* +X285200Y127750D01* +Y126250D01* +X281450Y122500D02*X285200Y126250D01* +X281450Y122500D02*X285200D01* +X287000Y127750D02*X287750Y128500D01* +X289250D01* +X290000Y127750D01* +Y123250D01* +X289250Y122500D02*X290000Y123250D01* +X287750Y122500D02*X289250D01* +X287000Y123250D02*X287750Y122500D01* +Y125500D02*X290000D01* +X291800Y126250D02*X292550D01* +X291800Y124750D02*X292550D01* +X294350Y127750D02*X295100Y128500D01* +X297350D01* +X298100Y127750D01* +Y126250D01* +X294350Y122500D02*X298100Y126250D01* +X294350Y122500D02*X298100D01* +X302150Y128500D02*X302900Y127750D01* +X300650Y128500D02*X302150D01* +X299900Y127750D02*X300650Y128500D01* +X299900Y127750D02*Y123250D01* +X300650Y122500D01* +X302150Y125500D02*X302900Y124750D01* +X299900Y125500D02*X302150D01* +X300650Y122500D02*X302150D01* +X302900Y123250D01* +Y124750D02*Y123250D01* +X307400Y127750D02*X308150Y128500D01* +X310400D01* +X311150Y127750D01* +Y126250D01* +X307400Y122500D02*X311150Y126250D01* +X307400Y122500D02*X311150D01* +X312950Y123250D02*X313700Y122500D01* +X312950Y127750D02*Y123250D01* +Y127750D02*X313700Y128500D01* +X315200D01* +X315950Y127750D01* +Y123250D01* +X315200Y122500D02*X315950Y123250D01* +X313700Y122500D02*X315200D01* +X312950Y124000D02*X315950Y127000D01* +X318500Y122500D02*X320000D01* +X319250Y128500D02*Y122500D01* +X317750Y127000D02*X319250Y128500D01* +X324050D02*X324800Y127750D01* +X322550Y128500D02*X324050D01* +X321800Y127750D02*X322550Y128500D01* +X321800Y127750D02*Y123250D01* +X322550Y122500D01* +X324050Y125500D02*X324800Y124750D01* +X321800Y125500D02*X324050D01* +X322550Y122500D02*X324050D01* +X324800Y123250D01* +Y124750D02*Y123250D01* +X329300Y128500D02*Y123250D01* +X330050Y122500D01* +X331550D01* +X332300Y123250D01* +Y128500D02*Y123250D01* +X334100Y128500D02*X337100D01* +X335600D02*Y122500D01* +X339650D02*X341900D01* +X338900Y123250D02*X339650Y122500D01* +X338900Y127750D02*Y123250D01* +Y127750D02*X339650Y128500D01* +X341900D01* +X200000Y142750D02*Y137500D01* +Y142750D02*X200750Y143500D01* +X203000D01* +X203750Y142750D01* +Y137500D01* +X200000Y140500D02*X203750D01* +X205550D02*Y138250D01* +X206300Y137500D01* +X207800D01* +X208550Y138250D01* +Y140500D02*Y138250D01* +X211100Y143500D02*Y138250D01* +X211850Y137500D01* +X210350Y141250D02*X211850D01* +X213350Y143500D02*Y137500D01* +Y139750D02*X214100Y140500D01* +X215600D01* +X216350Y139750D01* +Y137500D01* +X218150Y139750D02*Y138250D01* +Y139750D02*X218900Y140500D01* +X220400D01* +X221150Y139750D01* +Y138250D01* +X220400Y137500D02*X221150Y138250D01* +X218900Y137500D02*X220400D01* +X218150Y138250D02*X218900Y137500D01* +X223700Y139750D02*Y137500D01* +Y139750D02*X224450Y140500D01* +X225950D01* +X222950D02*X223700Y139750D01* +X227750Y141250D02*X228500D01* +X227750Y139750D02*X228500D01* +X233000Y143500D02*Y137500D01* +Y143500D02*X236000D01* +X233000Y140500D02*X235250D01* +X240050D02*X240800Y139750D01* +X238550Y140500D02*X240050D01* +X237800Y139750D02*X238550Y140500D01* +X237800Y139750D02*Y138250D01* +X238550Y137500D01* +X240800Y140500D02*Y138250D01* +X241550Y137500D01* +X238550D02*X240050D01* +X240800Y138250D01* +X243350Y143500D02*Y137500D01* +Y138250D02*X244100Y137500D01* +X245600D01* +X246350Y138250D01* +Y139750D02*Y138250D01* +X245600Y140500D02*X246350Y139750D01* +X244100Y140500D02*X245600D01* +X243350Y139750D02*X244100Y140500D01* +X248150Y137500D02*X251150D01* +X252950Y142750D02*Y137500D01* +Y142750D02*X253700Y143500D01* +X255950D01* +X256700Y142750D01* +Y137500D01* +X252950Y140500D02*X256700D01* +X258500D02*Y138250D01* +X259250Y137500D01* +X260750D01* +X261500Y138250D01* +Y140500D02*Y138250D01* +X264050Y143500D02*Y138250D01* +X264800Y137500D01* +X263300Y141250D02*X264800D01* +X266300Y143500D02*Y137500D01* +Y139750D02*X267050Y140500D01* +X268550D01* +X269300Y139750D01* +Y137500D01* +X271100Y139750D02*Y138250D01* +Y139750D02*X271850Y140500D01* +X273350D01* +X274100Y139750D01* +Y138250D01* +X273350Y137500D02*X274100Y138250D01* +X271850Y137500D02*X273350D01* +X271100Y138250D02*X271850Y137500D01* +X276650Y139750D02*Y137500D01* +Y139750D02*X277400Y140500D01* +X278900D01* +X275900D02*X276650Y139750D01* +X200000Y158500D02*X203000D01* +X201500D02*Y152500D01* +X204800Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X207050Y158500D02*Y153250D01* +X207800Y152500D01* +X206300Y156250D02*X207800D01* +X209300Y158500D02*Y153250D01* +X210050Y152500D01* +X212300D02*X214550D01* +X211550Y153250D02*X212300Y152500D01* +X211550Y154750D02*Y153250D01* +Y154750D02*X212300Y155500D01* +X213800D01* +X214550Y154750D01* +X211550Y154000D02*X214550D01* +Y154750D02*Y154000D01* +X216350Y156250D02*X217100D01* +X216350Y154750D02*X217100D01* +X221600Y152500D02*X224600D01* +X225350Y153250D01* +Y154750D02*Y153250D01* +X224600Y155500D02*X225350Y154750D01* +X222350Y155500D02*X224600D01* +X222350Y158500D02*Y152500D01* +X221600Y158500D02*X224600D01* +X225350Y157750D01* +Y156250D01* +X224600Y155500D02*X225350Y156250D01* +X229400Y155500D02*X230150Y154750D01* +X227900Y155500D02*X229400D01* +X227150Y154750D02*X227900Y155500D01* +X227150Y154750D02*Y153250D01* +X227900Y152500D01* +X230150Y155500D02*Y153250D01* +X230900Y152500D01* +X227900D02*X229400D01* +X230150Y153250D01* +X233450Y152500D02*X235700D01* +X236450Y153250D01* +X235700Y154000D02*X236450Y153250D01* +X233450Y154000D02*X235700D01* +X232700Y154750D02*X233450Y154000D01* +X232700Y154750D02*X233450Y155500D01* +X235700D01* +X236450Y154750D01* +X232700Y153250D02*X233450Y152500D01* +X238250Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X240500Y155500D02*X242750D01* +X239750Y154750D02*X240500Y155500D01* +X239750Y154750D02*Y153250D01* +X240500Y152500D01* +X242750D01* +X250250Y158500D02*X251000Y157750D01* +X248000Y158500D02*X250250D01* +X247250Y157750D02*X248000Y158500D01* +X247250Y157750D02*Y156250D01* +X248000Y155500D01* +X250250D01* +X251000Y154750D01* +Y153250D01* +X250250Y152500D02*X251000Y153250D01* +X248000Y152500D02*X250250D01* +X247250Y153250D02*X248000Y152500D01* +X252800Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X255050Y154750D02*Y152500D01* +Y154750D02*X255800Y155500D01* +X256550D01* +X257300Y154750D01* +Y152500D01* +X254300Y155500D02*X255050Y154750D01* +X261350Y155500D02*X262100Y154750D01* +X259850Y155500D02*X261350D01* +X259100Y154750D02*X259850Y155500D01* +X259100Y154750D02*Y153250D01* +X259850Y152500D01* +X261350D01* +X262100Y153250D01* +X259100Y151000D02*X259850Y150250D01* +X261350D01* +X262100Y151000D01* +Y155500D02*Y151000D01* +X263900Y158500D02*Y153250D01* +X264650Y152500D01* +X266900D02*X269150D01* +X266150Y153250D02*X266900Y152500D01* +X266150Y154750D02*Y153250D01* +Y154750D02*X266900Y155500D01* +X268400D01* +X269150Y154750D01* +X266150Y154000D02*X269150D01* +Y154750D02*Y154000D01* +X273650Y158500D02*X276650D01* +X275150D02*Y152500D01* +X279200Y154750D02*Y152500D01* +Y154750D02*X279950Y155500D01* +X281450D01* +X278450D02*X279200Y154750D01* +X285500Y155500D02*X286250Y154750D01* +X284000Y155500D02*X285500D01* +X283250Y154750D02*X284000Y155500D01* +X283250Y154750D02*Y153250D01* +X284000Y152500D01* +X286250Y155500D02*Y153250D01* +X287000Y152500D01* +X284000D02*X285500D01* +X286250Y153250D01* +X289550Y155500D02*X291800D01* +X288800Y154750D02*X289550Y155500D01* +X288800Y154750D02*Y153250D01* +X289550Y152500D01* +X291800D01* +X294350D02*X296600D01* +X293600Y153250D02*X294350Y152500D01* +X293600Y154750D02*Y153250D01* +Y154750D02*X294350Y155500D01* +X295850D01* +X296600Y154750D01* +X293600Y154000D02*X296600D01* +Y154750D02*Y154000D01* +X301100Y158500D02*X304100D01* +X304850Y157750D01* +Y156250D01* +X304100Y155500D02*X304850Y156250D01* +X301850Y155500D02*X304100D01* +X301850Y158500D02*Y152500D01* +Y155500D02*X304850Y152500D01* +X309650Y158500D02*X310400Y157750D01* +X307400Y158500D02*X309650D01* +X306650Y157750D02*X307400Y158500D01* +X306650Y157750D02*Y156250D01* +X307400Y155500D01* +X309650D01* +X310400Y154750D01* +Y153250D01* +X309650Y152500D02*X310400Y153250D01* +X307400Y152500D02*X309650D01* +X306650Y153250D02*X307400Y152500D01* +X312200Y157750D02*X312950Y158500D01* +X315200D01* +X315950Y157750D01* +Y156250D01* +X312200Y152500D02*X315950Y156250D01* +X312200Y152500D02*X315950D01* +X317750D02*X321500Y156250D01* +Y158500D02*Y156250D01* +X317750Y158500D02*X321500D01* +X323300Y155500D02*X326300Y158500D01* +X323300Y155500D02*X327050D01* +X326300Y158500D02*Y152500D01* +X328850Y155500D02*X331850D01* +X333650Y158500D02*Y157750D01* +X337400Y154000D01* +Y152500D01* +X333650Y154000D02*Y152500D01* +Y154000D02*X337400Y157750D01* +Y158500D02*Y157750D01* +X341900Y158500D02*X344900D01* +X343400D02*Y152500D01* +X347450D02*X349700D01* +X346700Y153250D02*X347450Y152500D01* +X346700Y154750D02*Y153250D01* +Y154750D02*X347450Y155500D01* +X348950D01* +X349700Y154750D01* +X346700Y154000D02*X349700D01* +Y154750D02*Y154000D01* +X352250Y152500D02*X354500D01* +X355250Y153250D01* +X354500Y154000D02*X355250Y153250D01* +X352250Y154000D02*X354500D01* +X351500Y154750D02*X352250Y154000D01* +X351500Y154750D02*X352250Y155500D01* +X354500D01* +X355250Y154750D01* +X351500Y153250D02*X352250Y152500D01* +X357800Y158500D02*Y153250D01* +X358550Y152500D01* +X357050Y156250D02*X358550D01* +X362750Y155500D02*X365750D01* +X370250Y158500D02*Y152500D01* +Y158500D02*X373250D01* +X370250Y155500D02*X372500D01* +X377300D02*X378050Y154750D01* +X375800Y155500D02*X377300D01* +X375050Y154750D02*X375800Y155500D01* +X375050Y154750D02*Y153250D01* +X375800Y152500D01* +X378050Y155500D02*Y153250D01* +X378800Y152500D01* +X375800D02*X377300D01* +X378050Y153250D01* +X380600Y158500D02*Y152500D01* +Y153250D02*X381350Y152500D01* +X382850D01* +X383600Y153250D01* +Y154750D02*Y153250D01* +X382850Y155500D02*X383600Y154750D01* +X381350Y155500D02*X382850D01* +X380600Y154750D02*X381350Y155500D01* +X386150Y154750D02*Y152500D01* +Y154750D02*X386900Y155500D01* +X388400D01* +X385400D02*X386150Y154750D01* +X390200Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X392450Y155500D02*X394700D01* +X391700Y154750D02*X392450Y155500D01* +X391700Y154750D02*Y153250D01* +X392450Y152500D01* +X394700D01* +X398750Y155500D02*X399500Y154750D01* +X397250Y155500D02*X398750D01* +X396500Y154750D02*X397250Y155500D01* +X396500Y154750D02*Y153250D01* +X397250Y152500D01* +X399500Y155500D02*Y153250D01* +X400250Y152500D01* +X397250D02*X398750D01* +X399500Y153250D01* +X402800Y158500D02*Y153250D01* +X403550Y152500D01* +X402050Y156250D02*X403550D01* +X405050Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X406550Y154750D02*Y153250D01* +Y154750D02*X407300Y155500D01* +X408800D01* +X409550Y154750D01* +Y153250D01* +X408800Y152500D02*X409550Y153250D01* +X407300Y152500D02*X408800D01* +X406550Y153250D02*X407300Y152500D01* +X412100Y154750D02*Y152500D01* +Y154750D02*X412850Y155500D01* +X413600D01* +X414350Y154750D01* +Y152500D01* +X411350Y155500D02*X412100Y154750D01* +X419600Y158500D02*Y152500D01* +X421850Y158500D02*X422600Y157750D01* +Y153250D01* +X421850Y152500D02*X422600Y153250D01* +X418850Y152500D02*X421850D01* +X418850Y158500D02*X421850D01* +X425150Y154750D02*Y152500D01* +Y154750D02*X425900Y155500D01* +X427400D01* +X424400D02*X425150Y154750D01* +X431450Y155500D02*X432200Y154750D01* +X429950Y155500D02*X431450D01* +X429200Y154750D02*X429950Y155500D01* +X429200Y154750D02*Y153250D01* +X429950Y152500D01* +X432200Y155500D02*Y153250D01* +X432950Y152500D01* +X429950D02*X431450D01* +X432200Y153250D01* +X434750Y155500D02*Y153250D01* +X435500Y152500D01* +X436250D01* +X437000Y153250D01* +Y155500D02*Y153250D01* +X437750Y152500D01* +X438500D01* +X439250Y153250D01* +Y155500D02*Y153250D01* +X441050Y157000D02*Y156250D01* +Y154750D02*Y152500D01* +X443300Y154750D02*Y152500D01* +Y154750D02*X444050Y155500D01* +X444800D01* +X445550Y154750D01* +Y152500D01* +X442550Y155500D02*X443300Y154750D01* +X449600Y155500D02*X450350Y154750D01* +X448100Y155500D02*X449600D01* +X447350Y154750D02*X448100Y155500D01* +X447350Y154750D02*Y153250D01* +X448100Y152500D01* +X449600D01* +X450350Y153250D01* +X447350Y151000D02*X448100Y150250D01* +X449600D01* +X450350Y151000D01* +Y155500D02*Y151000D01* +M02* diff --git a/tests/golden/hid_gerber4/buried.group2.gbr b/tests/golden/hid_gerber4/buried.group2.gbr new file mode 100644 index 0000000..c3cb961 --- /dev/null +++ b/tests/golden/hid_gerber4/buried.group2.gbr @@ -0,0 +1,22 @@ +G04 start of page 4 for group 2 idx 1 * +G04 Title: Basic Single Trace RS274-X Test, GND * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNGROUP2*% +%ADD21C,0.0200*% +%ADD20C,0.0350*% +%ADD19C,0.0360*% +%ADD18C,0.0600*% +%ADD17C,0.0100*% +G54D17*X50000Y80000D02*X90000D01* +Y20000D02*X130000D01* +G54D18*X90000Y50000D03* +G54D19*Y20000D03* +Y80000D03* +G54D20*G54D21*M02* diff --git a/tests/golden/hid_gerber4/buried.group4.gbr b/tests/golden/hid_gerber4/buried.group4.gbr new file mode 100644 index 0000000..22a9e33 --- /dev/null +++ b/tests/golden/hid_gerber4/buried.group4.gbr @@ -0,0 +1,21 @@ +G04 start of page 5 for group 4 idx 3 * +G04 Title: Basic Single Trace RS274-X Test, signal1 * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNGROUP4*% +%ADD26C,0.0200*% +%ADD25C,0.0350*% +%ADD24C,0.0360*% +%ADD23C,0.0600*% +%ADD22C,0.0100*% +G54D22*X90000Y90000D02*Y10000D01* +G54D23*Y50000D03* +G54D24*Y20000D03* +Y80000D03* +G54D25*G54D26*M02* diff --git a/tests/golden/hid_gerber4/buried.group7.gbr b/tests/golden/hid_gerber4/buried.group7.gbr new file mode 100644 index 0000000..6a69a83 --- /dev/null +++ b/tests/golden/hid_gerber4/buried.group7.gbr @@ -0,0 +1,22 @@ +G04 start of page 6 for group 7 idx 6 * +G04 Title: Basic Single Trace RS274-X Test, signal4 * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNGROUP7*% +%ADD31C,0.0200*% +%ADD30C,0.0350*% +%ADD29C,0.0360*% +%ADD28C,0.0600*% +%ADD27C,0.0100*% +G54D27*X90000Y80000D02*X130000D01* +X90000Y20000D02*X50000D01* +G54D28*X90000Y50000D03* +G54D29*Y20000D03* +Y80000D03* +G54D30*G54D31*M02* diff --git a/tests/golden/hid_gerber4/buried.plated-drill.cnc b/tests/golden/hid_gerber4/buried.plated-drill.cnc new file mode 100644 index 0000000..d5ec2de --- /dev/null +++ b/tests/golden/hid_gerber4/buried.plated-drill.cnc @@ -0,0 +1,7 @@ +M48 +INCH +T32C0.035 +% +T32 +X009000Y005000 +M30 diff --git a/tests/golden/hid_gerber4/buried.plated-drill_03-08.cnc b/tests/golden/hid_gerber4/buried.plated-drill_03-08.cnc new file mode 100644 index 0000000..2779819 --- /dev/null +++ b/tests/golden/hid_gerber4/buried.plated-drill_03-08.cnc @@ -0,0 +1,8 @@ +M48 +INCH +T33C0.020 +% +T33 +X009000Y008000 +X009000Y002000 +M30 diff --git a/tests/golden/hid_gerber4/buried.top.gbr b/tests/golden/hid_gerber4/buried.top.gbr new file mode 100644 index 0000000..f11f08e --- /dev/null +++ b/tests/golden/hid_gerber4/buried.top.gbr @@ -0,0 +1,17 @@ +G04 start of page 2 for group 0 idx 0 * +G04 Title: Basic Single Trace RS274-X Test, component * +G04 Creator: pcb 1.99z * +G04 CreationDate: Thu Sep 1 21:23:26 2016 UTC * +G04 For: milan * +G04 Format: Gerber/RS-274X * +G04 PCB-Dimensions (mil): 2000.00 1000.00 * +G04 PCB-Coordinate-Origin: lower left * +%MOIN*% +%FSLAX25Y25*% +%LNTOP*% +%ADD13C,0.0350*% +%ADD12C,0.0600*% +%ADD11C,0.0400*% +G54D11*X10000Y50000D02*X90000D01* +G54D12*D03* +G54D13*M02* diff --git a/tests/golden/hid_ps2/buried.ps b/tests/golden/hid_ps2/buried.ps new file mode 100644 index 0000000..163fcc9 --- /dev/null +++ b/tests/golden/hid_ps2/buried.ps @@ -0,0 +1,2674 @@ +%!PS-Adobe-3.0 +%%Title: buried.pcb +%%CreationDate: Fri Sep 2 11:29:45 2016 +%%Creator: PCB release: pcb 1.99z +%%Version: (PCB pcb 1.99z) 0.0 0 +%%PageOrder: Ascend +%%Pages: (atend) +%%DocumentMedia: Letter 612.00000 792.00000 0 "" "" +%%DocumentPaperSizes: Letter +%%EndComments + +%%Page: TableOfContents 1 +/Times-Roman findfont 14 scalefont setfont +/rightshow { /s exch def s stringwidth pop -1 mul 0 rmoveto s show } def +/y 72 9 mul def /toc { 100 y moveto show /y y 24 sub def } bind def +/tocp { /y y 0 sub def 90 y moveto rightshow } bind def +30 30 moveto (buried.pcb) show +(1.) tocp +(Table of Contents \(This Page\)) toc +(Created on Fri Sep 2 11:29:45 2016 +) toc +( ) tocp +(2.) tocp +(component) toc +(3.) tocp +(solder) toc +(4.) tocp +(GND) toc +(5.) tocp +(signal1) toc +(6.) tocp +(signal4) toc +(7.) tocp +(plated-drill) toc +(8.) tocp +(plated-drill_03-08) toc +(9.) tocp +(componentmask) toc +(10.) tocp +(soldermask) toc +(11.) tocp +(topsilk) toc +(12.) tocp +(bottomsilk) toc +(13.) tocp +(topassembly) toc +(14.) tocp +(bottomassembly) toc +(15.) tocp +(fab) toc +showpage +%%Page: top 2 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, top) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.04000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.10000 0.50000 0.90000 0.50000 t +0.90000 0.50000 0.03000 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +showpage +%%Page: bottom 3 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, bottom) show +( \(mirrored\)) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 -1 scale +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.04000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +1.70000 0.50000 0.90000 0.50000 t +0.90000 0.50000 0.03000 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +showpage +%%Page: group2 4 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, group2) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.01000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.50000 0.20000 0.90000 0.20000 t +0.90000 0.80000 1.30000 0.80000 t +0.90000 0.50000 0.03000 c +0.90000 0.80000 0.01800 c +0.90000 0.20000 0.01800 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +0.90000 0.80000 0.01000 c +0.90000 0.20000 0.01000 c +showpage +%%Page: group4 5 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, group4) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.01000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.90000 0.10000 0.90000 0.90000 t +0.90000 0.50000 0.03000 c +0.90000 0.80000 0.01800 c +0.90000 0.20000 0.01800 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +0.90000 0.80000 0.01000 c +0.90000 0.20000 0.01000 c +showpage +%%Page: group7 6 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, group7) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.01000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.90000 0.20000 1.30000 0.20000 t +0.90000 0.80000 0.50000 0.80000 t +0.90000 0.50000 0.03000 c +0.90000 0.80000 0.01800 c +0.90000 0.20000 0.01800 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +0.90000 0.80000 0.01000 c +0.90000 0.20000 0.01000 c +showpage +%%Page: plated-drill 7 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, plated-drill) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.00000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.90000 0.50000 0.01750 c +showpage +%%Page: plated-drill_03-08 8 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, plated-drill_03-08) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.00000 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.90000 0.80000 0.01000 c +0 gray +0.90000 0.20000 0.01000 c +showpage +%%Page: topmask 9 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, topmask) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.01000 setlinewidth +1 setlinecap 1 setlinejoin +1 gray +0.00000 0.00000 2.00000 1.00000 r +0.00000 setlinewidth +0 gray +0.90000 0.50000 0.00000 c +0 gray +0.90000 0.80000 0.00000 c +0 gray +0.90000 0.20000 0.00000 c +showpage +%%Page: bottommask 10 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, bottommask) show +( \(mirrored\)) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 -1 scale +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.01000 setlinewidth +1 setlinecap 1 setlinejoin +1 gray +0.00000 0.00000 2.00000 1.00000 r +0.00000 setlinewidth +0 gray +0.90000 0.50000 0.00000 c +0 gray +0.90000 0.80000 0.00000 c +0 gray +0.90000 0.20000 0.00000 c +showpage +%%Page: topsilk 11 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, topsilk) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +showpage +%%Page: bottomsilk 12 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, bottomsilk) show +( \(mirrored\)) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 -1 scale +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +showpage +%%Page: topassembly 13 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, topassembly) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.04000 setlinewidth +1 setlinecap 1 setlinejoin +0.6 gray +0.10000 0.50000 0.90000 0.50000 t +0.90000 0.50000 0.03000 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +showpage +%%Page: bottomassembly 14 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, bottomassembly) show +( \(mirrored\)) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 -1 scale +1 dup neg scale +-1.00000 -0.50000 translate +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.04000 setlinewidth +1 setlinecap 1 setlinejoin +0.6 gray +1.70000 0.50000 0.90000 0.50000 t +0.90000 0.50000 0.03000 c +0.00000 setlinewidth +1 gray +0.90000 0.50000 0.01750 c +showpage +%%Page: fab 15 +/Helvetica findfont 10 scalefont setfont +30 30 moveto (buried.pcb) show +30 41 moveto (Basic Buried Vias Test, fab) show +(, scale = 1:1.000) show +newpath +72 72 scale 4.25000 5.50000 translate +90 rotate +1 1 scale % calibration +1 dup neg scale +-1.00000 -0.50000 translate +% PrintFab overhang natural 3.25000, needed 0.90000 +/gray { setgray } bind def +/rgb { setrgbcolor } bind def +0 setgray 0 setlinewidth 0 0 moveto 0 1.00000 lineto 2.00000 1.00000 lineto 2.00000 0 lineto closepath stroke +gsave 0.00000 setlinewidth 0.00000 0.00000 translate -1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +0.40000 0.00000 moveto 0 -0.20000 rlineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 0.00000 translate 1 -1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 2.00000 1.00000 translate 1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +gsave 0.00000 setlinewidth 0.00000 1.00000 translate -1 1 scale +2.00000 0.00000 moveto 0.00000 0.00000 0.20000 0 90 arc 0.00000 2.00000 lineto +stroke grestore +/ts 1 def +/ty ts neg def /tx 0 def /Helvetica findfont ts scalefont setfont +/t { moveto lineto stroke } bind def +/dr { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath stroke } bind def +/r { /y2 exch def /x2 exch def /y1 exch def /x1 exch def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath fill } bind def +/c { 0 360 arc fill } bind def +/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def +0.00800 setlinewidth +1 setlinecap 1 setlinejoin +0 gray +0.90000 0.48400 0.90000 0.51600 t +0.88400 0.50000 0.91600 0.50000 t +0.15000 -0.42850 0.15000 -0.39650 t +0.13400 -0.41250 0.16600 -0.41250 t +0.00600 setlinewidth +1.35000 -0.43500 1.35000 -0.42750 t +1.35000 -0.42750 1.36500 -0.41250 t +1.36500 -0.41250 1.38000 -0.42750 t +1.38000 -0.43500 1.38000 -0.42750 t +1.36500 -0.41250 1.36500 -0.37500 t +1.39800 -0.40500 1.42050 -0.40500 t +1.39800 -0.37500 1.42800 -0.37500 t +1.39800 -0.43500 1.39800 -0.37500 t +1.39800 -0.43500 1.42800 -0.43500 t +1.47600 -0.43500 1.48350 -0.42750 t +1.45350 -0.43500 1.47600 -0.43500 t +1.44600 -0.42750 1.45350 -0.43500 t +1.44600 -0.42750 1.44600 -0.41250 t +1.44600 -0.41250 1.45350 -0.40500 t +1.45350 -0.40500 1.47600 -0.40500 t +1.47600 -0.40500 1.48350 -0.39750 t +1.48350 -0.39750 1.48350 -0.38250 t +1.47600 -0.37500 1.48350 -0.38250 t +1.45350 -0.37500 1.47600 -0.37500 t +1.44600 -0.38250 1.45350 -0.37500 t +0.98750 -0.37500 1.00250 -0.37500 t +0.99500 -0.43500 0.99500 -0.37500 t +0.98000 -0.42000 0.99500 -0.43500 t +0.45000 -0.38250 0.45750 -0.37500 t +0.45000 -0.42750 0.45000 -0.38250 t +0.45000 -0.42750 0.45750 -0.43500 t +0.45750 -0.43500 0.47250 -0.43500 t +0.47250 -0.43500 0.48000 -0.42750 t +0.48000 -0.42750 0.48000 -0.38250 t +0.47250 -0.37500 0.48000 -0.38250 t +0.45750 -0.37500 0.47250 -0.37500 t +0.45000 -0.39000 0.48000 -0.42000 t +0.49800 -0.37500 0.50550 -0.37500 t +0.52350 -0.38250 0.53100 -0.37500 t +0.52350 -0.42750 0.52350 -0.38250 t +0.52350 -0.42750 0.53100 -0.43500 t +0.53100 -0.43500 0.54600 -0.43500 t +0.54600 -0.43500 0.55350 -0.42750 t +0.55350 -0.42750 0.55350 -0.38250 t +0.54600 -0.37500 0.55350 -0.38250 t +0.53100 -0.37500 0.54600 -0.37500 t +0.52350 -0.39000 0.55350 -0.42000 t +0.57150 -0.42750 0.57900 -0.43500 t +0.57900 -0.43500 0.59400 -0.43500 t +0.59400 -0.43500 0.60150 -0.42750 t +0.60150 -0.42750 0.60150 -0.38250 t +0.59400 -0.37500 0.60150 -0.38250 t +0.57900 -0.37500 0.59400 -0.37500 t +0.57150 -0.38250 0.57900 -0.37500 t +0.57900 -0.40500 0.60150 -0.40500 t +0.61950 -0.43500 0.64950 -0.43500 t +0.61950 -0.43500 0.61950 -0.40500 t +0.61950 -0.40500 0.62700 -0.41250 t +0.62700 -0.41250 0.64200 -0.41250 t +0.64200 -0.41250 0.64950 -0.40500 t +0.64950 -0.40500 0.64950 -0.38250 t +0.64200 -0.37500 0.64950 -0.38250 t +0.62700 -0.37500 0.64200 -0.37500 t +0.61950 -0.38250 0.62700 -0.37500 t +0.90000 0.80000 0.90000 0.81600 t +0.90000 0.80000 0.91387 0.79200 t +0.90000 0.80000 0.88613 0.79200 t +0.90000 0.20000 0.90000 0.21600 t +0.90000 0.20000 0.91387 0.19200 t +0.90000 0.20000 0.88613 0.19200 t +0.15000 -0.56250 0.15000 -0.54650 t +0.15000 -0.56250 0.16387 -0.57050 t +0.15000 -0.56250 0.13613 -0.57050 t +1.35000 -0.58500 1.35000 -0.57750 t +1.35000 -0.57750 1.36500 -0.56250 t +1.36500 -0.56250 1.38000 -0.57750 t +1.38000 -0.58500 1.38000 -0.57750 t +1.36500 -0.56250 1.36500 -0.52500 t +1.39800 -0.55500 1.42050 -0.55500 t +1.39800 -0.52500 1.42800 -0.52500 t +1.39800 -0.58500 1.39800 -0.52500 t +1.39800 -0.58500 1.42800 -0.58500 t +1.47600 -0.58500 1.48350 -0.57750 t +1.45350 -0.58500 1.47600 -0.58500 t +1.44600 -0.57750 1.45350 -0.58500 t +1.44600 -0.57750 1.44600 -0.56250 t +1.44600 -0.56250 1.45350 -0.55500 t +1.45350 -0.55500 1.47600 -0.55500 t +1.47600 -0.55500 1.48350 -0.54750 t +1.48350 -0.54750 1.48350 -0.53250 t +1.47600 -0.52500 1.48350 -0.53250 t +1.45350 -0.52500 1.47600 -0.52500 t +1.44600 -0.53250 1.45350 -0.52500 t +0.98000 -0.57750 0.98750 -0.58500 t +0.98750 -0.58500 1.01000 -0.58500 t +1.01000 -0.58500 1.01750 -0.57750 t +1.01750 -0.57750 1.01750 -0.56250 t +0.98000 -0.52500 1.01750 -0.56250 t +0.98000 -0.52500 1.01750 -0.52500 t +0.45000 -0.53250 0.45750 -0.52500 t +0.45000 -0.57750 0.45000 -0.53250 t +0.45000 -0.57750 0.45750 -0.58500 t +0.45750 -0.58500 0.47250 -0.58500 t +0.47250 -0.58500 0.48000 -0.57750 t +0.48000 -0.57750 0.48000 -0.53250 t +0.47250 -0.52500 0.48000 -0.53250 t +0.45750 -0.52500 0.47250 -0.52500 t +0.45000 -0.54000 0.48000 -0.57000 t +0.49800 -0.52500 0.50550 -0.52500 t +0.52350 -0.53250 0.53100 -0.52500 t +0.52350 -0.57750 0.52350 -0.53250 t +0.52350 -0.57750 0.53100 -0.58500 t +0.53100 -0.58500 0.54600 -0.58500 t +0.54600 -0.58500 0.55350 -0.57750 t +0.55350 -0.57750 0.55350 -0.53250 t +0.54600 -0.52500 0.55350 -0.53250 t +0.53100 -0.52500 0.54600 -0.52500 t +0.52350 -0.54000 0.55350 -0.57000 t +0.57150 -0.57750 0.57900 -0.58500 t +0.57900 -0.58500 0.60150 -0.58500 t +0.60150 -0.58500 0.60900 -0.57750 t +0.60900 -0.57750 0.60900 -0.56250 t +0.57150 -0.52500 0.60900 -0.56250 t +0.57150 -0.52500 0.60900 -0.52500 t +0.62700 -0.53250 0.63450 -0.52500 t +0.62700 -0.57750 0.62700 -0.53250 t +0.62700 -0.57750 0.63450 -0.58500 t +0.63450 -0.58500 0.64950 -0.58500 t +0.64950 -0.58500 0.65700 -0.57750 t +0.65700 -0.57750 0.65700 -0.53250 t +0.64950 -0.52500 0.65700 -0.53250 t +0.63450 -0.52500 0.64950 -0.52500 t +0.62700 -0.54000 0.65700 -0.57000 t +0.03000 -0.73500 0.03750 -0.72750 t +0.00750 -0.73500 0.03000 -0.73500 t +0.00000 -0.72750 0.00750 -0.73500 t +0.00000 -0.72750 0.00000 -0.71250 t +0.00000 -0.71250 0.00750 -0.70500 t +0.00750 -0.70500 0.03000 -0.70500 t +0.03000 -0.70500 0.03750 -0.69750 t +0.03750 -0.69750 0.03750 -0.68250 t +0.03000 -0.67500 0.03750 -0.68250 t +0.00750 -0.67500 0.03000 -0.67500 t +0.00000 -0.68250 0.00750 -0.67500 t +0.05550 -0.70500 0.05550 -0.68250 t +0.05550 -0.68250 0.06300 -0.67500 t +0.08550 -0.70500 0.08550 -0.66000 t +0.07800 -0.65250 0.08550 -0.66000 t +0.06300 -0.65250 0.07800 -0.65250 t +0.05550 -0.66000 0.06300 -0.65250 t +0.06300 -0.67500 0.07800 -0.67500 t +0.07800 -0.67500 0.08550 -0.68250 t +0.11100 -0.69750 0.11100 -0.67500 t +0.11100 -0.69750 0.11850 -0.70500 t +0.11850 -0.70500 0.12600 -0.70500 t +0.12600 -0.70500 0.13350 -0.69750 t +0.13350 -0.69750 0.13350 -0.67500 t +0.13350 -0.69750 0.14100 -0.70500 t +0.14100 -0.70500 0.14850 -0.70500 t +0.14850 -0.70500 0.15600 -0.69750 t +0.15600 -0.69750 0.15600 -0.67500 t +0.10350 -0.70500 0.11100 -0.69750 t +0.17400 -0.73500 0.17400 -0.67500 t +0.17400 -0.68250 0.18150 -0.67500 t +0.18150 -0.67500 0.19650 -0.67500 t +0.19650 -0.67500 0.20400 -0.68250 t +0.20400 -0.69750 0.20400 -0.68250 t +0.19650 -0.70500 0.20400 -0.69750 t +0.18150 -0.70500 0.19650 -0.70500 t +0.17400 -0.69750 0.18150 -0.70500 t +0.22200 -0.69750 0.22200 -0.68250 t +0.22200 -0.69750 0.22950 -0.70500 t +0.22950 -0.70500 0.24450 -0.70500 t +0.24450 -0.70500 0.25200 -0.69750 t +0.25200 -0.69750 0.25200 -0.68250 t +0.24450 -0.67500 0.25200 -0.68250 t +0.22950 -0.67500 0.24450 -0.67500 t +0.22200 -0.68250 0.22950 -0.67500 t +0.27000 -0.73500 0.27000 -0.68250 t +0.27000 -0.68250 0.27750 -0.67500 t +0.00000 -0.64250 0.29250 -0.64250 t +0.41750 -0.73500 0.41750 -0.67500 t +0.44000 -0.73500 0.44750 -0.72750 t +0.44750 -0.72750 0.44750 -0.68250 t +0.44000 -0.67500 0.44750 -0.68250 t +0.41000 -0.67500 0.44000 -0.67500 t +0.41000 -0.73500 0.44000 -0.73500 t +0.46550 -0.72000 0.46550 -0.71250 t +0.46550 -0.69750 0.46550 -0.67500 t +0.50300 -0.70500 0.51050 -0.69750 t +0.48800 -0.70500 0.50300 -0.70500 t +0.48050 -0.69750 0.48800 -0.70500 t +0.48050 -0.69750 0.48050 -0.68250 t +0.48050 -0.68250 0.48800 -0.67500 t +0.51050 -0.70500 0.51050 -0.68250 t +0.51050 -0.68250 0.51800 -0.67500 t +0.48800 -0.67500 0.50300 -0.67500 t +0.50300 -0.67500 0.51050 -0.68250 t +0.54350 -0.69750 0.54350 -0.67500 t +0.54350 -0.69750 0.55100 -0.70500 t +0.55100 -0.70500 0.55850 -0.70500 t +0.55850 -0.70500 0.56600 -0.69750 t +0.56600 -0.69750 0.56600 -0.67500 t +0.56600 -0.69750 0.57350 -0.70500 t +0.57350 -0.70500 0.58100 -0.70500 t +0.58100 -0.70500 0.58850 -0.69750 t +0.58850 -0.69750 0.58850 -0.67500 t +0.53600 -0.70500 0.54350 -0.69750 t +0.60650 -0.67500 0.61400 -0.67500 t +0.65900 -0.68250 0.66650 -0.67500 t +0.65900 -0.72750 0.66650 -0.73500 t +0.65900 -0.72750 0.65900 -0.68250 t +0.68450 -0.73500 0.69950 -0.73500 t +0.69200 -0.73500 0.69200 -0.67500 t +0.68450 -0.67500 0.69950 -0.67500 t +0.72500 -0.69750 0.72500 -0.67500 t +0.72500 -0.69750 0.73250 -0.70500 t +0.73250 -0.70500 0.74000 -0.70500 t +0.74000 -0.70500 0.74750 -0.69750 t +0.74750 -0.69750 0.74750 -0.67500 t +0.71750 -0.70500 0.72500 -0.69750 t +0.77300 -0.70500 0.79550 -0.70500 t +0.76550 -0.69750 0.77300 -0.70500 t +0.76550 -0.69750 0.76550 -0.68250 t +0.76550 -0.68250 0.77300 -0.67500 t +0.77300 -0.67500 0.79550 -0.67500 t +0.81350 -0.73500 0.81350 -0.67500 t +0.81350 -0.69750 0.82100 -0.70500 t +0.82100 -0.70500 0.83600 -0.70500 t +0.83600 -0.70500 0.84350 -0.69750 t +0.84350 -0.69750 0.84350 -0.67500 t +0.86150 -0.73500 0.86900 -0.72750 t +0.86900 -0.72750 0.86900 -0.68250 t +0.86150 -0.67500 0.86900 -0.68250 t +0.41000 -0.64250 0.88700 -0.64250 t +0.95750 -0.67500 0.98000 -0.67500 t +0.95000 -0.68250 0.95750 -0.67500 t +0.95000 -0.72750 0.95000 -0.68250 t +0.95000 -0.72750 0.95750 -0.73500 t +0.95750 -0.73500 0.98000 -0.73500 t +0.99800 -0.69750 0.99800 -0.68250 t +0.99800 -0.69750 1.00550 -0.70500 t +1.00550 -0.70500 1.02050 -0.70500 t +1.02050 -0.70500 1.02800 -0.69750 t +1.02800 -0.69750 1.02800 -0.68250 t +1.02050 -0.67500 1.02800 -0.68250 t +1.00550 -0.67500 1.02050 -0.67500 t +0.99800 -0.68250 1.00550 -0.67500 t +1.04600 -0.70500 1.04600 -0.68250 t +1.04600 -0.68250 1.05350 -0.67500 t +1.05350 -0.67500 1.06850 -0.67500 t +1.06850 -0.67500 1.07600 -0.68250 t +1.07600 -0.70500 1.07600 -0.68250 t +1.10150 -0.69750 1.10150 -0.67500 t +1.10150 -0.69750 1.10900 -0.70500 t +1.10900 -0.70500 1.11650 -0.70500 t +1.11650 -0.70500 1.12400 -0.69750 t +1.12400 -0.69750 1.12400 -0.67500 t +1.09400 -0.70500 1.10150 -0.69750 t +1.14950 -0.73500 1.14950 -0.68250 t +1.14950 -0.68250 1.15700 -0.67500 t +1.14200 -0.71250 1.15700 -0.71250 t +0.95000 -0.64250 1.17200 -0.64250 t +1.30750 -0.73500 1.30750 -0.67500 t +1.30000 -0.73500 1.33000 -0.73500 t +1.33000 -0.73500 1.33750 -0.72750 t +1.33750 -0.72750 1.33750 -0.71250 t +1.33000 -0.70500 1.33750 -0.71250 t +1.30750 -0.70500 1.33000 -0.70500 t +1.35550 -0.73500 1.35550 -0.68250 t +1.35550 -0.68250 1.36300 -0.67500 t +1.40050 -0.70500 1.40800 -0.69750 t +1.38550 -0.70500 1.40050 -0.70500 t +1.37800 -0.69750 1.38550 -0.70500 t +1.37800 -0.69750 1.37800 -0.68250 t +1.37800 -0.68250 1.38550 -0.67500 t +1.40800 -0.70500 1.40800 -0.68250 t +1.40800 -0.68250 1.41550 -0.67500 t +1.38550 -0.67500 1.40050 -0.67500 t +1.40050 -0.67500 1.40800 -0.68250 t +1.44100 -0.73500 1.44100 -0.68250 t +1.44100 -0.68250 1.44850 -0.67500 t +1.43350 -0.71250 1.44850 -0.71250 t +1.47100 -0.67500 1.49350 -0.67500 t +1.46350 -0.68250 1.47100 -0.67500 t +1.46350 -0.69750 1.46350 -0.68250 t +1.46350 -0.69750 1.47100 -0.70500 t +1.47100 -0.70500 1.48600 -0.70500 t +1.48600 -0.70500 1.49350 -0.69750 t +1.46350 -0.69000 1.49350 -0.69000 t +1.49350 -0.69750 1.49350 -0.69000 t +1.54150 -0.73500 1.54150 -0.67500 t +1.53400 -0.67500 1.54150 -0.68250 t +1.51900 -0.67500 1.53400 -0.67500 t +1.51150 -0.68250 1.51900 -0.67500 t +1.51150 -0.69750 1.51150 -0.68250 t +1.51150 -0.69750 1.51900 -0.70500 t +1.51900 -0.70500 1.53400 -0.70500 t +1.53400 -0.70500 1.54150 -0.69750 t +1.57450 -0.70500 1.57450 -0.69750 t +1.57450 -0.68250 1.57450 -0.67500 t +1.55950 -0.72750 1.55950 -0.72000 t +1.55950 -0.72750 1.56700 -0.73500 t +1.56700 -0.73500 1.58200 -0.73500 t +1.58200 -0.73500 1.58950 -0.72750 t +1.58950 -0.72750 1.58950 -0.72000 t +1.57450 -0.70500 1.58950 -0.72000 t +1.30000 -0.64250 1.60750 -0.64250 t +0.00000 -0.88500 0.03000 -0.88500 t +0.01500 -0.88500 0.01500 -0.82500 t +0.04800 -0.88500 0.04800 -0.82500 t +0.04800 -0.84750 0.05550 -0.85500 t +0.05550 -0.85500 0.07050 -0.85500 t +0.07050 -0.85500 0.07800 -0.84750 t +0.07800 -0.84750 0.07800 -0.82500 t +0.10350 -0.82500 0.12600 -0.82500 t +0.09600 -0.83250 0.10350 -0.82500 t +0.09600 -0.84750 0.09600 -0.83250 t +0.09600 -0.84750 0.10350 -0.85500 t +0.10350 -0.85500 0.11850 -0.85500 t +0.11850 -0.85500 0.12600 -0.84750 t +0.09600 -0.84000 0.12600 -0.84000 t +0.12600 -0.84750 0.12600 -0.84000 t +0.15150 -0.84750 0.15150 -0.82500 t +0.15150 -0.84750 0.15900 -0.85500 t +0.15900 -0.85500 0.17400 -0.85500 t +0.14400 -0.85500 0.15150 -0.84750 t +0.19950 -0.82500 0.22200 -0.82500 t +0.19200 -0.83250 0.19950 -0.82500 t +0.19200 -0.84750 0.19200 -0.83250 t +0.19200 -0.84750 0.19950 -0.85500 t +0.19950 -0.85500 0.21450 -0.85500 t +0.21450 -0.85500 0.22200 -0.84750 t +0.19200 -0.84000 0.22200 -0.84000 t +0.22200 -0.84750 0.22200 -0.84000 t +0.28950 -0.85500 0.29700 -0.84750 t +0.27450 -0.85500 0.28950 -0.85500 t +0.26700 -0.84750 0.27450 -0.85500 t +0.26700 -0.84750 0.26700 -0.83250 t +0.26700 -0.83250 0.27450 -0.82500 t +0.29700 -0.85500 0.29700 -0.83250 t +0.29700 -0.83250 0.30450 -0.82500 t +0.27450 -0.82500 0.28950 -0.82500 t +0.28950 -0.82500 0.29700 -0.83250 t +0.33000 -0.84750 0.33000 -0.82500 t +0.33000 -0.84750 0.33750 -0.85500 t +0.33750 -0.85500 0.35250 -0.85500 t +0.32250 -0.85500 0.33000 -0.84750 t +0.37800 -0.82500 0.40050 -0.82500 t +0.37050 -0.83250 0.37800 -0.82500 t +0.37050 -0.84750 0.37050 -0.83250 t +0.37050 -0.84750 0.37800 -0.85500 t +0.37800 -0.85500 0.39300 -0.85500 t +0.39300 -0.85500 0.40050 -0.84750 t +0.37050 -0.84000 0.40050 -0.84000 t +0.40050 -0.84750 0.40050 -0.84000 t +0.44550 -0.87750 0.45300 -0.88500 t +0.45300 -0.88500 0.47550 -0.88500 t +0.47550 -0.88500 0.48300 -0.87750 t +0.48300 -0.87750 0.48300 -0.86250 t +0.44550 -0.82500 0.48300 -0.86250 t +0.44550 -0.82500 0.48300 -0.82500 t +0.55800 -0.88500 0.55800 -0.82500 t +0.55050 -0.82500 0.55800 -0.83250 t +0.53550 -0.82500 0.55050 -0.82500 t +0.52800 -0.83250 0.53550 -0.82500 t +0.52800 -0.84750 0.52800 -0.83250 t +0.52800 -0.84750 0.53550 -0.85500 t +0.53550 -0.85500 0.55050 -0.85500 t +0.55050 -0.85500 0.55800 -0.84750 t +0.57600 -0.87000 0.57600 -0.86250 t +0.57600 -0.84750 0.57600 -0.82500 t +0.59850 -0.87750 0.59850 -0.82500 t +0.59850 -0.87750 0.60600 -0.88500 t +0.60600 -0.88500 0.61350 -0.88500 t +0.59100 -0.85500 0.60600 -0.85500 t +0.63600 -0.87750 0.63600 -0.82500 t +0.63600 -0.87750 0.64350 -0.88500 t +0.64350 -0.88500 0.65100 -0.88500 t +0.62850 -0.85500 0.64350 -0.85500 t +0.67350 -0.82500 0.69600 -0.82500 t +0.66600 -0.83250 0.67350 -0.82500 t +0.66600 -0.84750 0.66600 -0.83250 t +0.66600 -0.84750 0.67350 -0.85500 t +0.67350 -0.85500 0.68850 -0.85500 t +0.68850 -0.85500 0.69600 -0.84750 t +0.66600 -0.84000 0.69600 -0.84000 t +0.69600 -0.84750 0.69600 -0.84000 t +0.72150 -0.84750 0.72150 -0.82500 t +0.72150 -0.84750 0.72900 -0.85500 t +0.72900 -0.85500 0.74400 -0.85500 t +0.71400 -0.85500 0.72150 -0.84750 t +0.76950 -0.82500 0.79200 -0.82500 t +0.76200 -0.83250 0.76950 -0.82500 t +0.76200 -0.84750 0.76200 -0.83250 t +0.76200 -0.84750 0.76950 -0.85500 t +0.76950 -0.85500 0.78450 -0.85500 t +0.78450 -0.85500 0.79200 -0.84750 t +0.76200 -0.84000 0.79200 -0.84000 t +0.79200 -0.84750 0.79200 -0.84000 t +0.81750 -0.84750 0.81750 -0.82500 t +0.81750 -0.84750 0.82500 -0.85500 t +0.82500 -0.85500 0.83250 -0.85500 t +0.83250 -0.85500 0.84000 -0.84750 t +0.84000 -0.84750 0.84000 -0.82500 t +0.81000 -0.85500 0.81750 -0.84750 t +0.86550 -0.88500 0.86550 -0.83250 t +0.86550 -0.83250 0.87300 -0.82500 t +0.85800 -0.86250 0.87300 -0.86250 t +0.94500 -0.88500 0.94500 -0.82500 t +0.93750 -0.82500 0.94500 -0.83250 t +0.92250 -0.82500 0.93750 -0.82500 t +0.91500 -0.83250 0.92250 -0.82500 t +0.91500 -0.84750 0.91500 -0.83250 t +0.91500 -0.84750 0.92250 -0.85500 t +0.92250 -0.85500 0.93750 -0.85500 t +0.93750 -0.85500 0.94500 -0.84750 t +0.97050 -0.84750 0.97050 -0.82500 t +0.97050 -0.84750 0.97800 -0.85500 t +0.97800 -0.85500 0.99300 -0.85500 t +0.96300 -0.85500 0.97050 -0.84750 t +1.01100 -0.87000 1.01100 -0.86250 t +1.01100 -0.84750 1.01100 -0.82500 t +1.02600 -0.88500 1.02600 -0.83250 t +1.02600 -0.83250 1.03350 -0.82500 t +1.04850 -0.88500 1.04850 -0.83250 t +1.04850 -0.83250 1.05600 -0.82500 t +1.10550 -0.82500 1.12800 -0.82500 t +1.12800 -0.82500 1.13550 -0.83250 t +1.12800 -0.84000 1.13550 -0.83250 t +1.10550 -0.84000 1.12800 -0.84000 t +1.09800 -0.84750 1.10550 -0.84000 t +1.09800 -0.84750 1.10550 -0.85500 t +1.10550 -0.85500 1.12800 -0.85500 t +1.12800 -0.85500 1.13550 -0.84750 t +1.09800 -0.83250 1.10550 -0.82500 t +1.15350 -0.87000 1.15350 -0.86250 t +1.15350 -0.84750 1.15350 -0.82500 t +1.16850 -0.85500 1.19850 -0.85500 t +1.16850 -0.82500 1.19850 -0.85500 t +1.16850 -0.82500 1.19850 -0.82500 t +1.22400 -0.82500 1.24650 -0.82500 t +1.21650 -0.83250 1.22400 -0.82500 t +1.21650 -0.84750 1.21650 -0.83250 t +1.21650 -0.84750 1.22400 -0.85500 t +1.22400 -0.85500 1.23900 -0.85500 t +1.23900 -0.85500 1.24650 -0.84750 t +1.21650 -0.84000 1.24650 -0.84000 t +1.24650 -0.84750 1.24650 -0.84000 t +1.27200 -0.82500 1.29450 -0.82500 t +1.29450 -0.82500 1.30200 -0.83250 t +1.29450 -0.84000 1.30200 -0.83250 t +1.27200 -0.84000 1.29450 -0.84000 t +1.26450 -0.84750 1.27200 -0.84000 t +1.26450 -0.84750 1.27200 -0.85500 t +1.27200 -0.85500 1.29450 -0.85500 t +1.29450 -0.85500 1.30200 -0.84750 t +1.26450 -0.83250 1.27200 -0.82500 t +1.34700 -0.85500 1.34700 -0.83250 t +1.34700 -0.83250 1.35450 -0.82500 t +1.35450 -0.82500 1.36950 -0.82500 t +1.36950 -0.82500 1.37700 -0.83250 t +1.37700 -0.85500 1.37700 -0.83250 t +1.40250 -0.82500 1.42500 -0.82500 t +1.42500 -0.82500 1.43250 -0.83250 t +1.42500 -0.84000 1.43250 -0.83250 t +1.40250 -0.84000 1.42500 -0.84000 t +1.39500 -0.84750 1.40250 -0.84000 t +1.39500 -0.84750 1.40250 -0.85500 t +1.40250 -0.85500 1.42500 -0.85500 t +1.42500 -0.85500 1.43250 -0.84750 t +1.39500 -0.83250 1.40250 -0.82500 t +1.45800 -0.82500 1.48050 -0.82500 t +1.45050 -0.83250 1.45800 -0.82500 t +1.45050 -0.84750 1.45050 -0.83250 t +1.45050 -0.84750 1.45800 -0.85500 t +1.45800 -0.85500 1.47300 -0.85500 t +1.47300 -0.85500 1.48050 -0.84750 t +1.45050 -0.84000 1.48050 -0.84000 t +1.48050 -0.84750 1.48050 -0.84000 t +1.52850 -0.88500 1.52850 -0.82500 t +1.52100 -0.82500 1.52850 -0.83250 t +1.50600 -0.82500 1.52100 -0.82500 t +1.49850 -0.83250 1.50600 -0.82500 t +1.49850 -0.84750 1.49850 -0.83250 t +1.49850 -0.84750 1.50600 -0.85500 t +1.50600 -0.85500 1.52100 -0.85500 t +1.52100 -0.85500 1.52850 -0.84750 t +1.57350 -0.87000 1.57350 -0.86250 t +1.57350 -0.84750 1.57350 -0.82500 t +1.59600 -0.84750 1.59600 -0.82500 t +1.59600 -0.84750 1.60350 -0.85500 t +1.60350 -0.85500 1.61100 -0.85500 t +1.61100 -0.85500 1.61850 -0.84750 t +1.61850 -0.84750 1.61850 -0.82500 t +1.58850 -0.85500 1.59600 -0.84750 t +1.67100 -0.88500 1.67100 -0.83250 t +1.67100 -0.83250 1.67850 -0.82500 t +1.66350 -0.86250 1.67850 -0.86250 t +1.69350 -0.88500 1.69350 -0.82500 t +1.69350 -0.84750 1.70100 -0.85500 t +1.70100 -0.85500 1.71600 -0.85500 t +1.71600 -0.85500 1.72350 -0.84750 t +1.72350 -0.84750 1.72350 -0.82500 t +1.74150 -0.87000 1.74150 -0.86250 t +1.74150 -0.84750 1.74150 -0.82500 t +1.76400 -0.82500 1.78650 -0.82500 t +1.78650 -0.82500 1.79400 -0.83250 t +1.78650 -0.84000 1.79400 -0.83250 t +1.76400 -0.84000 1.78650 -0.84000 t +1.75650 -0.84750 1.76400 -0.84000 t +1.75650 -0.84750 1.76400 -0.85500 t +1.76400 -0.85500 1.78650 -0.85500 t +1.78650 -0.85500 1.79400 -0.84750 t +1.75650 -0.83250 1.76400 -0.82500 t +1.83900 -0.88500 1.83900 -0.83250 t +1.83900 -0.83250 1.84650 -0.82500 t +1.88400 -0.85500 1.89150 -0.84750 t +1.86900 -0.85500 1.88400 -0.85500 t +1.86150 -0.84750 1.86900 -0.85500 t +1.86150 -0.84750 1.86150 -0.83250 t +1.86150 -0.83250 1.86900 -0.82500 t +1.89150 -0.85500 1.89150 -0.83250 t +1.89150 -0.83250 1.89900 -0.82500 t +1.86900 -0.82500 1.88400 -0.82500 t +1.88400 -0.82500 1.89150 -0.83250 t +1.91700 -0.85500 1.91700 -0.83250 t +1.91700 -0.83250 1.92450 -0.82500 t +1.94700 -0.85500 1.94700 -0.81000 t +1.93950 -0.80250 1.94700 -0.81000 t +1.92450 -0.80250 1.93950 -0.80250 t +1.91700 -0.81000 1.92450 -0.80250 t +1.92450 -0.82500 1.93950 -0.82500 t +1.93950 -0.82500 1.94700 -0.83250 t +1.96500 -0.84750 1.96500 -0.83250 t +1.96500 -0.84750 1.97250 -0.85500 t +1.97250 -0.85500 1.98750 -0.85500 t +1.98750 -0.85500 1.99500 -0.84750 t +1.99500 -0.84750 1.99500 -0.83250 t +1.98750 -0.82500 1.99500 -0.83250 t +1.97250 -0.82500 1.98750 -0.82500 t +1.96500 -0.83250 1.97250 -0.82500 t +2.01300 -0.85500 2.01300 -0.83250 t +2.01300 -0.83250 2.02050 -0.82500 t +2.02050 -0.82500 2.03550 -0.82500 t +2.03550 -0.82500 2.04300 -0.83250 t +2.04300 -0.85500 2.04300 -0.83250 t +2.06850 -0.88500 2.06850 -0.83250 t +2.06850 -0.83250 2.07600 -0.82500 t +2.06100 -0.86250 2.07600 -0.86250 t +2.09100 -0.81000 2.10600 -0.82500 t +2.15100 -0.87750 2.15850 -0.88500 t +2.15850 -0.88500 2.17350 -0.88500 t +2.17350 -0.88500 2.18100 -0.87750 t +2.18100 -0.87750 2.18100 -0.83250 t +2.17350 -0.82500 2.18100 -0.83250 t +2.15850 -0.82500 2.17350 -0.82500 t +2.15100 -0.83250 2.15850 -0.82500 t +2.15850 -0.85500 2.18100 -0.85500 t +2.22600 -0.88500 2.22600 -0.82500 t +2.22600 -0.84750 2.23350 -0.85500 t +2.23350 -0.85500 2.24850 -0.85500 t +2.24850 -0.85500 2.25600 -0.84750 t +2.25600 -0.84750 2.25600 -0.82500 t +2.27400 -0.84750 2.27400 -0.83250 t +2.27400 -0.84750 2.28150 -0.85500 t +2.28150 -0.85500 2.29650 -0.85500 t +2.29650 -0.85500 2.30400 -0.84750 t +2.30400 -0.84750 2.30400 -0.83250 t +2.29650 -0.82500 2.30400 -0.83250 t +2.28150 -0.82500 2.29650 -0.82500 t +2.27400 -0.83250 2.28150 -0.82500 t +2.32200 -0.88500 2.32200 -0.83250 t +2.32200 -0.83250 2.32950 -0.82500 t +2.35200 -0.82500 2.37450 -0.82500 t +2.34450 -0.83250 2.35200 -0.82500 t +2.34450 -0.84750 2.34450 -0.83250 t +2.34450 -0.84750 2.35200 -0.85500 t +2.35200 -0.85500 2.36700 -0.85500 t +2.36700 -0.85500 2.37450 -0.84750 t +2.34450 -0.84000 2.37450 -0.84000 t +2.37450 -0.84750 2.37450 -0.84000 t +2.40000 -0.82500 2.42250 -0.82500 t +2.42250 -0.82500 2.43000 -0.83250 t +2.42250 -0.84000 2.43000 -0.83250 t +2.40000 -0.84000 2.42250 -0.84000 t +2.39250 -0.84750 2.40000 -0.84000 t +2.39250 -0.84750 2.40000 -0.85500 t +2.40000 -0.85500 2.42250 -0.85500 t +2.42250 -0.85500 2.43000 -0.84750 t +2.39250 -0.83250 2.40000 -0.82500 t +2.48250 -0.88500 2.48250 -0.83250 t +2.48250 -0.83250 2.49000 -0.82500 t +2.47500 -0.86250 2.49000 -0.86250 t +2.50500 -0.84750 2.50500 -0.83250 t +2.50500 -0.84750 2.51250 -0.85500 t +2.51250 -0.85500 2.52750 -0.85500 t +2.52750 -0.85500 2.53500 -0.84750 t +2.53500 -0.84750 2.53500 -0.83250 t +2.52750 -0.82500 2.53500 -0.83250 t +2.51250 -0.82500 2.52750 -0.82500 t +2.50500 -0.83250 2.51250 -0.82500 t +2.56050 -0.88500 2.56050 -0.83250 t +2.56050 -0.83250 2.56800 -0.82500 t +2.55300 -0.86250 2.56800 -0.86250 t +2.60550 -0.85500 2.61300 -0.84750 t +2.59050 -0.85500 2.60550 -0.85500 t +2.58300 -0.84750 2.59050 -0.85500 t +2.58300 -0.84750 2.58300 -0.83250 t +2.58300 -0.83250 2.59050 -0.82500 t +2.61300 -0.85500 2.61300 -0.83250 t +2.61300 -0.83250 2.62050 -0.82500 t +2.59050 -0.82500 2.60550 -0.82500 t +2.60550 -0.82500 2.61300 -0.83250 t +2.63850 -0.88500 2.63850 -0.83250 t +2.63850 -0.83250 2.64600 -0.82500 t +0.01000 setlinewidth +0.00000 0.00000 2.00000 0.00000 t +0.00000 0.00000 0.00000 1.00000 t +2.00000 0.00000 2.00000 1.00000 t +0.00000 1.00000 2.00000 1.00000 t +0.00600 setlinewidth +2.00000 -0.13500 2.00000 -0.07500 t +2.00000 -0.13500 2.02250 -0.11250 t +2.02250 -0.11250 2.04500 -0.13500 t +2.04500 -0.13500 2.04500 -0.07500 t +2.08550 -0.10500 2.09300 -0.09750 t +2.07050 -0.10500 2.08550 -0.10500 t +2.06300 -0.09750 2.07050 -0.10500 t +2.06300 -0.09750 2.06300 -0.08250 t +2.06300 -0.08250 2.07050 -0.07500 t +2.09300 -0.10500 2.09300 -0.08250 t +2.09300 -0.08250 2.10050 -0.07500 t +2.07050 -0.07500 2.08550 -0.07500 t +2.08550 -0.07500 2.09300 -0.08250 t +2.11850 -0.10500 2.14850 -0.07500 t +2.11850 -0.07500 2.14850 -0.10500 t +2.16650 -0.12000 2.16650 -0.11250 t +2.16650 -0.09750 2.16650 -0.07500 t +2.18900 -0.09750 2.18900 -0.07500 t +2.18900 -0.09750 2.19650 -0.10500 t +2.19650 -0.10500 2.20400 -0.10500 t +2.20400 -0.10500 2.21150 -0.09750 t +2.21150 -0.09750 2.21150 -0.07500 t +2.21150 -0.09750 2.21900 -0.10500 t +2.21900 -0.10500 2.22650 -0.10500 t +2.22650 -0.10500 2.23400 -0.09750 t +2.23400 -0.09750 2.23400 -0.07500 t +2.18150 -0.10500 2.18900 -0.09750 t +2.25200 -0.10500 2.25200 -0.08250 t +2.25200 -0.08250 2.25950 -0.07500 t +2.25950 -0.07500 2.27450 -0.07500 t +2.27450 -0.07500 2.28200 -0.08250 t +2.28200 -0.10500 2.28200 -0.08250 t +2.30750 -0.09750 2.30750 -0.07500 t +2.30750 -0.09750 2.31500 -0.10500 t +2.31500 -0.10500 2.32250 -0.10500 t +2.32250 -0.10500 2.33000 -0.09750 t +2.33000 -0.09750 2.33000 -0.07500 t +2.33000 -0.09750 2.33750 -0.10500 t +2.33750 -0.10500 2.34500 -0.10500 t +2.34500 -0.10500 2.35250 -0.09750 t +2.35250 -0.09750 2.35250 -0.07500 t +2.30000 -0.10500 2.30750 -0.09750 t +2.40500 -0.13500 2.40500 -0.07500 t +2.42750 -0.13500 2.43500 -0.12750 t +2.43500 -0.12750 2.43500 -0.08250 t +2.42750 -0.07500 2.43500 -0.08250 t +2.39750 -0.07500 2.42750 -0.07500 t +2.39750 -0.13500 2.42750 -0.13500 t +2.45300 -0.12000 2.45300 -0.11250 t +2.45300 -0.09750 2.45300 -0.07500 t +2.47550 -0.09750 2.47550 -0.07500 t +2.47550 -0.09750 2.48300 -0.10500 t +2.48300 -0.10500 2.49050 -0.10500 t +2.49050 -0.10500 2.49800 -0.09750 t +2.49800 -0.09750 2.49800 -0.07500 t +2.49800 -0.09750 2.50550 -0.10500 t +2.50550 -0.10500 2.51300 -0.10500 t +2.51300 -0.10500 2.52050 -0.09750 t +2.52050 -0.09750 2.52050 -0.07500 t +2.46800 -0.10500 2.47550 -0.09750 t +2.54600 -0.07500 2.56850 -0.07500 t +2.53850 -0.08250 2.54600 -0.07500 t +2.53850 -0.09750 2.53850 -0.08250 t +2.53850 -0.09750 2.54600 -0.10500 t +2.54600 -0.10500 2.56100 -0.10500 t +2.56100 -0.10500 2.56850 -0.09750 t +2.53850 -0.09000 2.56850 -0.09000 t +2.56850 -0.09750 2.56850 -0.09000 t +2.59400 -0.09750 2.59400 -0.07500 t +2.59400 -0.09750 2.60150 -0.10500 t +2.60150 -0.10500 2.60900 -0.10500 t +2.60900 -0.10500 2.61650 -0.09750 t +2.61650 -0.09750 2.61650 -0.07500 t +2.58650 -0.10500 2.59400 -0.09750 t +2.64200 -0.07500 2.66450 -0.07500 t +2.66450 -0.07500 2.67200 -0.08250 t +2.66450 -0.09000 2.67200 -0.08250 t +2.64200 -0.09000 2.66450 -0.09000 t +2.63450 -0.09750 2.64200 -0.09000 t +2.63450 -0.09750 2.64200 -0.10500 t +2.64200 -0.10500 2.66450 -0.10500 t +2.66450 -0.10500 2.67200 -0.09750 t +2.63450 -0.08250 2.64200 -0.07500 t +2.69000 -0.12000 2.69000 -0.11250 t +2.69000 -0.09750 2.69000 -0.07500 t +2.70500 -0.09750 2.70500 -0.08250 t +2.70500 -0.09750 2.71250 -0.10500 t +2.71250 -0.10500 2.72750 -0.10500 t +2.72750 -0.10500 2.73500 -0.09750 t +2.73500 -0.09750 2.73500 -0.08250 t +2.72750 -0.07500 2.73500 -0.08250 t +2.71250 -0.07500 2.72750 -0.07500 t +2.70500 -0.08250 2.71250 -0.07500 t +2.76050 -0.09750 2.76050 -0.07500 t +2.76050 -0.09750 2.76800 -0.10500 t +2.76800 -0.10500 2.77550 -0.10500 t +2.77550 -0.10500 2.78300 -0.09750 t +2.78300 -0.09750 2.78300 -0.07500 t +2.75300 -0.10500 2.76050 -0.09750 t +2.80850 -0.07500 2.83100 -0.07500 t +2.83100 -0.07500 2.83850 -0.08250 t +2.83100 -0.09000 2.83850 -0.08250 t +2.80850 -0.09000 2.83100 -0.09000 t +2.80100 -0.09750 2.80850 -0.09000 t +2.80100 -0.09750 2.80850 -0.10500 t +2.80850 -0.10500 2.83100 -0.10500 t +2.83100 -0.10500 2.83850 -0.09750 t +2.80100 -0.08250 2.80850 -0.07500 t +2.85650 -0.11250 2.86400 -0.11250 t +2.85650 -0.09750 2.86400 -0.09750 t +2.90900 -0.12750 2.91650 -0.13500 t +2.91650 -0.13500 2.93900 -0.13500 t +2.93900 -0.13500 2.94650 -0.12750 t +2.94650 -0.12750 2.94650 -0.11250 t +2.90900 -0.07500 2.94650 -0.11250 t +2.90900 -0.07500 2.94650 -0.07500 t +2.96450 -0.08250 2.97200 -0.07500 t +2.96450 -0.12750 2.96450 -0.08250 t +2.96450 -0.12750 2.97200 -0.13500 t +2.97200 -0.13500 2.98700 -0.13500 t +2.98700 -0.13500 2.99450 -0.12750 t +2.99450 -0.12750 2.99450 -0.08250 t +2.98700 -0.07500 2.99450 -0.08250 t +2.97200 -0.07500 2.98700 -0.07500 t +2.96450 -0.09000 2.99450 -0.12000 t +3.01250 -0.08250 3.02000 -0.07500 t +3.01250 -0.12750 3.01250 -0.08250 t +3.01250 -0.12750 3.02000 -0.13500 t +3.02000 -0.13500 3.03500 -0.13500 t +3.03500 -0.13500 3.04250 -0.12750 t +3.04250 -0.12750 3.04250 -0.08250 t +3.03500 -0.07500 3.04250 -0.08250 t +3.02000 -0.07500 3.03500 -0.07500 t +3.01250 -0.09000 3.04250 -0.12000 t +3.06050 -0.08250 3.06800 -0.07500 t +3.06050 -0.12750 3.06050 -0.08250 t +3.06050 -0.12750 3.06800 -0.13500 t +3.06800 -0.13500 3.08300 -0.13500 t +3.08300 -0.13500 3.09050 -0.12750 t +3.09050 -0.12750 3.09050 -0.08250 t +3.08300 -0.07500 3.09050 -0.08250 t +3.06800 -0.07500 3.08300 -0.07500 t +3.06050 -0.09000 3.09050 -0.12000 t +3.10850 -0.07500 3.11600 -0.07500 t +3.13400 -0.08250 3.14150 -0.07500 t +3.13400 -0.12750 3.13400 -0.08250 t +3.13400 -0.12750 3.14150 -0.13500 t +3.14150 -0.13500 3.15650 -0.13500 t +3.15650 -0.13500 3.16400 -0.12750 t +3.16400 -0.12750 3.16400 -0.08250 t +3.15650 -0.07500 3.16400 -0.08250 t +3.14150 -0.07500 3.15650 -0.07500 t +3.13400 -0.09000 3.16400 -0.12000 t +3.18200 -0.08250 3.18950 -0.07500 t +3.18200 -0.12750 3.18200 -0.08250 t +3.18200 -0.12750 3.18950 -0.13500 t +3.18950 -0.13500 3.20450 -0.13500 t +3.20450 -0.13500 3.21200 -0.12750 t +3.21200 -0.12750 3.21200 -0.08250 t +3.20450 -0.07500 3.21200 -0.08250 t +3.18950 -0.07500 3.20450 -0.07500 t +3.18200 -0.09000 3.21200 -0.12000 t +3.23000 -0.08250 3.23750 -0.07500 t +3.23000 -0.12750 3.23000 -0.08250 t +3.23000 -0.12750 3.23750 -0.13500 t +3.23750 -0.13500 3.25250 -0.13500 t +3.25250 -0.13500 3.26000 -0.12750 t +3.26000 -0.12750 3.26000 -0.08250 t +3.25250 -0.07500 3.26000 -0.08250 t +3.23750 -0.07500 3.25250 -0.07500 t +3.23000 -0.09000 3.26000 -0.12000 t +3.27800 -0.08250 3.28550 -0.07500 t +3.27800 -0.12750 3.27800 -0.08250 t +3.27800 -0.12750 3.28550 -0.13500 t +3.28550 -0.13500 3.30050 -0.13500 t +3.30050 -0.13500 3.30800 -0.12750 t +3.30800 -0.12750 3.30800 -0.08250 t +3.30050 -0.07500 3.30800 -0.08250 t +3.28550 -0.07500 3.30050 -0.07500 t +3.27800 -0.09000 3.30800 -0.12000 t +3.32600 -0.08250 3.33350 -0.07500 t +3.32600 -0.12750 3.32600 -0.08250 t +3.32600 -0.12750 3.33350 -0.13500 t +3.33350 -0.13500 3.34850 -0.13500 t +3.34850 -0.13500 3.35600 -0.12750 t +3.35600 -0.12750 3.35600 -0.08250 t +3.34850 -0.07500 3.35600 -0.08250 t +3.33350 -0.07500 3.34850 -0.07500 t +3.32600 -0.09000 3.35600 -0.12000 t +3.37400 -0.08250 3.38150 -0.07500 t +3.37400 -0.12750 3.37400 -0.08250 t +3.37400 -0.12750 3.38150 -0.13500 t +3.38150 -0.13500 3.39650 -0.13500 t +3.39650 -0.13500 3.40400 -0.12750 t +3.40400 -0.12750 3.40400 -0.08250 t +3.39650 -0.07500 3.40400 -0.08250 t +3.38150 -0.07500 3.39650 -0.07500 t +3.37400 -0.09000 3.40400 -0.12000 t +3.45650 -0.09750 3.45650 -0.07500 t +3.45650 -0.09750 3.46400 -0.10500 t +3.46400 -0.10500 3.47150 -0.10500 t +3.47150 -0.10500 3.47900 -0.09750 t +3.47900 -0.09750 3.47900 -0.07500 t +3.47900 -0.09750 3.48650 -0.10500 t +3.48650 -0.10500 3.49400 -0.10500 t +3.49400 -0.10500 3.50150 -0.09750 t +3.50150 -0.09750 3.50150 -0.07500 t +3.44900 -0.10500 3.45650 -0.09750 t +3.51950 -0.12000 3.51950 -0.11250 t +3.51950 -0.09750 3.51950 -0.07500 t +3.53450 -0.13500 3.53450 -0.08250 t +3.53450 -0.08250 3.54200 -0.07500 t +3.56450 -0.07500 3.58700 -0.07500 t +3.58700 -0.07500 3.59450 -0.08250 t +3.58700 -0.09000 3.59450 -0.08250 t +3.56450 -0.09000 3.58700 -0.09000 t +3.55700 -0.09750 3.56450 -0.09000 t +3.55700 -0.09750 3.56450 -0.10500 t +3.56450 -0.10500 3.58700 -0.10500 t +3.58700 -0.10500 3.59450 -0.09750 t +3.55700 -0.08250 3.56450 -0.07500 t +3.63950 -0.10500 3.63950 -0.08250 t +3.63950 -0.08250 3.64700 -0.07500 t +3.64700 -0.07500 3.65450 -0.07500 t +3.65450 -0.07500 3.66200 -0.08250 t +3.66200 -0.10500 3.66200 -0.08250 t +3.66200 -0.08250 3.66950 -0.07500 t +3.66950 -0.07500 3.67700 -0.07500 t +3.67700 -0.07500 3.68450 -0.08250 t +3.68450 -0.10500 3.68450 -0.08250 t +3.70250 -0.12000 3.70250 -0.11250 t +3.70250 -0.09750 3.70250 -0.07500 t +3.74750 -0.13500 3.74750 -0.07500 t +3.74000 -0.07500 3.74750 -0.08250 t +3.72500 -0.07500 3.74000 -0.07500 t +3.71750 -0.08250 3.72500 -0.07500 t +3.71750 -0.09750 3.71750 -0.08250 t +3.71750 -0.09750 3.72500 -0.10500 t +3.72500 -0.10500 3.74000 -0.10500 t +3.74000 -0.10500 3.74750 -0.09750 t +3.77300 -0.07500 3.79550 -0.07500 t +3.76550 -0.08250 3.77300 -0.07500 t +3.76550 -0.09750 3.76550 -0.08250 t +3.76550 -0.09750 3.77300 -0.10500 t +3.77300 -0.10500 3.78800 -0.10500 t +3.78800 -0.10500 3.79550 -0.09750 t +3.76550 -0.09000 3.79550 -0.09000 t +3.79550 -0.09750 3.79550 -0.09000 t +3.81350 -0.06000 3.82850 -0.07500 t +3.88100 -0.07500 3.89600 -0.07500 t +3.88850 -0.13500 3.88850 -0.07500 t +3.87350 -0.12000 3.88850 -0.13500 t +3.91400 -0.08250 3.92150 -0.07500 t +3.91400 -0.12750 3.91400 -0.08250 t +3.91400 -0.12750 3.92150 -0.13500 t +3.92150 -0.13500 3.93650 -0.13500 t +3.93650 -0.13500 3.94400 -0.12750 t +3.94400 -0.12750 3.94400 -0.08250 t +3.93650 -0.07500 3.94400 -0.08250 t +3.92150 -0.07500 3.93650 -0.07500 t +3.91400 -0.09000 3.94400 -0.12000 t +3.96200 -0.08250 3.96950 -0.07500 t +3.96200 -0.12750 3.96200 -0.08250 t +3.96200 -0.12750 3.96950 -0.13500 t +3.96950 -0.13500 3.98450 -0.13500 t +3.98450 -0.13500 3.99200 -0.12750 t +3.99200 -0.12750 3.99200 -0.08250 t +3.98450 -0.07500 3.99200 -0.08250 t +3.96950 -0.07500 3.98450 -0.07500 t +3.96200 -0.09000 3.99200 -0.12000 t +4.01000 -0.08250 4.01750 -0.07500 t +4.01000 -0.12750 4.01000 -0.08250 t +4.01000 -0.12750 4.01750 -0.13500 t +4.01750 -0.13500 4.03250 -0.13500 t +4.03250 -0.13500 4.04000 -0.12750 t +4.04000 -0.12750 4.04000 -0.08250 t +4.03250 -0.07500 4.04000 -0.08250 t +4.01750 -0.07500 4.03250 -0.07500 t +4.01000 -0.09000 4.04000 -0.12000 t +4.05800 -0.07500 4.06550 -0.07500 t +4.08350 -0.08250 4.09100 -0.07500 t +4.08350 -0.12750 4.08350 -0.08250 t +4.08350 -0.12750 4.09100 -0.13500 t +4.09100 -0.13500 4.10600 -0.13500 t +4.10600 -0.13500 4.11350 -0.12750 t +4.11350 -0.12750 4.11350 -0.08250 t +4.10600 -0.07500 4.11350 -0.08250 t +4.09100 -0.07500 4.10600 -0.07500 t +4.08350 -0.09000 4.11350 -0.12000 t +4.13150 -0.08250 4.13900 -0.07500 t +4.13150 -0.12750 4.13150 -0.08250 t +4.13150 -0.12750 4.13900 -0.13500 t +4.13900 -0.13500 4.15400 -0.13500 t +4.15400 -0.13500 4.16150 -0.12750 t +4.16150 -0.12750 4.16150 -0.08250 t +4.15400 -0.07500 4.16150 -0.08250 t +4.13900 -0.07500 4.15400 -0.07500 t +4.13150 -0.09000 4.16150 -0.12000 t +4.17950 -0.08250 4.18700 -0.07500 t +4.17950 -0.12750 4.17950 -0.08250 t +4.17950 -0.12750 4.18700 -0.13500 t +4.18700 -0.13500 4.20200 -0.13500 t +4.20200 -0.13500 4.20950 -0.12750 t +4.20950 -0.12750 4.20950 -0.08250 t +4.20200 -0.07500 4.20950 -0.08250 t +4.18700 -0.07500 4.20200 -0.07500 t +4.17950 -0.09000 4.20950 -0.12000 t +4.22750 -0.08250 4.23500 -0.07500 t +4.22750 -0.12750 4.22750 -0.08250 t +4.22750 -0.12750 4.23500 -0.13500 t +4.23500 -0.13500 4.25000 -0.13500 t +4.25000 -0.13500 4.25750 -0.12750 t +4.25750 -0.12750 4.25750 -0.08250 t +4.25000 -0.07500 4.25750 -0.08250 t +4.23500 -0.07500 4.25000 -0.07500 t +4.22750 -0.09000 4.25750 -0.12000 t +4.27550 -0.08250 4.28300 -0.07500 t +4.27550 -0.12750 4.27550 -0.08250 t +4.27550 -0.12750 4.28300 -0.13500 t +4.28300 -0.13500 4.29800 -0.13500 t +4.29800 -0.13500 4.30550 -0.12750 t +4.30550 -0.12750 4.30550 -0.08250 t +4.29800 -0.07500 4.30550 -0.08250 t +4.28300 -0.07500 4.29800 -0.07500 t +4.27550 -0.09000 4.30550 -0.12000 t +4.32350 -0.08250 4.33100 -0.07500 t +4.32350 -0.12750 4.32350 -0.08250 t +4.32350 -0.12750 4.33100 -0.13500 t +4.33100 -0.13500 4.34600 -0.13500 t +4.34600 -0.13500 4.35350 -0.12750 t +4.35350 -0.12750 4.35350 -0.08250 t +4.34600 -0.07500 4.35350 -0.08250 t +4.33100 -0.07500 4.34600 -0.07500 t +4.32350 -0.09000 4.35350 -0.12000 t +4.40600 -0.09750 4.40600 -0.07500 t +4.40600 -0.09750 4.41350 -0.10500 t +4.41350 -0.10500 4.42100 -0.10500 t +4.42100 -0.10500 4.42850 -0.09750 t +4.42850 -0.09750 4.42850 -0.07500 t +4.42850 -0.09750 4.43600 -0.10500 t +4.43600 -0.10500 4.44350 -0.10500 t +4.44350 -0.10500 4.45100 -0.09750 t +4.45100 -0.09750 4.45100 -0.07500 t +4.39850 -0.10500 4.40600 -0.09750 t +4.46900 -0.12000 4.46900 -0.11250 t +4.46900 -0.09750 4.46900 -0.07500 t +4.48400 -0.13500 4.48400 -0.08250 t +4.48400 -0.08250 4.49150 -0.07500 t +4.51400 -0.07500 4.53650 -0.07500 t +4.53650 -0.07500 4.54400 -0.08250 t +4.53650 -0.09000 4.54400 -0.08250 t +4.51400 -0.09000 4.53650 -0.09000 t +4.50650 -0.09750 4.51400 -0.09000 t +4.50650 -0.09750 4.51400 -0.10500 t +4.51400 -0.10500 4.53650 -0.10500 t +4.53650 -0.10500 4.54400 -0.09750 t +4.50650 -0.08250 4.51400 -0.07500 t +4.58900 -0.13500 4.58900 -0.07500 t +4.58900 -0.09750 4.59650 -0.10500 t +4.59650 -0.10500 4.61150 -0.10500 t +4.61150 -0.10500 4.61900 -0.09750 t +4.61900 -0.09750 4.61900 -0.07500 t +4.63700 -0.12000 4.63700 -0.11250 t +4.63700 -0.09750 4.63700 -0.07500 t +4.67450 -0.10500 4.68200 -0.09750 t +4.65950 -0.10500 4.67450 -0.10500 t +4.65200 -0.09750 4.65950 -0.10500 t +4.65200 -0.09750 4.65200 -0.08250 t +4.65200 -0.08250 4.65950 -0.07500 t +4.65950 -0.07500 4.67450 -0.07500 t +4.67450 -0.07500 4.68200 -0.08250 t +4.65200 -0.06000 4.65950 -0.05250 t +4.65950 -0.05250 4.67450 -0.05250 t +4.67450 -0.05250 4.68200 -0.06000 t +4.68200 -0.10500 4.68200 -0.06000 t +4.70000 -0.13500 4.70000 -0.07500 t +4.70000 -0.09750 4.70750 -0.10500 t +4.70750 -0.10500 4.72250 -0.10500 t +4.72250 -0.10500 4.73000 -0.09750 t +4.73000 -0.09750 4.73000 -0.07500 t +0.00000 1.09500 0.03000 1.09500 t +0.03000 1.09500 0.03750 1.08750 t +0.03750 1.07250 0.03750 1.08750 t +0.03000 1.06500 0.03750 1.07250 t +0.00750 1.06500 0.03000 1.06500 t +0.00750 1.03500 0.00750 1.09500 t +0.00000 1.03500 0.03000 1.03500 t +0.03000 1.03500 0.03750 1.04250 t +0.03750 1.04250 0.03750 1.05750 t +0.03000 1.06500 0.03750 1.05750 t +0.05550 1.07250 0.05550 1.08750 t +0.05550 1.07250 0.06300 1.06500 t +0.06300 1.06500 0.07800 1.06500 t +0.07800 1.06500 0.08550 1.07250 t +0.08550 1.07250 0.08550 1.08750 t +0.07800 1.09500 0.08550 1.08750 t +0.06300 1.09500 0.07800 1.09500 t +0.05550 1.08750 0.06300 1.09500 t +0.12600 1.06500 0.13350 1.07250 t +0.11100 1.06500 0.12600 1.06500 t +0.10350 1.07250 0.11100 1.06500 t +0.10350 1.07250 0.10350 1.08750 t +0.10350 1.08750 0.11100 1.09500 t +0.13350 1.06500 0.13350 1.08750 t +0.13350 1.08750 0.14100 1.09500 t +0.11100 1.09500 0.12600 1.09500 t +0.12600 1.09500 0.13350 1.08750 t +0.16650 1.07250 0.16650 1.09500 t +0.16650 1.07250 0.17400 1.06500 t +0.17400 1.06500 0.18900 1.06500 t +0.15900 1.06500 0.16650 1.07250 t +0.23700 1.03500 0.23700 1.09500 t +0.22950 1.09500 0.23700 1.08750 t +0.21450 1.09500 0.22950 1.09500 t +0.20700 1.08750 0.21450 1.09500 t +0.20700 1.07250 0.20700 1.08750 t +0.20700 1.07250 0.21450 1.06500 t +0.21450 1.06500 0.22950 1.06500 t +0.22950 1.06500 0.23700 1.07250 t +0.28200 1.07250 0.28200 1.08750 t +0.28200 1.07250 0.28950 1.06500 t +0.28950 1.06500 0.30450 1.06500 t +0.30450 1.06500 0.31200 1.07250 t +0.31200 1.07250 0.31200 1.08750 t +0.30450 1.09500 0.31200 1.08750 t +0.28950 1.09500 0.30450 1.09500 t +0.28200 1.08750 0.28950 1.09500 t +0.33000 1.06500 0.33000 1.08750 t +0.33000 1.08750 0.33750 1.09500 t +0.33750 1.09500 0.35250 1.09500 t +0.35250 1.09500 0.36000 1.08750 t +0.36000 1.06500 0.36000 1.08750 t +0.38550 1.03500 0.38550 1.08750 t +0.38550 1.08750 0.39300 1.09500 t +0.37800 1.05750 0.39300 1.05750 t +0.40800 1.03500 0.40800 1.08750 t +0.40800 1.08750 0.41550 1.09500 t +0.43050 1.05000 0.43050 1.05750 t +0.43050 1.07250 0.43050 1.09500 t +0.45300 1.07250 0.45300 1.09500 t +0.45300 1.07250 0.46050 1.06500 t +0.46050 1.06500 0.46800 1.06500 t +0.46800 1.06500 0.47550 1.07250 t +0.47550 1.07250 0.47550 1.09500 t +0.44550 1.06500 0.45300 1.07250 t +0.50100 1.09500 0.52350 1.09500 t +0.49350 1.08750 0.50100 1.09500 t +0.49350 1.07250 0.49350 1.08750 t +0.49350 1.07250 0.50100 1.06500 t +0.50100 1.06500 0.51600 1.06500 t +0.51600 1.06500 0.52350 1.07250 t +0.49350 1.08000 0.52350 1.08000 t +0.52350 1.07250 0.52350 1.08000 t +0.56850 1.05000 0.56850 1.05750 t +0.56850 1.07250 0.56850 1.09500 t +0.59100 1.09500 0.61350 1.09500 t +0.61350 1.09500 0.62100 1.08750 t +0.61350 1.08000 0.62100 1.08750 t +0.59100 1.08000 0.61350 1.08000 t +0.58350 1.07250 0.59100 1.08000 t +0.58350 1.07250 0.59100 1.06500 t +0.59100 1.06500 0.61350 1.06500 t +0.61350 1.06500 0.62100 1.07250 t +0.58350 1.08750 0.59100 1.09500 t +0.67350 1.03500 0.67350 1.08750 t +0.67350 1.08750 0.68100 1.09500 t +0.66600 1.05750 0.68100 1.05750 t +0.69600 1.03500 0.69600 1.09500 t +0.69600 1.07250 0.70350 1.06500 t +0.70350 1.06500 0.71850 1.06500 t +0.71850 1.06500 0.72600 1.07250 t +0.72600 1.07250 0.72600 1.09500 t +0.75150 1.09500 0.77400 1.09500 t +0.74400 1.08750 0.75150 1.09500 t +0.74400 1.07250 0.74400 1.08750 t +0.74400 1.07250 0.75150 1.06500 t +0.75150 1.06500 0.76650 1.06500 t +0.76650 1.06500 0.77400 1.07250 t +0.74400 1.08000 0.77400 1.08000 t +0.77400 1.07250 0.77400 1.08000 t +0.82650 1.06500 0.84900 1.06500 t +0.81900 1.07250 0.82650 1.06500 t +0.81900 1.07250 0.81900 1.08750 t +0.81900 1.08750 0.82650 1.09500 t +0.82650 1.09500 0.84900 1.09500 t +0.87450 1.09500 0.89700 1.09500 t +0.86700 1.08750 0.87450 1.09500 t +0.86700 1.07250 0.86700 1.08750 t +0.86700 1.07250 0.87450 1.06500 t +0.87450 1.06500 0.88950 1.06500 t +0.88950 1.06500 0.89700 1.07250 t +0.86700 1.08000 0.89700 1.08000 t +0.89700 1.07250 0.89700 1.08000 t +0.92250 1.07250 0.92250 1.09500 t +0.92250 1.07250 0.93000 1.06500 t +0.93000 1.06500 0.93750 1.06500 t +0.93750 1.06500 0.94500 1.07250 t +0.94500 1.07250 0.94500 1.09500 t +0.91500 1.06500 0.92250 1.07250 t +0.97050 1.03500 0.97050 1.08750 t +0.97050 1.08750 0.97800 1.09500 t +0.96300 1.05750 0.97800 1.05750 t +1.00050 1.09500 1.02300 1.09500 t +0.99300 1.08750 1.00050 1.09500 t +0.99300 1.07250 0.99300 1.08750 t +0.99300 1.07250 1.00050 1.06500 t +1.00050 1.06500 1.01550 1.06500 t +1.01550 1.06500 1.02300 1.07250 t +0.99300 1.08000 1.02300 1.08000 t +1.02300 1.07250 1.02300 1.08000 t +1.04850 1.07250 1.04850 1.09500 t +1.04850 1.07250 1.05600 1.06500 t +1.05600 1.06500 1.07100 1.06500 t +1.04100 1.06500 1.04850 1.07250 t +1.08900 1.03500 1.08900 1.08750 t +1.08900 1.08750 1.09650 1.09500 t +1.11150 1.05000 1.11150 1.05750 t +1.11150 1.07250 1.11150 1.09500 t +1.13400 1.07250 1.13400 1.09500 t +1.13400 1.07250 1.14150 1.06500 t +1.14150 1.06500 1.14900 1.06500 t +1.14900 1.06500 1.15650 1.07250 t +1.15650 1.07250 1.15650 1.09500 t +1.12650 1.06500 1.13400 1.07250 t +1.18200 1.09500 1.20450 1.09500 t +1.17450 1.08750 1.18200 1.09500 t +1.17450 1.07250 1.17450 1.08750 t +1.17450 1.07250 1.18200 1.06500 t +1.18200 1.06500 1.19700 1.06500 t +1.19700 1.06500 1.20450 1.07250 t +1.17450 1.08000 1.20450 1.08000 t +1.20450 1.07250 1.20450 1.08000 t +1.24950 1.07250 1.24950 1.08750 t +1.24950 1.07250 1.25700 1.06500 t +1.25700 1.06500 1.27200 1.06500 t +1.27200 1.06500 1.27950 1.07250 t +1.27950 1.07250 1.27950 1.08750 t +1.27200 1.09500 1.27950 1.08750 t +1.25700 1.09500 1.27200 1.09500 t +1.24950 1.08750 1.25700 1.09500 t +1.30500 1.04250 1.30500 1.09500 t +1.30500 1.04250 1.31250 1.03500 t +1.31250 1.03500 1.32000 1.03500 t +1.29750 1.06500 1.31250 1.06500 t +1.36950 1.03500 1.36950 1.08750 t +1.36950 1.08750 1.37700 1.09500 t +1.36200 1.05750 1.37700 1.05750 t +1.39200 1.03500 1.39200 1.09500 t +1.39200 1.07250 1.39950 1.06500 t +1.39950 1.06500 1.41450 1.06500 t +1.41450 1.06500 1.42200 1.07250 t +1.42200 1.07250 1.42200 1.09500 t +1.44000 1.05000 1.44000 1.05750 t +1.44000 1.07250 1.44000 1.09500 t +1.46250 1.09500 1.48500 1.09500 t +1.48500 1.09500 1.49250 1.08750 t +1.48500 1.08000 1.49250 1.08750 t +1.46250 1.08000 1.48500 1.08000 t +1.45500 1.07250 1.46250 1.08000 t +1.45500 1.07250 1.46250 1.06500 t +1.46250 1.06500 1.48500 1.06500 t +1.48500 1.06500 1.49250 1.07250 t +1.45500 1.08750 1.46250 1.09500 t +1.53750 1.08750 1.54500 1.09500 t +1.53750 1.07250 1.53750 1.08750 t +1.53750 1.07250 1.54500 1.06500 t +1.54500 1.06500 1.56000 1.06500 t +1.56000 1.06500 1.56750 1.07250 t +1.56750 1.07250 1.56750 1.08750 t +1.56000 1.09500 1.56750 1.08750 t +1.54500 1.09500 1.56000 1.09500 t +1.53750 1.05750 1.54500 1.06500 t +1.53750 1.04250 1.53750 1.05750 t +1.53750 1.04250 1.54500 1.03500 t +1.54500 1.03500 1.56000 1.03500 t +1.56000 1.03500 1.56750 1.04250 t +1.56750 1.04250 1.56750 1.05750 t +1.56000 1.06500 1.56750 1.05750 t +1.58550 1.09500 1.59300 1.09500 t +1.61100 1.08750 1.61850 1.09500 t +1.61100 1.04250 1.61100 1.08750 t +1.61100 1.04250 1.61850 1.03500 t +1.61850 1.03500 1.63350 1.03500 t +1.63350 1.03500 1.64100 1.04250 t +1.64100 1.04250 1.64100 1.08750 t +1.63350 1.09500 1.64100 1.08750 t +1.61850 1.09500 1.63350 1.09500 t +1.61100 1.08000 1.64100 1.05000 t +1.65900 1.08750 1.66650 1.09500 t +1.65900 1.04250 1.65900 1.08750 t +1.65900 1.04250 1.66650 1.03500 t +1.66650 1.03500 1.68150 1.03500 t +1.68150 1.03500 1.68900 1.04250 t +1.68900 1.04250 1.68900 1.08750 t +1.68150 1.09500 1.68900 1.08750 t +1.66650 1.09500 1.68150 1.09500 t +1.65900 1.08000 1.68900 1.05000 t +1.70700 1.08750 1.71450 1.09500 t +1.70700 1.04250 1.70700 1.08750 t +1.70700 1.04250 1.71450 1.03500 t +1.71450 1.03500 1.72950 1.03500 t +1.72950 1.03500 1.73700 1.04250 t +1.73700 1.04250 1.73700 1.08750 t +1.72950 1.09500 1.73700 1.08750 t +1.71450 1.09500 1.72950 1.09500 t +1.70700 1.08000 1.73700 1.05000 t +1.75500 1.08750 1.76250 1.09500 t +1.75500 1.04250 1.75500 1.08750 t +1.75500 1.04250 1.76250 1.03500 t +1.76250 1.03500 1.77750 1.03500 t +1.77750 1.03500 1.78500 1.04250 t +1.78500 1.04250 1.78500 1.08750 t +1.77750 1.09500 1.78500 1.08750 t +1.76250 1.09500 1.77750 1.09500 t +1.75500 1.08000 1.78500 1.05000 t +1.80300 1.08750 1.81050 1.09500 t +1.80300 1.04250 1.80300 1.08750 t +1.80300 1.04250 1.81050 1.03500 t +1.81050 1.03500 1.82550 1.03500 t +1.82550 1.03500 1.83300 1.04250 t +1.83300 1.04250 1.83300 1.08750 t +1.82550 1.09500 1.83300 1.08750 t +1.81050 1.09500 1.82550 1.09500 t +1.80300 1.08000 1.83300 1.05000 t +1.85100 1.08750 1.85850 1.09500 t +1.85100 1.04250 1.85100 1.08750 t +1.85100 1.04250 1.85850 1.03500 t +1.85850 1.03500 1.87350 1.03500 t +1.87350 1.03500 1.88100 1.04250 t +1.88100 1.04250 1.88100 1.08750 t +1.87350 1.09500 1.88100 1.08750 t +1.85850 1.09500 1.87350 1.09500 t +1.85100 1.08000 1.88100 1.05000 t +1.93350 1.07250 1.93350 1.09500 t +1.93350 1.07250 1.94100 1.06500 t +1.94100 1.06500 1.94850 1.06500 t +1.94850 1.06500 1.95600 1.07250 t +1.95600 1.07250 1.95600 1.09500 t +1.95600 1.07250 1.96350 1.06500 t +1.96350 1.06500 1.97100 1.06500 t +1.97100 1.06500 1.97850 1.07250 t +1.97850 1.07250 1.97850 1.09500 t +1.92600 1.06500 1.93350 1.07250 t +1.99650 1.05000 1.99650 1.05750 t +1.99650 1.07250 1.99650 1.09500 t +2.01150 1.03500 2.01150 1.08750 t +2.01150 1.08750 2.01900 1.09500 t +2.06850 1.07250 2.06850 1.09500 t +2.06850 1.07250 2.07600 1.06500 t +2.07600 1.06500 2.09100 1.06500 t +2.06100 1.06500 2.06850 1.07250 t +2.11650 1.09500 2.13900 1.09500 t +2.10900 1.08750 2.11650 1.09500 t +2.10900 1.07250 2.10900 1.08750 t +2.10900 1.07250 2.11650 1.06500 t +2.11650 1.06500 2.13150 1.06500 t +2.13150 1.06500 2.13900 1.07250 t +2.10900 1.08000 2.13900 1.08000 t +2.13900 1.07250 2.13900 1.08000 t +2.16450 1.06500 2.18700 1.06500 t +2.15700 1.07250 2.16450 1.06500 t +2.15700 1.07250 2.15700 1.08750 t +2.15700 1.08750 2.16450 1.09500 t +2.16450 1.09500 2.18700 1.09500 t +2.21250 1.03500 2.21250 1.08750 t +2.21250 1.08750 2.22000 1.09500 t +2.20500 1.05750 2.22000 1.05750 t +2.25750 1.06500 2.26500 1.07250 t +2.24250 1.06500 2.25750 1.06500 t +2.23500 1.07250 2.24250 1.06500 t +2.23500 1.07250 2.23500 1.08750 t +2.23500 1.08750 2.24250 1.09500 t +2.26500 1.06500 2.26500 1.08750 t +2.26500 1.08750 2.27250 1.09500 t +2.24250 1.09500 2.25750 1.09500 t +2.25750 1.09500 2.26500 1.08750 t +2.29800 1.07250 2.29800 1.09500 t +2.29800 1.07250 2.30550 1.06500 t +2.30550 1.06500 2.31300 1.06500 t +2.31300 1.06500 2.32050 1.07250 t +2.32050 1.07250 2.32050 1.09500 t +2.29050 1.06500 2.29800 1.07250 t +2.36100 1.06500 2.36850 1.07250 t +2.34600 1.06500 2.36100 1.06500 t +2.33850 1.07250 2.34600 1.06500 t +2.33850 1.07250 2.33850 1.08750 t +2.33850 1.08750 2.34600 1.09500 t +2.34600 1.09500 2.36100 1.09500 t +2.36100 1.09500 2.36850 1.08750 t +2.33850 1.11000 2.34600 1.11750 t +2.34600 1.11750 2.36100 1.11750 t +2.36100 1.11750 2.36850 1.11000 t +2.36850 1.06500 2.36850 1.11000 t +2.38650 1.03500 2.38650 1.08750 t +2.38650 1.08750 2.39400 1.09500 t +2.41650 1.09500 2.43900 1.09500 t +2.40900 1.08750 2.41650 1.09500 t +2.40900 1.07250 2.40900 1.08750 t +2.40900 1.07250 2.41650 1.06500 t +2.41650 1.06500 2.43150 1.06500 t +2.43150 1.06500 2.43900 1.07250 t +2.40900 1.08000 2.43900 1.08000 t +2.43900 1.07250 2.43900 1.08000 t +2.48400 1.06500 2.51400 1.06500 t +2.55900 1.08750 2.56650 1.09500 t +2.55900 1.04250 2.55900 1.08750 t +2.55900 1.04250 2.56650 1.03500 t +2.56650 1.03500 2.58150 1.03500 t +2.58150 1.03500 2.58900 1.04250 t +2.58900 1.04250 2.58900 1.08750 t +2.58150 1.09500 2.58900 1.08750 t +2.56650 1.09500 2.58150 1.09500 t +2.55900 1.08000 2.58900 1.05000 t +2.60700 1.11000 2.62200 1.09500 t +2.64000 1.08750 2.64750 1.09500 t +2.64000 1.04250 2.64000 1.08750 t +2.64000 1.04250 2.64750 1.03500 t +2.64750 1.03500 2.66250 1.03500 t +2.66250 1.03500 2.67000 1.04250 t +2.67000 1.04250 2.67000 1.08750 t +2.66250 1.09500 2.67000 1.08750 t +2.64750 1.09500 2.66250 1.09500 t +2.64000 1.08000 2.67000 1.05000 t +2.72250 1.03500 2.72250 1.08750 t +2.72250 1.08750 2.73000 1.09500 t +2.71500 1.05750 2.73000 1.05750 t +2.74500 1.07250 2.74500 1.08750 t +2.74500 1.07250 2.75250 1.06500 t +2.75250 1.06500 2.76750 1.06500 t +2.76750 1.06500 2.77500 1.07250 t +2.77500 1.07250 2.77500 1.08750 t +2.76750 1.09500 2.77500 1.08750 t +2.75250 1.09500 2.76750 1.09500 t +2.74500 1.08750 2.75250 1.09500 t +2.82000 1.04250 2.82750 1.03500 t +2.82750 1.03500 2.85000 1.03500 t +2.85000 1.03500 2.85750 1.04250 t +2.85750 1.04250 2.85750 1.05750 t +2.82000 1.09500 2.85750 1.05750 t +2.82000 1.09500 2.85750 1.09500 t +2.87550 1.08750 2.88300 1.09500 t +2.87550 1.04250 2.87550 1.08750 t +2.87550 1.04250 2.88300 1.03500 t +2.88300 1.03500 2.89800 1.03500 t +2.89800 1.03500 2.90550 1.04250 t +2.90550 1.04250 2.90550 1.08750 t +2.89800 1.09500 2.90550 1.08750 t +2.88300 1.09500 2.89800 1.09500 t +2.87550 1.08000 2.90550 1.05000 t +2.92350 1.08750 2.93100 1.09500 t +2.92350 1.04250 2.92350 1.08750 t +2.92350 1.04250 2.93100 1.03500 t +2.93100 1.03500 2.94600 1.03500 t +2.94600 1.03500 2.95350 1.04250 t +2.95350 1.04250 2.95350 1.08750 t +2.94600 1.09500 2.95350 1.08750 t +2.93100 1.09500 2.94600 1.09500 t +2.92350 1.08000 2.95350 1.05000 t +2.97150 1.08750 2.97900 1.09500 t +2.97150 1.04250 2.97150 1.08750 t +2.97150 1.04250 2.97900 1.03500 t +2.97900 1.03500 2.99400 1.03500 t +2.99400 1.03500 3.00150 1.04250 t +3.00150 1.04250 3.00150 1.08750 t +2.99400 1.09500 3.00150 1.08750 t +2.97900 1.09500 2.99400 1.09500 t +2.97150 1.08000 3.00150 1.05000 t +3.01950 1.09500 3.02700 1.09500 t +3.04500 1.08750 3.05250 1.09500 t +3.04500 1.04250 3.04500 1.08750 t +3.04500 1.04250 3.05250 1.03500 t +3.05250 1.03500 3.06750 1.03500 t +3.06750 1.03500 3.07500 1.04250 t +3.07500 1.04250 3.07500 1.08750 t +3.06750 1.09500 3.07500 1.08750 t +3.05250 1.09500 3.06750 1.09500 t +3.04500 1.08000 3.07500 1.05000 t +3.09300 1.08750 3.10050 1.09500 t +3.09300 1.04250 3.09300 1.08750 t +3.09300 1.04250 3.10050 1.03500 t +3.10050 1.03500 3.11550 1.03500 t +3.11550 1.03500 3.12300 1.04250 t +3.12300 1.04250 3.12300 1.08750 t +3.11550 1.09500 3.12300 1.08750 t +3.10050 1.09500 3.11550 1.09500 t +3.09300 1.08000 3.12300 1.05000 t +3.14100 1.08750 3.14850 1.09500 t +3.14100 1.04250 3.14100 1.08750 t +3.14100 1.04250 3.14850 1.03500 t +3.14850 1.03500 3.16350 1.03500 t +3.16350 1.03500 3.17100 1.04250 t +3.17100 1.04250 3.17100 1.08750 t +3.16350 1.09500 3.17100 1.08750 t +3.14850 1.09500 3.16350 1.09500 t +3.14100 1.08000 3.17100 1.05000 t +3.18900 1.08750 3.19650 1.09500 t +3.18900 1.04250 3.18900 1.08750 t +3.18900 1.04250 3.19650 1.03500 t +3.19650 1.03500 3.21150 1.03500 t +3.21150 1.03500 3.21900 1.04250 t +3.21900 1.04250 3.21900 1.08750 t +3.21150 1.09500 3.21900 1.08750 t +3.19650 1.09500 3.21150 1.09500 t +3.18900 1.08000 3.21900 1.05000 t +3.23700 1.08750 3.24450 1.09500 t +3.23700 1.04250 3.23700 1.08750 t +3.23700 1.04250 3.24450 1.03500 t +3.24450 1.03500 3.25950 1.03500 t +3.25950 1.03500 3.26700 1.04250 t +3.26700 1.04250 3.26700 1.08750 t +3.25950 1.09500 3.26700 1.08750 t +3.24450 1.09500 3.25950 1.09500 t +3.23700 1.08000 3.26700 1.05000 t +3.28500 1.08750 3.29250 1.09500 t +3.28500 1.04250 3.28500 1.08750 t +3.28500 1.04250 3.29250 1.03500 t +3.29250 1.03500 3.30750 1.03500 t +3.30750 1.03500 3.31500 1.04250 t +3.31500 1.04250 3.31500 1.08750 t +3.30750 1.09500 3.31500 1.08750 t +3.29250 1.09500 3.30750 1.09500 t +3.28500 1.08000 3.31500 1.05000 t +3.33300 1.11000 3.34800 1.09500 t +3.37350 1.09500 3.38850 1.09500 t +3.38100 1.03500 3.38100 1.09500 t +3.36600 1.05000 3.38100 1.03500 t +3.40650 1.08750 3.41400 1.09500 t +3.40650 1.04250 3.40650 1.08750 t +3.40650 1.04250 3.41400 1.03500 t +3.41400 1.03500 3.42900 1.03500 t +3.42900 1.03500 3.43650 1.04250 t +3.43650 1.04250 3.43650 1.08750 t +3.42900 1.09500 3.43650 1.08750 t +3.41400 1.09500 3.42900 1.09500 t +3.40650 1.08000 3.43650 1.05000 t +3.45450 1.08750 3.46200 1.09500 t +3.45450 1.04250 3.45450 1.08750 t +3.45450 1.04250 3.46200 1.03500 t +3.46200 1.03500 3.47700 1.03500 t +3.47700 1.03500 3.48450 1.04250 t +3.48450 1.04250 3.48450 1.08750 t +3.47700 1.09500 3.48450 1.08750 t +3.46200 1.09500 3.47700 1.09500 t +3.45450 1.08000 3.48450 1.05000 t +3.50250 1.08750 3.51000 1.09500 t +3.50250 1.04250 3.50250 1.08750 t +3.50250 1.04250 3.51000 1.03500 t +3.51000 1.03500 3.52500 1.03500 t +3.52500 1.03500 3.53250 1.04250 t +3.53250 1.04250 3.53250 1.08750 t +3.52500 1.09500 3.53250 1.08750 t +3.51000 1.09500 3.52500 1.09500 t +3.50250 1.08000 3.53250 1.05000 t +3.55050 1.09500 3.55800 1.09500 t +3.57600 1.08750 3.58350 1.09500 t +3.57600 1.04250 3.57600 1.08750 t +3.57600 1.04250 3.58350 1.03500 t +3.58350 1.03500 3.59850 1.03500 t +3.59850 1.03500 3.60600 1.04250 t +3.60600 1.04250 3.60600 1.08750 t +3.59850 1.09500 3.60600 1.08750 t +3.58350 1.09500 3.59850 1.09500 t +3.57600 1.08000 3.60600 1.05000 t +3.62400 1.08750 3.63150 1.09500 t +3.62400 1.04250 3.62400 1.08750 t +3.62400 1.04250 3.63150 1.03500 t +3.63150 1.03500 3.64650 1.03500 t +3.64650 1.03500 3.65400 1.04250 t +3.65400 1.04250 3.65400 1.08750 t +3.64650 1.09500 3.65400 1.08750 t +3.63150 1.09500 3.64650 1.09500 t +3.62400 1.08000 3.65400 1.05000 t +3.67200 1.08750 3.67950 1.09500 t +3.67200 1.04250 3.67200 1.08750 t +3.67200 1.04250 3.67950 1.03500 t +3.67950 1.03500 3.69450 1.03500 t +3.69450 1.03500 3.70200 1.04250 t +3.70200 1.04250 3.70200 1.08750 t +3.69450 1.09500 3.70200 1.08750 t +3.67950 1.09500 3.69450 1.09500 t +3.67200 1.08000 3.70200 1.05000 t +3.72000 1.08750 3.72750 1.09500 t +3.72000 1.04250 3.72000 1.08750 t +3.72000 1.04250 3.72750 1.03500 t +3.72750 1.03500 3.74250 1.03500 t +3.74250 1.03500 3.75000 1.04250 t +3.75000 1.04250 3.75000 1.08750 t +3.74250 1.09500 3.75000 1.08750 t +3.72750 1.09500 3.74250 1.09500 t +3.72000 1.08000 3.75000 1.05000 t +3.76800 1.08750 3.77550 1.09500 t +3.76800 1.04250 3.76800 1.08750 t +3.76800 1.04250 3.77550 1.03500 t +3.77550 1.03500 3.79050 1.03500 t +3.79050 1.03500 3.79800 1.04250 t +3.79800 1.04250 3.79800 1.08750 t +3.79050 1.09500 3.79800 1.08750 t +3.77550 1.09500 3.79050 1.09500 t +3.76800 1.08000 3.79800 1.05000 t +3.81600 1.08750 3.82350 1.09500 t +3.81600 1.04250 3.81600 1.08750 t +3.81600 1.04250 3.82350 1.03500 t +3.82350 1.03500 3.83850 1.03500 t +3.83850 1.03500 3.84600 1.04250 t +3.84600 1.04250 3.84600 1.08750 t +3.83850 1.09500 3.84600 1.08750 t +3.82350 1.09500 3.83850 1.09500 t +3.81600 1.08000 3.84600 1.05000 t +3.89850 1.07250 3.89850 1.09500 t +3.89850 1.07250 3.90600 1.06500 t +3.90600 1.06500 3.91350 1.06500 t +3.91350 1.06500 3.92100 1.07250 t +3.92100 1.07250 3.92100 1.09500 t +3.92100 1.07250 3.92850 1.06500 t +3.92850 1.06500 3.93600 1.06500 t +3.93600 1.06500 3.94350 1.07250 t +3.94350 1.07250 3.94350 1.09500 t +3.89100 1.06500 3.89850 1.07250 t +3.96150 1.05000 3.96150 1.05750 t +3.96150 1.07250 3.96150 1.09500 t +3.97650 1.03500 3.97650 1.08750 t +3.97650 1.08750 3.98400 1.09500 t +4.00650 1.09500 4.02901 1.09500 t +4.02901 1.09500 4.03651 1.08750 t +4.02901 1.08000 4.03651 1.08750 t +4.00650 1.08000 4.02901 1.08000 t +3.99901 1.07250 4.00650 1.08000 t +3.99901 1.07250 4.00650 1.06500 t +4.00650 1.06500 4.02901 1.06500 t +4.02901 1.06500 4.03651 1.07250 t +3.99901 1.08750 4.00650 1.09500 t +2.00750 -0.28500 2.00750 -0.22500 t +2.03000 -0.28500 2.03750 -0.27750 t +2.03750 -0.27750 2.03750 -0.23250 t +2.03000 -0.22500 2.03750 -0.23250 t +2.00000 -0.22500 2.03000 -0.22500 t +2.00000 -0.28500 2.03000 -0.28500 t +2.07800 -0.25500 2.08550 -0.24750 t +2.06300 -0.25500 2.07800 -0.25500 t +2.05550 -0.24750 2.06300 -0.25500 t +2.05550 -0.24750 2.05550 -0.23250 t +2.05550 -0.23250 2.06300 -0.22500 t +2.08550 -0.25500 2.08550 -0.23250 t +2.08550 -0.23250 2.09300 -0.22500 t +2.06300 -0.22500 2.07800 -0.22500 t +2.07800 -0.22500 2.08550 -0.23250 t +2.11850 -0.28500 2.11850 -0.23250 t +2.11850 -0.23250 2.12600 -0.22500 t +2.11100 -0.26250 2.12600 -0.26250 t +2.14850 -0.22500 2.17100 -0.22500 t +2.14100 -0.23250 2.14850 -0.22500 t +2.14100 -0.24750 2.14100 -0.23250 t +2.14100 -0.24750 2.14850 -0.25500 t +2.14850 -0.25500 2.16350 -0.25500 t +2.16350 -0.25500 2.17100 -0.24750 t +2.14100 -0.24000 2.17100 -0.24000 t +2.17100 -0.24750 2.17100 -0.24000 t +2.18900 -0.26250 2.19650 -0.26250 t +2.18900 -0.24750 2.19650 -0.24750 t +2.24150 -0.28500 2.24150 -0.22500 t +2.24150 -0.28500 2.27150 -0.28500 t +2.24150 -0.25500 2.26400 -0.25500 t +2.29700 -0.24750 2.29700 -0.22500 t +2.29700 -0.24750 2.30450 -0.25500 t +2.30450 -0.25500 2.31950 -0.25500 t +2.28950 -0.25500 2.29700 -0.24750 t +2.33750 -0.27000 2.33750 -0.26250 t +2.33750 -0.24750 2.33750 -0.22500 t +2.40950 -0.28500 2.41700 -0.27750 t +2.38700 -0.28500 2.40950 -0.28500 t +2.37950 -0.27750 2.38700 -0.28500 t +2.37950 -0.27750 2.37950 -0.26250 t +2.37950 -0.26250 2.38700 -0.25500 t +2.38700 -0.25500 2.40950 -0.25500 t +2.40950 -0.25500 2.41700 -0.24750 t +2.41700 -0.24750 2.41700 -0.23250 t +2.40950 -0.22500 2.41700 -0.23250 t +2.38700 -0.22500 2.40950 -0.22500 t +2.37950 -0.23250 2.38700 -0.22500 t +2.44250 -0.22500 2.46500 -0.22500 t +2.43500 -0.23250 2.44250 -0.22500 t +2.43500 -0.24750 2.43500 -0.23250 t +2.43500 -0.24750 2.44250 -0.25500 t +2.44250 -0.25500 2.45750 -0.25500 t +2.45750 -0.25500 2.46500 -0.24750 t +2.43500 -0.24000 2.46500 -0.24000 t +2.46500 -0.24750 2.46500 -0.24000 t +2.49050 -0.24750 2.49050 -0.20250 t +2.48300 -0.25500 2.49050 -0.24750 t +2.49050 -0.24750 2.49800 -0.25500 t +2.49800 -0.25500 2.51300 -0.25500 t +2.51300 -0.25500 2.52050 -0.24750 t +2.52050 -0.24750 2.52050 -0.23250 t +2.51300 -0.22500 2.52050 -0.23250 t +2.49800 -0.22500 2.51300 -0.22500 t +2.49050 -0.23250 2.49800 -0.22500 t +2.59250 -0.27750 2.60000 -0.28500 t +2.60000 -0.28500 2.62250 -0.28500 t +2.62250 -0.28500 2.63000 -0.27750 t +2.63000 -0.27750 2.63000 -0.26250 t +2.59250 -0.22500 2.63000 -0.26250 t +2.59250 -0.22500 2.63000 -0.22500 t +2.67500 -0.23250 2.68250 -0.22500 t +2.67500 -0.27750 2.67500 -0.23250 t +2.67500 -0.27750 2.68250 -0.28500 t +2.68250 -0.28500 2.69750 -0.28500 t +2.69750 -0.28500 2.70500 -0.27750 t +2.70500 -0.27750 2.70500 -0.23250 t +2.69750 -0.22500 2.70500 -0.23250 t +2.68250 -0.22500 2.69750 -0.22500 t +2.67500 -0.24000 2.70500 -0.27000 t +2.72300 -0.22500 2.75300 -0.25500 t +2.75300 -0.27750 2.75300 -0.25500 t +2.74550 -0.28500 2.75300 -0.27750 t +2.73050 -0.28500 2.74550 -0.28500 t +2.72300 -0.27750 2.73050 -0.28500 t +2.72300 -0.27750 2.72300 -0.26250 t +2.72300 -0.26250 2.73050 -0.25500 t +2.73050 -0.25500 2.75300 -0.25500 t +2.77100 -0.26250 2.77850 -0.26250 t +2.77100 -0.24750 2.77850 -0.24750 t +2.79650 -0.27750 2.80400 -0.28500 t +2.80400 -0.28500 2.82650 -0.28500 t +2.82650 -0.28500 2.83400 -0.27750 t +2.83400 -0.27750 2.83400 -0.26250 t +2.79650 -0.22500 2.83400 -0.26250 t +2.79650 -0.22500 2.83400 -0.22500 t +2.85200 -0.22500 2.88200 -0.25500 t +2.88200 -0.27750 2.88200 -0.25500 t +2.87450 -0.28500 2.88200 -0.27750 t +2.85950 -0.28500 2.87450 -0.28500 t +2.85200 -0.27750 2.85950 -0.28500 t +2.85200 -0.27750 2.85200 -0.26250 t +2.85200 -0.26250 2.85950 -0.25500 t +2.85950 -0.25500 2.88200 -0.25500 t +2.90000 -0.26250 2.90750 -0.26250 t +2.90000 -0.24750 2.90750 -0.24750 t +2.92550 -0.25500 2.95550 -0.28500 t +2.92550 -0.25500 2.96300 -0.25500 t +2.95550 -0.28500 2.95550 -0.22500 t +2.98100 -0.28500 3.01100 -0.28500 t +2.98100 -0.28500 2.98100 -0.25500 t +2.98100 -0.25500 2.98850 -0.26250 t +2.98850 -0.26250 3.00350 -0.26250 t +3.00350 -0.26250 3.01100 -0.25500 t +3.01100 -0.25500 3.01100 -0.23250 t +3.00350 -0.22500 3.01100 -0.23250 t +2.98850 -0.22500 3.00350 -0.22500 t +2.98100 -0.23250 2.98850 -0.22500 t +3.05600 -0.27750 3.06350 -0.28500 t +3.06350 -0.28500 3.08600 -0.28500 t +3.08600 -0.28500 3.09350 -0.27750 t +3.09350 -0.27750 3.09350 -0.26250 t +3.05600 -0.22500 3.09350 -0.26250 t +3.05600 -0.22500 3.09350 -0.22500 t +3.11150 -0.23250 3.11900 -0.22500 t +3.11150 -0.27750 3.11150 -0.23250 t +3.11150 -0.27750 3.11900 -0.28500 t +3.11900 -0.28500 3.13400 -0.28500 t +3.13400 -0.28500 3.14150 -0.27750 t +3.14150 -0.27750 3.14150 -0.23250 t +3.13400 -0.22500 3.14150 -0.23250 t +3.11900 -0.22500 3.13400 -0.22500 t +3.11150 -0.24000 3.14150 -0.27000 t +3.16700 -0.22500 3.18200 -0.22500 t +3.17450 -0.28500 3.17450 -0.22500 t +3.15950 -0.27000 3.17450 -0.28500 t +3.22250 -0.28500 3.23000 -0.27750 t +3.20750 -0.28500 3.22250 -0.28500 t +3.20000 -0.27750 3.20750 -0.28500 t +3.20000 -0.27750 3.20000 -0.23250 t +3.20000 -0.23250 3.20750 -0.22500 t +3.22250 -0.25500 3.23000 -0.24750 t +3.20000 -0.25500 3.22250 -0.25500 t +3.20750 -0.22500 3.22250 -0.22500 t +3.22250 -0.22500 3.23000 -0.23250 t +3.23000 -0.24750 3.23000 -0.23250 t +3.27500 -0.28500 3.27500 -0.23250 t +3.27500 -0.23250 3.28250 -0.22500 t +3.28250 -0.22500 3.29750 -0.22500 t +3.29750 -0.22500 3.30500 -0.23250 t +3.30500 -0.28500 3.30500 -0.23250 t +3.32300 -0.28500 3.35300 -0.28500 t +3.33800 -0.28500 3.33800 -0.22500 t +3.37850 -0.22500 3.40100 -0.22500 t +3.37100 -0.23250 3.37850 -0.22500 t +3.37100 -0.27750 3.37100 -0.23250 t +3.37100 -0.27750 3.37850 -0.28500 t +3.37850 -0.28500 3.40100 -0.28500 t +2.00000 -0.42750 2.00000 -0.37500 t +2.00000 -0.42750 2.00750 -0.43500 t +2.00750 -0.43500 2.03000 -0.43500 t +2.03000 -0.43500 2.03750 -0.42750 t +2.03750 -0.42750 2.03750 -0.37500 t +2.00000 -0.40500 2.03750 -0.40500 t +2.05550 -0.40500 2.05550 -0.38250 t +2.05550 -0.38250 2.06300 -0.37500 t +2.06300 -0.37500 2.07800 -0.37500 t +2.07800 -0.37500 2.08550 -0.38250 t +2.08550 -0.40500 2.08550 -0.38250 t +2.11100 -0.43500 2.11100 -0.38250 t +2.11100 -0.38250 2.11850 -0.37500 t +2.10350 -0.41250 2.11850 -0.41250 t +2.13350 -0.43500 2.13350 -0.37500 t +2.13350 -0.39750 2.14100 -0.40500 t +2.14100 -0.40500 2.15600 -0.40500 t +2.15600 -0.40500 2.16350 -0.39750 t +2.16350 -0.39750 2.16350 -0.37500 t +2.18150 -0.39750 2.18150 -0.38250 t +2.18150 -0.39750 2.18900 -0.40500 t +2.18900 -0.40500 2.20400 -0.40500 t +2.20400 -0.40500 2.21150 -0.39750 t +2.21150 -0.39750 2.21150 -0.38250 t +2.20400 -0.37500 2.21150 -0.38250 t +2.18900 -0.37500 2.20400 -0.37500 t +2.18150 -0.38250 2.18900 -0.37500 t +2.23700 -0.39750 2.23700 -0.37500 t +2.23700 -0.39750 2.24450 -0.40500 t +2.24450 -0.40500 2.25950 -0.40500 t +2.22950 -0.40500 2.23700 -0.39750 t +2.27750 -0.41250 2.28500 -0.41250 t +2.27750 -0.39750 2.28500 -0.39750 t +2.00000 -0.58500 2.03000 -0.58500 t +2.01500 -0.58500 2.01500 -0.52500 t +2.04800 -0.57000 2.04800 -0.56250 t +2.04800 -0.54750 2.04800 -0.52500 t +2.07050 -0.58500 2.07050 -0.53250 t +2.07050 -0.53250 2.07800 -0.52500 t +2.06300 -0.56250 2.07800 -0.56250 t +2.09300 -0.58500 2.09300 -0.53250 t +2.09300 -0.53250 2.10050 -0.52500 t +2.12300 -0.52500 2.14550 -0.52500 t +2.11550 -0.53250 2.12300 -0.52500 t +2.11550 -0.54750 2.11550 -0.53250 t +2.11550 -0.54750 2.12300 -0.55500 t +2.12300 -0.55500 2.13800 -0.55500 t +2.13800 -0.55500 2.14550 -0.54750 t +2.11550 -0.54000 2.14550 -0.54000 t +2.14550 -0.54750 2.14550 -0.54000 t +2.16350 -0.56250 2.17100 -0.56250 t +2.16350 -0.54750 2.17100 -0.54750 t +2.21600 -0.52500 2.24600 -0.52500 t +2.24600 -0.52500 2.25350 -0.53250 t +2.25350 -0.54750 2.25350 -0.53250 t +2.24600 -0.55500 2.25350 -0.54750 t +2.22350 -0.55500 2.24600 -0.55500 t +2.22350 -0.58500 2.22350 -0.52500 t +2.21600 -0.58500 2.24600 -0.58500 t +2.24600 -0.58500 2.25350 -0.57750 t +2.25350 -0.57750 2.25350 -0.56250 t +2.24600 -0.55500 2.25350 -0.56250 t +2.29400 -0.55500 2.30150 -0.54750 t +2.27900 -0.55500 2.29400 -0.55500 t +2.27150 -0.54750 2.27900 -0.55500 t +2.27150 -0.54750 2.27150 -0.53250 t +2.27150 -0.53250 2.27900 -0.52500 t +2.30150 -0.55500 2.30150 -0.53250 t +2.30150 -0.53250 2.30900 -0.52500 t +2.27900 -0.52500 2.29400 -0.52500 t +2.29400 -0.52500 2.30150 -0.53250 t +2.33450 -0.52500 2.35700 -0.52500 t +2.35700 -0.52500 2.36450 -0.53250 t +2.35700 -0.54000 2.36450 -0.53250 t +2.33450 -0.54000 2.35700 -0.54000 t +2.32700 -0.54750 2.33450 -0.54000 t +2.32700 -0.54750 2.33450 -0.55500 t +2.33450 -0.55500 2.35700 -0.55500 t +2.35700 -0.55500 2.36450 -0.54750 t +2.32700 -0.53250 2.33450 -0.52500 t +2.38250 -0.57000 2.38250 -0.56250 t +2.38250 -0.54750 2.38250 -0.52500 t +2.40500 -0.55500 2.42750 -0.55500 t +2.39750 -0.54750 2.40500 -0.55500 t +2.39750 -0.54750 2.39750 -0.53250 t +2.39750 -0.53250 2.40500 -0.52500 t +2.40500 -0.52500 2.42750 -0.52500 t +2.47250 -0.52500 2.50250 -0.52500 t +2.50250 -0.52500 2.51000 -0.53250 t +2.51000 -0.54750 2.51000 -0.53250 t +2.50250 -0.55500 2.51000 -0.54750 t +2.48000 -0.55500 2.50250 -0.55500 t +2.48000 -0.58500 2.48000 -0.52500 t +2.47250 -0.58500 2.50250 -0.58500 t +2.50250 -0.58500 2.51000 -0.57750 t +2.51000 -0.57750 2.51000 -0.56250 t +2.50250 -0.55500 2.51000 -0.56250 t +2.52800 -0.55500 2.52800 -0.53250 t +2.52800 -0.53250 2.53550 -0.52500 t +2.53550 -0.52500 2.55050 -0.52500 t +2.55050 -0.52500 2.55800 -0.53250 t +2.55800 -0.55500 2.55800 -0.53250 t +2.58350 -0.54750 2.58350 -0.52500 t +2.58350 -0.54750 2.59100 -0.55500 t +2.59100 -0.55500 2.60600 -0.55500 t +2.57600 -0.55500 2.58350 -0.54750 t +2.62400 -0.57000 2.62400 -0.56250 t +2.62400 -0.54750 2.62400 -0.52500 t +2.64650 -0.52500 2.66900 -0.52500 t +2.63900 -0.53250 2.64650 -0.52500 t +2.63900 -0.54750 2.63900 -0.53250 t +2.63900 -0.54750 2.64650 -0.55500 t +2.64650 -0.55500 2.66150 -0.55500 t +2.66150 -0.55500 2.66900 -0.54750 t +2.63900 -0.54000 2.66900 -0.54000 t +2.66900 -0.54750 2.66900 -0.54000 t +2.71700 -0.58500 2.71700 -0.52500 t +2.70950 -0.52500 2.71700 -0.53250 t +2.69450 -0.52500 2.70950 -0.52500 t +2.68700 -0.53250 2.69450 -0.52500 t +2.68700 -0.54750 2.68700 -0.53250 t +2.68700 -0.54750 2.69450 -0.55500 t +2.69450 -0.55500 2.70950 -0.55500 t +2.70950 -0.55500 2.71700 -0.54750 t +2.76200 -0.58500 2.76200 -0.54000 t +2.76200 -0.54000 2.77700 -0.52500 t +2.77700 -0.52500 2.79200 -0.54000 t +2.79200 -0.58500 2.79200 -0.54000 t +2.81000 -0.57000 2.81000 -0.56250 t +2.81000 -0.54750 2.81000 -0.52500 t +2.84750 -0.55500 2.85500 -0.54750 t +2.83250 -0.55500 2.84750 -0.55500 t +2.82500 -0.54750 2.83250 -0.55500 t +2.82500 -0.54750 2.82500 -0.53250 t +2.82500 -0.53250 2.83250 -0.52500 t +2.85500 -0.55500 2.85500 -0.53250 t +2.85500 -0.53250 2.86250 -0.52500 t +2.83250 -0.52500 2.84750 -0.52500 t +2.84750 -0.52500 2.85500 -0.53250 t +2.88800 -0.52500 2.91050 -0.52500 t +2.91050 -0.52500 2.91800 -0.53250 t +2.91050 -0.54000 2.91800 -0.53250 t +2.88800 -0.54000 2.91050 -0.54000 t +2.88050 -0.54750 2.88800 -0.54000 t +2.88050 -0.54750 2.88800 -0.55500 t +2.88800 -0.55500 2.91050 -0.55500 t +2.91050 -0.55500 2.91800 -0.54750 t +2.88050 -0.53250 2.88800 -0.52500 t +2.96300 -0.58500 2.99300 -0.58500 t +2.97800 -0.58500 2.97800 -0.52500 t +3.01850 -0.52500 3.04100 -0.52500 t +3.01100 -0.53250 3.01850 -0.52500 t +3.01100 -0.54750 3.01100 -0.53250 t +3.01100 -0.54750 3.01850 -0.55500 t +3.01850 -0.55500 3.03350 -0.55500 t +3.03350 -0.55500 3.04100 -0.54750 t +3.01100 -0.54000 3.04100 -0.54000 t +3.04100 -0.54750 3.04100 -0.54000 t +3.06650 -0.52500 3.08900 -0.52500 t +3.08900 -0.52500 3.09650 -0.53250 t +3.08900 -0.54000 3.09650 -0.53250 t +3.06650 -0.54000 3.08900 -0.54000 t +3.05900 -0.54750 3.06650 -0.54000 t +3.05900 -0.54750 3.06650 -0.55500 t +3.06650 -0.55500 3.08900 -0.55500 t +3.08900 -0.55500 3.09650 -0.54750 t +3.05900 -0.53250 3.06650 -0.52500 t +3.12200 -0.58500 3.12200 -0.53250 t +3.12200 -0.53250 3.12950 -0.52500 t +3.11450 -0.56250 3.12950 -0.56250 t +3.17150 -0.55500 3.20150 -0.55500 t +3.24650 -0.58500 3.24650 -0.52500 t +3.24650 -0.58500 3.27650 -0.58500 t +3.24650 -0.55500 3.26900 -0.55500 t +3.31700 -0.55500 3.32450 -0.54750 t +3.30200 -0.55500 3.31700 -0.55500 t +3.29450 -0.54750 3.30200 -0.55500 t +3.29450 -0.54750 3.29450 -0.53250 t +3.29450 -0.53250 3.30200 -0.52500 t +3.32450 -0.55500 3.32450 -0.53250 t +3.32450 -0.53250 3.33200 -0.52500 t +3.30200 -0.52500 3.31700 -0.52500 t +3.31700 -0.52500 3.32450 -0.53250 t +3.35000 -0.58500 3.35000 -0.52500 t +3.35000 -0.53250 3.35750 -0.52500 t +3.35750 -0.52500 3.37250 -0.52500 t +3.37250 -0.52500 3.38000 -0.53250 t +3.38000 -0.54750 3.38000 -0.53250 t +3.37250 -0.55500 3.38000 -0.54750 t +3.35750 -0.55500 3.37250 -0.55500 t +3.35000 -0.54750 3.35750 -0.55500 t +3.40550 -0.54750 3.40550 -0.52500 t +3.40550 -0.54750 3.41300 -0.55500 t +3.41300 -0.55500 3.42800 -0.55500 t +3.39800 -0.55500 3.40550 -0.54750 t +3.44600 -0.57000 3.44600 -0.56250 t +3.44600 -0.54750 3.44600 -0.52500 t +3.46850 -0.55500 3.49100 -0.55500 t +3.46100 -0.54750 3.46850 -0.55500 t +3.46100 -0.54750 3.46100 -0.53250 t +3.46100 -0.53250 3.46850 -0.52500 t +3.46850 -0.52500 3.49100 -0.52500 t +3.53150 -0.55500 3.53900 -0.54750 t +3.51650 -0.55500 3.53150 -0.55500 t +3.50900 -0.54750 3.51650 -0.55500 t +3.50900 -0.54750 3.50900 -0.53250 t +3.50900 -0.53250 3.51650 -0.52500 t +3.53900 -0.55500 3.53900 -0.53250 t +3.53900 -0.53250 3.54650 -0.52500 t +3.51650 -0.52500 3.53150 -0.52500 t +3.53150 -0.52500 3.53900 -0.53250 t +3.57200 -0.58500 3.57200 -0.53250 t +3.57200 -0.53250 3.57950 -0.52500 t +3.56450 -0.56250 3.57950 -0.56250 t +3.59450 -0.57000 3.59450 -0.56250 t +3.59450 -0.54750 3.59450 -0.52500 t +3.60950 -0.54750 3.60950 -0.53250 t +3.60950 -0.54750 3.61700 -0.55500 t +3.61700 -0.55500 3.63200 -0.55500 t +3.63200 -0.55500 3.63950 -0.54750 t +3.63950 -0.54750 3.63950 -0.53250 t +3.63200 -0.52500 3.63950 -0.53250 t +3.61700 -0.52500 3.63200 -0.52500 t +3.60950 -0.53250 3.61700 -0.52500 t +3.66500 -0.54750 3.66500 -0.52500 t +3.66500 -0.54750 3.67250 -0.55500 t +3.67250 -0.55500 3.68000 -0.55500 t +3.68000 -0.55500 3.68750 -0.54750 t +3.68750 -0.54750 3.68750 -0.52500 t +3.65750 -0.55500 3.66500 -0.54750 t +3.74000 -0.58500 3.74000 -0.52500 t +3.76250 -0.58500 3.77000 -0.57750 t +3.77000 -0.57750 3.77000 -0.53250 t +3.76250 -0.52500 3.77000 -0.53250 t +3.73250 -0.52500 3.76250 -0.52500 t +3.73250 -0.58500 3.76250 -0.58500 t +3.79550 -0.54750 3.79550 -0.52500 t +3.79550 -0.54750 3.80300 -0.55500 t +3.80300 -0.55500 3.81800 -0.55500 t +3.78800 -0.55500 3.79550 -0.54750 t +3.85850 -0.55500 3.86600 -0.54750 t +3.84350 -0.55500 3.85850 -0.55500 t +3.83600 -0.54750 3.84350 -0.55500 t +3.83600 -0.54750 3.83600 -0.53250 t +3.83600 -0.53250 3.84350 -0.52500 t +3.86600 -0.55500 3.86600 -0.53250 t +3.86600 -0.53250 3.87350 -0.52500 t +3.84350 -0.52500 3.85850 -0.52500 t +3.85850 -0.52500 3.86600 -0.53250 t +3.89150 -0.55500 3.89150 -0.53250 t +3.89150 -0.53250 3.89900 -0.52500 t +3.89900 -0.52500 3.90650 -0.52500 t +3.90650 -0.52500 3.91400 -0.53250 t +3.91400 -0.55500 3.91400 -0.53250 t +3.91400 -0.53250 3.92150 -0.52500 t +3.92150 -0.52500 3.92900 -0.52500 t +3.92900 -0.52500 3.93650 -0.53250 t +3.93650 -0.55500 3.93650 -0.53250 t +3.95450 -0.57000 3.95450 -0.56250 t +3.95450 -0.54750 3.95450 -0.52500 t +3.97700 -0.54750 3.97700 -0.52500 t +3.97700 -0.54750 3.98450 -0.55500 t +3.98450 -0.55500 3.99200 -0.55500 t +3.99200 -0.55500 3.99950 -0.54750 t +3.99950 -0.54750 3.99950 -0.52500 t +3.96950 -0.55500 3.97700 -0.54750 t +4.04000 -0.55500 4.04750 -0.54750 t +4.02500 -0.55500 4.04000 -0.55500 t +4.01750 -0.54750 4.02500 -0.55500 t +4.01750 -0.54750 4.01750 -0.53250 t +4.01750 -0.53250 4.02500 -0.52500 t +4.02500 -0.52500 4.04000 -0.52500 t +4.04000 -0.52500 4.04750 -0.53250 t +4.01750 -0.51000 4.02500 -0.50250 t +4.02500 -0.50250 4.04000 -0.50250 t +4.04000 -0.50250 4.04750 -0.51000 t +4.04750 -0.55500 4.04750 -0.51000 t +showpage +%%Trailer +%%Pages: 15 +%%EOF diff --git a/tests/inputs/buried.pcb b/tests/inputs/buried.pcb new file mode 100644 index 0000000..6707839 --- /dev/null +++ b/tests/inputs/buried.pcb @@ -0,0 +1,836 @@ +# release: pcb 1.99z + +# To read pcb files, the pcb version (or the git source date) must be >= the file version +FileVersion[20160729] + +PCB["Basic Buried Vias Test" 2000.00mil 1000.00mil] + +Grid[100.00mil 0.0000 0.0000 1] +PolyArea[200000000.000000] +Thermal[0.500000] +DRC[10.00mil 10.00mil 10.00mil 10.00mil 15.00mil 10.00mil] +Flags("nameonpcb,uniquename,clearnew,snappin") +Groups("1,c:8,s:2:3:4:5:6:7") +Styles["Signal,10.00mil,36.00mil,20.00mil,10.00mil:Power,25.00mil,60.00mil,35.00mil,10.00mil:Fat,40.00mil,60.00mil,35.00mil,10.00mil:Skinny,6.00mil,24.02mil,11.81mil,6.00mil"] + +Symbol[' ' 18.00mil] +( +) +Symbol['!' 12.00mil] +( + SymbolLine[0.0000 45.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 0.0000 35.00mil 8.00mil] +) +Symbol['"' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 20.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 10.00mil 20.00mil 8.00mil] +) +Symbol['#' 12.00mil] +( + SymbolLine[0.0000 35.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 20.00mil 25.00mil 8.00mil] + SymbolLine[15.00mil 20.00mil 15.00mil 40.00mil 8.00mil] + SymbolLine[5.00mil 20.00mil 5.00mil 40.00mil 8.00mil] +) +Symbol['$' 12.00mil] +( + SymbolLine[15.00mil 15.00mil 20.00mil 20.00mil 8.00mil] + SymbolLine[5.00mil 15.00mil 15.00mil 15.00mil 8.00mil] + SymbolLine[0.0000 20.00mil 5.00mil 15.00mil 8.00mil] + SymbolLine[0.0000 20.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[15.00mil 45.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[5.00mil 45.00mil 15.00mil 45.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 5.00mil 45.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['%' 12.00mil] +( + SymbolLine[0.0000 15.00mil 0.0000 20.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 10.00mil 10.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 15.00mil 15.00mil 8.00mil] + SymbolLine[15.00mil 15.00mil 15.00mil 20.00mil 8.00mil] + SymbolLine[10.00mil 25.00mil 15.00mil 20.00mil 8.00mil] + SymbolLine[5.00mil 25.00mil 10.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 20.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 40.00mil 10.00mil 8.00mil] + SymbolLine[35.00mil 50.00mil 40.00mil 45.00mil 8.00mil] + SymbolLine[40.00mil 40.00mil 40.00mil 45.00mil 8.00mil] + SymbolLine[35.00mil 35.00mil 40.00mil 40.00mil 8.00mil] + SymbolLine[30.00mil 35.00mil 35.00mil 35.00mil 8.00mil] + SymbolLine[25.00mil 40.00mil 30.00mil 35.00mil 8.00mil] + SymbolLine[25.00mil 40.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[25.00mil 45.00mil 30.00mil 50.00mil 8.00mil] + SymbolLine[30.00mil 50.00mil 35.00mil 50.00mil 8.00mil] +) +Symbol['&' 12.00mil] +( + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 15.00mil 20.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 10.00mil 10.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 15.00mil 15.00mil 8.00mil] + SymbolLine[15.00mil 15.00mil 15.00mil 20.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] +) +Symbol[''' 12.00mil] +( + SymbolLine[0.0000 20.00mil 10.00mil 10.00mil 8.00mil] +) +Symbol['(' 12.00mil] +( + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] +) +Symbol[')' 12.00mil] +( + SymbolLine[0.0000 10.00mil 5.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 15.00mil 5.00mil 45.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 5.00mil 45.00mil 8.00mil] +) +Symbol['*' 12.00mil] +( + SymbolLine[0.0000 20.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 20.00mil 20.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 20.00mil 10.00mil 40.00mil 8.00mil] +) +Symbol['+' 12.00mil] +( + SymbolLine[0.0000 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 20.00mil 10.00mil 40.00mil 8.00mil] +) +Symbol[',' 12.00mil] +( + SymbolLine[0.0000 60.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['-' 12.00mil] +( + SymbolLine[0.0000 30.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol['.' 12.00mil] +( + SymbolLine[0.0000 50.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['/' 12.00mil] +( + SymbolLine[0.0000 45.00mil 30.00mil 15.00mil 8.00mil] +) +Symbol['0' 12.00mil] +( + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 20.00mil 20.00mil 8.00mil] +) +Symbol['1' 12.00mil] +( + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 20.00mil 10.00mil 10.00mil 8.00mil] +) +Symbol['2' 12.00mil] +( + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 25.00mil 50.00mil 8.00mil] +) +Symbol['3' 12.00mil] +( + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol['4' 12.00mil] +( + SymbolLine[0.0000 30.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 25.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['5' 12.00mil] +( + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 0.0000 30.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[5.00mil 25.00mil 15.00mil 25.00mil 8.00mil] + SymbolLine[15.00mil 25.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['6' 12.00mil] +( + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['7' 12.00mil] +( + SymbolLine[0.0000 50.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[25.00mil 10.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 25.00mil 10.00mil 8.00mil] +) +Symbol['8' 12.00mil] +( + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 25.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 25.00mil 8.00mil] +) +Symbol['9' 12.00mil] +( + SymbolLine[0.0000 50.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol[':' 12.00mil] +( + SymbolLine[0.0000 25.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 35.00mil 8.00mil] +) +Symbol[';' 12.00mil] +( + SymbolLine[0.0000 50.00mil 10.00mil 40.00mil 8.00mil] + SymbolLine[10.00mil 25.00mil 10.00mil 30.00mil 8.00mil] +) +Symbol['<' 12.00mil] +( + SymbolLine[0.0000 30.00mil 10.00mil 20.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 10.00mil 40.00mil 8.00mil] +) +Symbol['=' 12.00mil] +( + SymbolLine[0.0000 25.00mil 20.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 20.00mil 35.00mil 8.00mil] +) +Symbol['>' 12.00mil] +( + SymbolLine[0.0000 20.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 10.00mil 30.00mil 8.00mil] +) +Symbol['?' 12.00mil] +( + SymbolLine[10.00mil 30.00mil 10.00mil 35.00mil 8.00mil] + SymbolLine[10.00mil 45.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 20.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 20.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 20.00mil 20.00mil 8.00mil] +) +Symbol['@' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 40.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 40.00mil 50.00mil 8.00mil] + SymbolLine[50.00mil 35.00mil 50.00mil 10.00mil 8.00mil] + SymbolLine[50.00mil 10.00mil 40.00mil 0.0000 8.00mil] + SymbolLine[40.00mil 0.0000 10.00mil 0.0000 8.00mil] + SymbolLine[10.00mil 0.0000 0.0000 10.00mil 8.00mil] + SymbolLine[15.00mil 20.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 30.00mil 35.00mil 8.00mil] + SymbolLine[30.00mil 35.00mil 35.00mil 30.00mil 8.00mil] + SymbolLine[35.00mil 30.00mil 40.00mil 35.00mil 8.00mil] + SymbolLine[35.00mil 30.00mil 35.00mil 15.00mil 8.00mil] + SymbolLine[35.00mil 20.00mil 30.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 30.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 15.00mil 20.00mil 8.00mil] + SymbolLine[40.00mil 35.00mil 50.00mil 35.00mil 8.00mil] +) +Symbol['A' 12.00mil] +( + SymbolLine[0.0000 15.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 25.00mil 30.00mil 8.00mil] +) +Symbol['B' 12.00mil] +( + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[25.00mil 35.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 25.00mil 8.00mil] +) +Symbol['C' 12.00mil] +( + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 20.00mil 10.00mil 8.00mil] +) +Symbol['D' 12.00mil] +( + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] +) +Symbol['E' 12.00mil] +( + SymbolLine[0.0000 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] +) +Symbol['F' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 15.00mil 30.00mil 8.00mil] +) +Symbol['G' 12.00mil] +( + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[25.00mil 35.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 35.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol['H' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[25.00mil 10.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 25.00mil 30.00mil 8.00mil] +) +Symbol['I' 12.00mil] +( + SymbolLine[0.0000 10.00mil 10.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['J' 12.00mil] +( + SymbolLine[0.0000 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 15.00mil 45.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 15.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['K' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['L' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['M' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 15.00mil 25.00mil 8.00mil] + SymbolLine[15.00mil 25.00mil 30.00mil 10.00mil 8.00mil] + SymbolLine[30.00mil 10.00mil 30.00mil 50.00mil 8.00mil] +) +Symbol['N' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 0.0000 15.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 25.00mil 40.00mil 8.00mil] + SymbolLine[25.00mil 10.00mil 25.00mil 50.00mil 8.00mil] +) +Symbol['O' 12.00mil] +( + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['P' 12.00mil] +( + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol['Q' 12.00mil] +( + SymbolLine[0.0000 15.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[15.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 15.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 40.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['R' 12.00mil] +( + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 15.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 25.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 25.00mil 50.00mil 8.00mil] +) +Symbol['S' 12.00mil] +( + SymbolLine[20.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 35.00mil 8.00mil] + SymbolLine[25.00mil 35.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['T' 12.00mil] +( + SymbolLine[0.0000 10.00mil 20.00mil 10.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['U' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['V' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 40.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 20.00mil 40.00mil 8.00mil] +) +Symbol['W' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 15.00mil 35.00mil 8.00mil] + SymbolLine[15.00mil 35.00mil 30.00mil 50.00mil 8.00mil] + SymbolLine[30.00mil 10.00mil 30.00mil 50.00mil 8.00mil] +) +Symbol['X' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 15.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 25.00mil 40.00mil 8.00mil] + SymbolLine[25.00mil 40.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[25.00mil 10.00mil 25.00mil 15.00mil 8.00mil] +) +Symbol['Y' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 15.00mil 8.00mil] + SymbolLine[0.0000 15.00mil 10.00mil 25.00mil 8.00mil] + SymbolLine[10.00mil 25.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[20.00mil 10.00mil 20.00mil 15.00mil 8.00mil] + SymbolLine[10.00mil 25.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['Z' 12.00mil] +( + SymbolLine[0.0000 10.00mil 25.00mil 10.00mil 8.00mil] + SymbolLine[25.00mil 10.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 25.00mil 15.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 25.00mil 50.00mil 8.00mil] +) +Symbol['[' 12.00mil] +( + SymbolLine[0.0000 10.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['\' 12.00mil] +( + SymbolLine[0.0000 15.00mil 30.00mil 45.00mil 8.00mil] +) +Symbol[']' 12.00mil] +( + SymbolLine[0.0000 10.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['^' 12.00mil] +( + SymbolLine[0.0000 15.00mil 5.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 10.00mil 10.00mil 15.00mil 8.00mil] +) +Symbol['_' 12.00mil] +( + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['a' 12.00mil] +( + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 45.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['b' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] +) +Symbol['c' 12.00mil] +( + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['d' 12.00mil] +( + SymbolLine[20.00mil 10.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] +) +Symbol['e' 12.00mil] +( + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[20.00mil 40.00mil 20.00mil 35.00mil 8.00mil] +) +Symbol['f' 10.00mil] +( + SymbolLine[5.00mil 15.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 15.00mil 10.00mil 10.00mil 8.00mil] + SymbolLine[10.00mil 10.00mil 15.00mil 10.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 10.00mil 30.00mil 8.00mil] +) +Symbol['g' 12.00mil] +( + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[0.0000 60.00mil 5.00mil 65.00mil 8.00mil] + SymbolLine[5.00mil 65.00mil 15.00mil 65.00mil 8.00mil] + SymbolLine[15.00mil 65.00mil 20.00mil 60.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 60.00mil 8.00mil] +) +Symbol['h' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['i' 10.00mil] +( + SymbolLine[0.0000 20.00mil 0.0000 25.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 50.00mil 8.00mil] +) +Symbol['j' 10.00mil] +( + SymbolLine[5.00mil 20.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 5.00mil 60.00mil 8.00mil] + SymbolLine[0.0000 65.00mil 5.00mil 60.00mil 8.00mil] +) +Symbol['k' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 10.00mil 25.00mil 8.00mil] +) +Symbol['l' 10.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['m' 12.00mil] +( + SymbolLine[5.00mil 35.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 25.00mil 30.00mil 8.00mil] + SymbolLine[25.00mil 30.00mil 30.00mil 30.00mil 8.00mil] + SymbolLine[30.00mil 30.00mil 35.00mil 35.00mil 8.00mil] + SymbolLine[35.00mil 35.00mil 35.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 35.00mil 8.00mil] +) +Symbol['n' 12.00mil] +( + SymbolLine[5.00mil 35.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 35.00mil 8.00mil] +) +Symbol['o' 12.00mil] +( + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['p' 12.00mil] +( + SymbolLine[5.00mil 35.00mil 5.00mil 65.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 35.00mil 8.00mil] + SymbolLine[25.00mil 35.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 45.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['q' 12.00mil] +( + SymbolLine[20.00mil 35.00mil 20.00mil 65.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 15.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['r' 12.00mil] +( + SymbolLine[5.00mil 35.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 35.00mil 8.00mil] +) +Symbol['s' 12.00mil] +( + SymbolLine[5.00mil 50.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 40.00mil 25.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 40.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 40.00mil 8.00mil] + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 25.00mil 35.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] +) +Symbol['t' 10.00mil] +( + SymbolLine[5.00mil 10.00mil 5.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 45.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 25.00mil 10.00mil 25.00mil 8.00mil] +) +Symbol['u' 12.00mil] +( + SymbolLine[0.0000 30.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['v' 12.00mil] +( + SymbolLine[0.0000 30.00mil 0.0000 40.00mil 8.00mil] + SymbolLine[0.0000 40.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 20.00mil 40.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 40.00mil 8.00mil] +) +Symbol['w' 12.00mil] +( + SymbolLine[0.0000 30.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 10.00mil 50.00mil 8.00mil] + SymbolLine[10.00mil 50.00mil 15.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 30.00mil 15.00mil 45.00mil 8.00mil] + SymbolLine[15.00mil 45.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 50.00mil 25.00mil 50.00mil 8.00mil] + SymbolLine[25.00mil 50.00mil 30.00mil 45.00mil 8.00mil] + SymbolLine[30.00mil 30.00mil 30.00mil 45.00mil 8.00mil] +) +Symbol['x' 12.00mil] +( + SymbolLine[0.0000 30.00mil 20.00mil 50.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 30.00mil 8.00mil] +) +Symbol['y' 12.00mil] +( + SymbolLine[0.0000 30.00mil 0.0000 45.00mil 8.00mil] + SymbolLine[0.0000 45.00mil 5.00mil 50.00mil 8.00mil] + SymbolLine[20.00mil 30.00mil 20.00mil 60.00mil 8.00mil] + SymbolLine[15.00mil 65.00mil 20.00mil 60.00mil 8.00mil] + SymbolLine[5.00mil 65.00mil 15.00mil 65.00mil 8.00mil] + SymbolLine[0.0000 60.00mil 5.00mil 65.00mil 8.00mil] + SymbolLine[5.00mil 50.00mil 15.00mil 50.00mil 8.00mil] + SymbolLine[15.00mil 50.00mil 20.00mil 45.00mil 8.00mil] +) +Symbol['z' 12.00mil] +( + SymbolLine[0.0000 30.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 30.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 20.00mil 50.00mil 8.00mil] +) +Symbol['{' 12.00mil] +( + SymbolLine[5.00mil 15.00mil 10.00mil 10.00mil 8.00mil] + SymbolLine[5.00mil 15.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[0.0000 30.00mil 5.00mil 35.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 5.00mil 45.00mil 8.00mil] + SymbolLine[5.00mil 45.00mil 10.00mil 50.00mil 8.00mil] +) +Symbol['|' 12.00mil] +( + SymbolLine[0.0000 10.00mil 0.0000 50.00mil 8.00mil] +) +Symbol['}' 12.00mil] +( + SymbolLine[0.0000 10.00mil 5.00mil 15.00mil 8.00mil] + SymbolLine[5.00mil 15.00mil 5.00mil 25.00mil 8.00mil] + SymbolLine[5.00mil 25.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 35.00mil 5.00mil 45.00mil 8.00mil] + SymbolLine[0.0000 50.00mil 5.00mil 45.00mil 8.00mil] +) +Symbol['~' 12.00mil] +( + SymbolLine[0.0000 35.00mil 5.00mil 30.00mil 8.00mil] + SymbolLine[5.00mil 30.00mil 10.00mil 30.00mil 8.00mil] + SymbolLine[10.00mil 30.00mil 15.00mil 35.00mil 8.00mil] + SymbolLine[15.00mil 35.00mil 20.00mil 35.00mil 8.00mil] + SymbolLine[20.00mil 35.00mil 25.00mil 30.00mil 8.00mil] +) +Attribute("PCB::grid::unit" "mil") +Via[900.00mil 500.00mil 60.00mil 20.00mil 0.0000 35.00mil "" ""] +Via[900.00mil 800.00mil 36.00mil 20.00mil 0.0000 20.00mil 1 6 "" ""] +Via[900.00mil 200.00mil 36.00mil 20.00mil 0.0000 20.00mil 1 6 "" ""] +Layer(1 "component" "copper") +( + Line[100.00mil 500.00mil 900.00mil 500.00mil 40.00mil 20.00mil "clearline"] +) +Layer(2 "GND" "copper") +( + Line[500.00mil 200.00mil 900.00mil 200.00mil 10.00mil 20.00mil "clearline"] + Line[900.00mil 800.00mil 1300.00mil 800.00mil 10.00mil 20.00mil "clearline"] +) +Layer(3 "power" "copper") +( +) +Layer(4 "signal1" "copper") +( + Line[900.00mil 100.00mil 900.00mil 900.00mil 10.00mil 20.00mil "clearline"] +) +Layer(5 "signal2" "copper") +( +) +Layer(6 "signal3" "copper") +( +) +Layer(7 "signal4" "copper") +( + Line[900.00mil 200.00mil 1300.00mil 200.00mil 10.00mil 20.00mil "clearline"] + Line[900.00mil 800.00mil 500.00mil 800.00mil 10.00mil 20.00mil "clearline"] +) +Layer(8 "solder" "copper") +( + Line[1700.00mil 500.00mil 900.00mil 500.00mil 40.00mil 20.00mil "clearline"] +) +Layer(9 "bottom silk" "silk") +( +) +Layer(10 "top silk" "silk") +( +) diff --git a/tests/tests.list b/tests/tests.list index 76b3b14..dd73bdb 100644 --- a/tests/tests.list +++ b/tests/tests.list @@ -159,6 +159,7 @@ hid_gcode11 | gcode_oneline.pcb | gcode | --measurement-unit inch | | gcode:gcod hid_gerber1 | gerber_oneline.pcb | gerber | | | gbx:gerber_oneline.bottom.gbr gbx:gerber_oneline.top.gbr cnc:gerber_oneline.plated-drill.cnc hid_gerber2 | gerber_oneline.pcb | gerber | --gerberfile out | | gbx:out.bottom.gbr gbx:out.top.gbr cnc:out.plated-drill.cnc hid_gerber3 | gerber_arcs.pcb | gerber | --gerberfile arcs | | gbx:arcs.bottom.gbr gbx:arcs.top.gbr gbx:arcs.group1.gbr gbx:arcs.group4.gbr cnc:arcs.plated-drill.cnc +hid_gerber4 | buried.pcb | gerber | --gerberfile buried | | gbx:buried.bottom.gbr gbx:buried.top.gbr gbx:buried.group2.gbr gbx:buried.group4.gbr gbx:buried.group7.gbr cnc:buried.plated-drill.cnc cnc:buried.plated-drill_03-08.cnc # ###################################################################### # --------------------------------------------- @@ -170,6 +171,7 @@ hid_gerber3 | gerber_arcs.pcb | gerber | --gerberfile arcs | | gbx:arcs.bottom.g # per page. # hid_ps1 | circles.pcb | ps | --psfile circles.ps | | ps:circles.ps +hid_ps2 | buried.pcb | ps | --psfile buried.ps | | ps:buried.ps # ###################################################################### # --------------------------------------------- -- 1.8.3.1