From 57c71300e2029c40c7e6dfde419016a5b1ddd0b2 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 08:45:15 +0200 Subject: [PATCH 01/12] Whitespace cleanups --- pronterface.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/pronterface.py b/pronterface.py index 2463fa1..2cd6793 100755 --- a/pronterface.py +++ b/pronterface.py @@ -1384,6 +1384,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): wx.CallAfter(self.status.SetStatusText,_("Not connected to printer.")) except: pass #if window has been closed + def capture(self, func, *args, **kwargs): stdout=sys.stdout cout=None @@ -1460,8 +1461,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole): except: pass - - def filesloaded(self): dlg=wx.SingleChoiceDialog(self, _("Select the file to print"), _("Pick SD file"), self.sdfiles) if(dlg.ShowModal()==wx.ID_OK): @@ -1469,9 +1468,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): if len(target): self.recvlisteners+=[self.waitforsdresponse] self.p.send_now("M23 "+target.lower()) - #print self.sdfiles - pass def getfiles(self): if not self.p.online: @@ -1533,7 +1530,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.skeining=0 self.skeinp=None - def skein(self,filename): wx.CallAfter(self.loadbtn.SetLabel,_("Cancel")) print _("Slicing ") + filename @@ -1683,7 +1679,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.p.resume() wx.CallAfter(self.pausebtn.SetLabel, _("Pause")) - def sdprintfile(self,event): self.on_startprint() threading.Thread(target=self.getfiles).start() @@ -1719,7 +1714,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.set("baudrate",str(baud)) threading.Thread(target=self.statuschecker).start() - def disconnect(self,event): print _("Disconnected.") self.p.disconnect() @@ -1747,7 +1741,6 @@ class PronterWindow(wx.Frame,pronsole.pronsole): if self.sdprinting: self.p.send_now("M26 S0") - def reset(self,event): print _("Reset.") dlg=wx.MessageDialog(self, _("Are you sure you want to reset the printer?"), _("Reset?"), wx.YES|wx.NO) @@ -1835,8 +1828,6 @@ class macroed(wx.Dialog): if position == -1 : # ShowMessage(self,-1, "Not found!") titletext = wx.TextCtrl(self.panel,-1,"Not Found!") - - else: # self.title.SetValue("Position : "+str(position)) @@ -1947,6 +1938,7 @@ class ButtonEdit(wx.Dialog): topsizer.Add( (0,0),1) topsizer.Add(self.CreateStdDialogButtonSizer(wx.OK|wx.CANCEL),0,wx.ALIGN_CENTER) self.SetSizer(topsizer) + def macrob_enabler(self,e): macro = self.command.GetValue() valid = False @@ -1971,6 +1963,7 @@ class ButtonEdit(wx.Dialog): else: valid = True self.macrob.Enable(valid) + def macrob_handler(self,e): macro = self.command.GetValue() macro = self.pronterface.edit_macro(macro) @@ -1979,6 +1972,7 @@ class ButtonEdit(wx.Dialog): self.name.SetValue(macro) class TempGauge(wx.Panel): + def __init__(self,parent,size=(200,22),title="",maxval=240,gaugeColour=None): wx.Panel.__init__(self,parent,-1,size=size) self.Bind(wx.EVT_PAINT,self.paint) @@ -1990,17 +1984,21 @@ class TempGauge(wx.Panel): self.value=0 self.setpoint=0 self.recalc() + def recalc(self): mmax=max(int(self.setpoint*1.05),self.max) self.scale=float(self.width-2)/float(mmax) self.ypt=max(16,int(self.scale*max(self.setpoint,self.max/6))) + def SetValue(self,value): self.value=value wx.CallAfter(self.Refresh) + def SetTarget(self,value): self.setpoint=value self.recalc() wx.CallAfter(self.Refresh) + def interpolatedColour(self,val,vmin,vmid,vmax,cmin,cmid,cmax): if val < vmin: return cmin if val > vmax: return cmax @@ -2012,6 +2010,7 @@ class TempGauge(wx.Panel): rgb=lo.Red()+(hi.Red()-lo.Red())*vv,lo.Green()+(hi.Green()-lo.Green())*vv,lo.Blue()+(hi.Blue()-lo.Blue())*vv rgb=map(lambda x:x*0.8,rgb) return wx.Colour(*map(int,rgb)) + def paint(self,ev): x0,y0,x1,y1,xE,yE = 1,1,self.ypt+1,1,self.width+1-2,20 dc=wx.PaintDC(self) From 7c48b6c446086c30457f8d39f4550d7ade41dd37 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 09:00:28 +0200 Subject: [PATCH 02/12] Cleanup temp report parsing Factorize into a single function and support Marlin-style reports --- pronterface.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pronterface.py b/pronterface.py index 2cd6793..4a2d09a 100755 --- a/pronterface.py +++ b/pronterface.py @@ -67,6 +67,9 @@ except: def dosify(name): return os.path.split(name)[1].split(".")[0][:8]+".g" +def parse_temperatures_report(report, key): + return float(filter(lambda x: x.startswith(key), report.split())[0].split(":")[1].split("/")[0]) + class Tee(object): def __init__(self, target): self.stdout = sys.stdout @@ -1344,10 +1347,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): #string+=(self.tempreport.replace("\r","").replace("T:",_("Hotend") + ":").replace("B:",_("Bed") + ":").replace("\n","").replace("ok ",""))+" " wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) try: - #self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - wx.CallAfter(self.graph.SetExtruder0Temperature,float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - #self.bedtgauge.SetValue(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) - wx.CallAfter(self.graph.SetBedTemperature,float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) + #self.hottgauge.SetValue(parse_temperature_report(self.tempreport, "T:")) + wx.CallAfter(self.graph.SetExtruder0Temperature, parse_temperature_report(self.tempreport, "T:")) + #self.bedtgauge.SetValue(parse_temperature_report(self.tempreport, "B:")) + wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "B:")) except: pass fractioncomplete = 0.0 @@ -1409,9 +1412,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.tempreport=l wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) try: - #self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - wx.CallAfter(self.graph.SetExtruder0Temperature,float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) - wx.CallAfter(self.graph.SetBedTemperature,float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) + #self.hottgauge.SetValue(parse_temperature_report(self.tempreport, "T:")) + wx.CallAfter(self.graph.SetExtruder0Temperature, parse_temperature_report(self.tempreport, "T:")) + wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "T:")) except: pass tstring=l.rstrip() From f63752d7fa4cd781050f62ef9ef4fae3b2fb4f5c Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 09:02:48 +0200 Subject: [PATCH 03/12] Remove misleading gcode file --- 20cube_export.gcode | 3075 ------------------------------------------- 1 file changed, 3075 deletions(-) delete mode 100644 20cube_export.gcode diff --git a/20cube_export.gcode b/20cube_export.gcode deleted file mode 100644 index a3cb5f4..0000000 --- a/20cube_export.gcode +++ /dev/null @@ -1,3075 +0,0 @@ -G90 -G21 -G92 E0 -; S70.0 -; S45.0 -G1 X86.7 Y113.3 Z0.2 F18300.0 -G1 F900.0 -G1 E1.0 -G1 F18300.0 -G92 E0 -G1 X111.167 Y113.3 Z0.2 F2700.0 E0.8012 -G1 X113.3 Y111.167 Z0.2 F2700.0 E0.9 -G1 X113.3 Y86.7 Z0.2 F2700.0 E1.7011 -G1 X86.7 Y86.7 Z0.2 F2700.0 E2.5722 -G1 X86.7 Y113.3 Z0.2 F2700.0 E3.4432 -G1 F900.0 -G1 E2.4432 -G1 F2700.0 -; S70.0 -; S45.0 -G1 X90.643 Y90.3 Z0.2 F19800.0 -G1 F900.0 -G1 E3.4432 -G1 F19800.0 -G92 E0 -G1 X109.7 Y90.3 Z0.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z0.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z0.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z0.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z0.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z0.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z0.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z0.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z0.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z0.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z0.2 F4200.0 E0.0013 -G1 X108.739 Y92.015 Z0.2 F4200.0 E0.0251 -G1 X107.985 Y91.261 Z0.2 F4200.0 E0.06 -G1 X107.258 Y91.261 Z0.2 F4200.0 E0.0838 -G1 X108.739 Y92.742 Z0.2 F4200.0 E0.1524 -G1 X108.739 Y93.469 Z0.2 F4200.0 E0.1762 -G1 X106.531 Y91.261 Z0.2 F4200.0 E0.2785 -G1 X105.803 Y91.261 Z0.2 F4200.0 E0.3023 -G1 X108.739 Y94.197 Z0.2 F4200.0 E0.4382 -G1 X108.739 Y94.924 Z0.2 F4200.0 E0.462 -G1 X105.076 Y91.261 Z0.2 F4200.0 E0.6317 -G1 X104.349 Y91.261 Z0.2 F4200.0 E0.6555 -G1 X108.739 Y95.651 Z0.2 F4200.0 E0.8588 -G1 X108.739 Y96.378 Z0.2 F4200.0 E0.8826 -G1 X103.622 Y91.261 Z0.2 F4200.0 E1.1195 -G1 X102.895 Y91.261 Z0.2 F4200.0 E1.1433 -G1 X108.739 Y97.105 Z0.2 F4200.0 E1.414 -G1 X108.739 Y97.832 Z0.2 F4200.0 E1.4378 -G1 X102.168 Y91.261 Z0.2 F4200.0 E1.7421 -G1 X101.441 Y91.261 Z0.2 F4200.0 E1.7659 -G1 X108.739 Y98.559 Z0.2 F4200.0 E2.1039 -G1 X108.739 Y99.286 Z0.2 F4200.0 E2.1277 -G1 X100.714 Y91.261 Z0.2 F4200.0 E2.4994 -G1 X99.987 Y91.261 Z0.2 F4200.0 E2.5232 -G1 X108.739 Y100.013 Z0.2 F4200.0 E2.9285 -G1 X108.739 Y100.741 Z0.2 F4200.0 E2.9523 -G1 X99.259 Y91.261 Z0.2 F4200.0 E3.3913 -G1 X98.532 Y91.261 Z0.2 F4200.0 E3.4151 -G1 X108.739 Y101.468 Z0.2 F4200.0 E3.8878 -G1 X108.739 Y102.195 Z0.2 F4200.0 E3.9116 -G1 X97.805 Y91.261 Z0.2 F4200.0 E4.4179 -G1 X97.078 Y91.261 Z0.2 F4200.0 E4.4417 -G1 X108.739 Y102.922 Z0.2 F4200.0 E4.9818 -G1 X108.739 Y103.649 Z0.2 F4200.0 E5.0056 -G1 X96.351 Y91.261 Z0.2 F4200.0 E5.5793 -G1 X95.624 Y91.261 Z0.2 F4200.0 E5.6031 -G1 X108.739 Y104.376 Z0.2 F4200.0 E6.2104 -G1 X108.739 Y105.103 Z0.2 F4200.0 E6.2342 -G1 X94.897 Y91.261 Z0.2 F4200.0 E6.8753 -G1 X94.169 Y91.261 Z0.2 F4200.0 E6.8991 -G1 X108.739 Y105.831 Z0.2 F4200.0 E7.5738 -G1 X108.739 Y106.558 Z0.2 F4200.0 E7.5976 -G1 X93.442 Y91.261 Z0.2 F4200.0 E8.306 -G1 X92.715 Y91.261 Z0.2 F4200.0 E8.3298 -G1 X108.739 Y107.285 Z0.2 F4200.0 E9.0719 -G1 X108.739 Y108.012 Z0.2 F4200.0 E9.0957 -G1 X91.988 Y91.261 Z0.2 F4200.0 E9.8714 -G1 X91.261 Y91.261 Z0.2 F4200.0 E9.8952 -G1 X108.739 Y108.739 Z0.2 F4200.0 E10.7046 -G1 X108.012 Y108.739 Z0.2 F4200.0 E10.7284 -G1 X91.261 Y91.988 Z0.2 F4200.0 E11.5041 -G1 X91.261 Y92.715 Z0.2 F4200.0 E11.528 -G1 X107.285 Y108.739 Z0.2 F4200.0 E12.27 -G1 X106.558 Y108.739 Z0.2 F4200.0 E12.2938 -G1 X91.261 Y93.442 Z0.2 F4200.0 E13.0022 -G1 X91.261 Y94.169 Z0.2 F4200.0 E13.026 -G1 X105.831 Y108.739 Z0.2 F4200.0 E13.7007 -G1 X105.103 Y108.739 Z0.2 F4200.0 E13.7245 -G1 X91.261 Y94.897 Z0.2 F4200.0 E14.3656 -G1 X91.261 Y95.624 Z0.2 F4200.0 E14.3894 -G1 X104.376 Y108.739 Z0.2 F4200.0 E14.9967 -G1 X103.649 Y108.739 Z0.2 F4200.0 E15.0205 -G1 X91.261 Y96.351 Z0.2 F4200.0 E15.5942 -G1 X91.261 Y97.078 Z0.2 F4200.0 E15.618 -G1 X102.922 Y108.739 Z0.2 F4200.0 E16.1581 -G1 X102.195 Y108.739 Z0.2 F4200.0 E16.1819 -G1 X91.261 Y97.805 Z0.2 F4200.0 E16.6882 -G1 X91.261 Y98.532 Z0.2 F4200.0 E16.712 -G1 X101.468 Y108.739 Z0.2 F4200.0 E17.1847 -G1 X100.741 Y108.739 Z0.2 F4200.0 E17.2085 -G1 X91.261 Y99.259 Z0.2 F4200.0 E17.6475 -G1 X91.261 Y99.987 Z0.2 F4200.0 E17.6713 -G1 X100.013 Y108.739 Z0.2 F4200.0 E18.0767 -G1 X99.286 Y108.739 Z0.2 F4200.0 E18.1005 -G1 X91.261 Y100.714 Z0.2 F4200.0 E18.4721 -G1 X91.261 Y101.441 Z0.2 F4200.0 E18.4959 -G1 X98.559 Y108.739 Z0.2 F4200.0 E18.8339 -G1 X97.832 Y108.739 Z0.2 F4200.0 E18.8577 -G1 X91.261 Y102.168 Z0.2 F4200.0 E19.162 -G1 X91.261 Y102.895 Z0.2 F4200.0 E19.1858 -G1 X97.105 Y108.739 Z0.2 F4200.0 E19.4565 -G1 X96.378 Y108.739 Z0.2 F4200.0 E19.4803 -G1 X91.261 Y103.622 Z0.2 F4200.0 E19.7172 -G1 X91.261 Y104.349 Z0.2 F4200.0 E19.7411 -G1 X95.651 Y108.739 Z0.2 F4200.0 E19.9443 -G1 X94.924 Y108.739 Z0.2 F4200.0 E19.9682 -G1 X91.261 Y105.076 Z0.2 F4200.0 E20.1378 -G1 X91.261 Y105.803 Z0.2 F4200.0 E20.1616 -G1 X94.197 Y108.739 Z0.2 F4200.0 E20.2975 -G1 X93.469 Y108.739 Z0.2 F4200.0 E20.3213 -G1 X91.261 Y106.531 Z0.2 F4200.0 E20.4236 -G1 X91.261 Y107.258 Z0.2 F4200.0 E20.4474 -G1 X92.742 Y108.739 Z0.2 F4200.0 E20.516 -G1 X92.015 Y108.739 Z0.2 F4200.0 E20.5398 -G1 X91.261 Y107.985 Z0.2 F4200.0 E20.5748 -G1 X91.261 Y108.712 Z0.2 F4200.0 E20.5986 -G1 X91.288 Y108.739 Z0.2 F4200.0 E20.5998 -G1 F900.0 -G1 E19.5998 -G1 F4200.0 -; S45.0 -G1 X86.7 Y113.3 Z0.6 F3402.8568 -G1 F900.0 -G1 E20.5998 -G1 F3402.8568 -G92 E0 -G1 X111.167 Y113.3 Z0.6 F2700.0 E0.8012 -G1 X113.3 Y111.167 Z0.6 F2700.0 E0.9 -G1 X113.3 Y86.7 Z0.6 F2700.0 E1.7011 -G1 X86.7 Y86.7 Z0.6 F2700.0 E2.5722 -G1 X86.7 Y113.3 Z0.6 F2700.0 E3.4432 -G1 F900.0 -G1 E2.4432 -G1 F2700.0 -; S70.0 -; S45.0 -G1 X90.643 Y90.3 Z0.6 F19800.0 -G1 F900.0 -G1 E3.4432 -G1 F19800.0 -G92 E0 -G1 X109.7 Y90.3 Z0.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z0.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z0.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z0.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z0.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z0.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z0.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z0.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z0.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z0.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z0.6 F4200.0 E0.0013 -G1 X107.985 Y108.739 Z0.6 F4200.0 E0.0251 -G1 X108.739 Y107.985 Z0.6 F4200.0 E0.06 -G1 X108.739 Y107.258 Z0.6 F4200.0 E0.0838 -G1 X107.258 Y108.739 Z0.6 F4200.0 E0.1524 -G1 X106.531 Y108.739 Z0.6 F4200.0 E0.1762 -G1 X108.739 Y106.531 Z0.6 F4200.0 E0.2785 -G1 X108.739 Y105.803 Z0.6 F4200.0 E0.3023 -G1 X105.803 Y108.739 Z0.6 F4200.0 E0.4382 -G1 X105.076 Y108.739 Z0.6 F4200.0 E0.462 -G1 X108.739 Y105.076 Z0.6 F4200.0 E0.6317 -G1 X108.739 Y104.349 Z0.6 F4200.0 E0.6555 -G1 X104.349 Y108.739 Z0.6 F4200.0 E0.8588 -G1 X103.622 Y108.739 Z0.6 F4200.0 E0.8826 -G1 X108.739 Y103.622 Z0.6 F4200.0 E1.1195 -G1 X108.739 Y102.895 Z0.6 F4200.0 E1.1433 -G1 X102.895 Y108.739 Z0.6 F4200.0 E1.414 -G1 X102.168 Y108.739 Z0.6 F4200.0 E1.4378 -G1 X108.739 Y102.168 Z0.6 F4200.0 E1.7421 -G1 X108.739 Y101.441 Z0.6 F4200.0 E1.7659 -G1 X101.441 Y108.739 Z0.6 F4200.0 E2.1039 -G1 X100.714 Y108.739 Z0.6 F4200.0 E2.1277 -G1 X108.739 Y100.714 Z0.6 F4200.0 E2.4994 -G1 X108.739 Y99.987 Z0.6 F4200.0 E2.5232 -G1 X99.987 Y108.739 Z0.6 F4200.0 E2.9285 -G1 X99.259 Y108.739 Z0.6 F4200.0 E2.9523 -G1 X108.739 Y99.259 Z0.6 F4200.0 E3.3913 -G1 X108.739 Y98.532 Z0.6 F4200.0 E3.4151 -G1 X98.532 Y108.739 Z0.6 F4200.0 E3.8878 -G1 X97.805 Y108.739 Z0.6 F4200.0 E3.9116 -G1 X108.739 Y97.805 Z0.6 F4200.0 E4.4179 -G1 X108.739 Y97.078 Z0.6 F4200.0 E4.4417 -G1 X97.078 Y108.739 Z0.6 F4200.0 E4.9818 -G1 X96.351 Y108.739 Z0.6 F4200.0 E5.0056 -G1 X108.739 Y96.351 Z0.6 F4200.0 E5.5793 -G1 X108.739 Y95.624 Z0.6 F4200.0 E5.6031 -G1 X95.624 Y108.739 Z0.6 F4200.0 E6.2104 -G1 X94.897 Y108.739 Z0.6 F4200.0 E6.2342 -G1 X108.739 Y94.897 Z0.6 F4200.0 E6.8753 -G1 X108.739 Y94.169 Z0.6 F4200.0 E6.8991 -G1 X94.169 Y108.739 Z0.6 F4200.0 E7.5738 -G1 X93.442 Y108.739 Z0.6 F4200.0 E7.5976 -G1 X108.739 Y93.442 Z0.6 F4200.0 E8.306 -G1 X108.739 Y92.715 Z0.6 F4200.0 E8.3298 -G1 X92.715 Y108.739 Z0.6 F4200.0 E9.0719 -G1 X91.988 Y108.739 Z0.6 F4200.0 E9.0957 -G1 X108.739 Y91.988 Z0.6 F4200.0 E9.8714 -G1 X108.739 Y91.261 Z0.6 F4200.0 E9.8952 -G1 X91.261 Y108.739 Z0.6 F4200.0 E10.7046 -G1 X91.261 Y108.012 Z0.6 F4200.0 E10.7284 -G1 X108.012 Y91.261 Z0.6 F4200.0 E11.5041 -G1 X107.285 Y91.261 Z0.6 F4200.0 E11.528 -G1 X91.261 Y107.285 Z0.6 F4200.0 E12.27 -G1 X91.261 Y106.558 Z0.6 F4200.0 E12.2938 -G1 X106.558 Y91.261 Z0.6 F4200.0 E13.0022 -G1 X105.831 Y91.261 Z0.6 F4200.0 E13.026 -G1 X91.261 Y105.831 Z0.6 F4200.0 E13.7007 -G1 X91.261 Y105.103 Z0.6 F4200.0 E13.7245 -G1 X105.103 Y91.261 Z0.6 F4200.0 E14.3656 -G1 X104.376 Y91.261 Z0.6 F4200.0 E14.3894 -G1 X91.261 Y104.376 Z0.6 F4200.0 E14.9967 -G1 X91.261 Y103.649 Z0.6 F4200.0 E15.0205 -G1 X103.649 Y91.261 Z0.6 F4200.0 E15.5942 -G1 X102.922 Y91.261 Z0.6 F4200.0 E15.618 -G1 X91.261 Y102.922 Z0.6 F4200.0 E16.1581 -G1 X91.261 Y102.195 Z0.6 F4200.0 E16.1819 -G1 X102.195 Y91.261 Z0.6 F4200.0 E16.6882 -G1 X101.468 Y91.261 Z0.6 F4200.0 E16.712 -G1 X91.261 Y101.468 Z0.6 F4200.0 E17.1847 -G1 X91.261 Y100.741 Z0.6 F4200.0 E17.2085 -G1 X100.741 Y91.261 Z0.6 F4200.0 E17.6475 -G1 X100.013 Y91.261 Z0.6 F4200.0 E17.6713 -G1 X91.261 Y100.013 Z0.6 F4200.0 E18.0767 -G1 X91.261 Y99.286 Z0.6 F4200.0 E18.1005 -G1 X99.286 Y91.261 Z0.6 F4200.0 E18.4721 -G1 X98.559 Y91.261 Z0.6 F4200.0 E18.4959 -G1 X91.261 Y98.559 Z0.6 F4200.0 E18.8339 -G1 X91.261 Y97.832 Z0.6 F4200.0 E18.8577 -G1 X97.832 Y91.261 Z0.6 F4200.0 E19.162 -G1 X97.105 Y91.261 Z0.6 F4200.0 E19.1858 -G1 X91.261 Y97.105 Z0.6 F4200.0 E19.4565 -G1 X91.261 Y96.378 Z0.6 F4200.0 E19.4803 -G1 X96.378 Y91.261 Z0.6 F4200.0 E19.7172 -G1 X95.651 Y91.261 Z0.6 F4200.0 E19.7411 -G1 X91.261 Y95.651 Z0.6 F4200.0 E19.9443 -G1 X91.261 Y94.924 Z0.6 F4200.0 E19.9682 -G1 X94.924 Y91.261 Z0.6 F4200.0 E20.1378 -G1 X94.197 Y91.261 Z0.6 F4200.0 E20.1616 -G1 X91.261 Y94.197 Z0.6 F4200.0 E20.2975 -G1 X91.261 Y93.469 Z0.6 F4200.0 E20.3213 -G1 X93.469 Y91.261 Z0.6 F4200.0 E20.4236 -G1 X92.742 Y91.261 Z0.6 F4200.0 E20.4474 -G1 X91.261 Y92.742 Z0.6 F4200.0 E20.516 -G1 X91.261 Y92.015 Z0.6 F4200.0 E20.5398 -G1 X92.015 Y91.261 Z0.6 F4200.0 E20.5748 -G1 X91.288 Y91.261 Z0.6 F4200.0 E20.5986 -G1 X91.261 Y91.288 Z0.6 F4200.0 E20.5998 -G1 F900.0 -G1 E19.5998 -G1 F4200.0 -; S45.0 -G1 X86.7 Y113.3 Z1.0 F11803.6295 -G1 F900.0 -G1 E20.5998 -G1 F11803.6295 -G92 E0 -G1 X111.167 Y113.3 Z1.0 F2700.0 E0.8012 -G1 X113.3 Y111.167 Z1.0 F2700.0 E0.9 -G1 X113.3 Y86.7 Z1.0 F2700.0 E1.7011 -G1 X86.7 Y86.7 Z1.0 F2700.0 E2.5722 -G1 X86.7 Y113.3 Z1.0 F2700.0 E3.4432 -G1 F900.0 -G1 E2.4432 -G1 F2700.0 -; S70.0 -; S45.0 -G1 X90.643 Y90.3 Z1.0 F19800.0 -G1 F900.0 -G1 E3.4432 -G1 F19800.0 -G92 E0 -G1 X109.7 Y90.3 Z1.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z1.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z1.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z1.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z1.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z1.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z1.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z1.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z1.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z1.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z1.0 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z1.0 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z1.0 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z1.0 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z1.0 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z1.0 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z1.0 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z1.0 F4200.0 E1.28 -G1 X108.739 Y100.741 Z1.0 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z1.0 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z1.0 F4200.0 E2.565 -G1 X91.261 Y91.261 Z1.0 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z1.0 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z1.0 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z1.0 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z1.0 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z1.0 F4200.0 E4.383 -G1 X91.261 Y99.259 Z1.0 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z1.0 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z1.0 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z1.0 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z1.0 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z1.0 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z1.0 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z1.0 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z1.0 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z1.0 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z1.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z1.4 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z1.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z1.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z1.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z1.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z1.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z1.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z1.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z1.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z1.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z1.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z1.4 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z1.4 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z1.4 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z1.4 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z1.4 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z1.4 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z1.4 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z1.4 F4200.0 E1.28 -G1 X99.259 Y108.739 Z1.4 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z1.4 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z1.4 F4200.0 E2.565 -G1 X108.739 Y91.261 Z1.4 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z1.4 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z1.4 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z1.4 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z1.4 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z1.4 F4200.0 E4.383 -G1 X100.741 Y91.261 Z1.4 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z1.4 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z1.4 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z1.4 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z1.4 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z1.4 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z1.4 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z1.4 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z1.4 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z1.4 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z1.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z1.8 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z1.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z1.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z1.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z1.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z1.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z1.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z1.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z1.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z1.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z1.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z1.8 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z1.8 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z1.8 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z1.8 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z1.8 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z1.8 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z1.8 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z1.8 F4200.0 E1.28 -G1 X108.739 Y100.741 Z1.8 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z1.8 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z1.8 F4200.0 E2.565 -G1 X91.261 Y91.261 Z1.8 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z1.8 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z1.8 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z1.8 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z1.8 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z1.8 F4200.0 E4.383 -G1 X91.261 Y99.259 Z1.8 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z1.8 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z1.8 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z1.8 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z1.8 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z1.8 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z1.8 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z1.8 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z1.8 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z1.8 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z1.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z2.2 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z2.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z2.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z2.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z2.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z2.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z2.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z2.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z2.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z2.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z2.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z2.2 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z2.2 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z2.2 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z2.2 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z2.2 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z2.2 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z2.2 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z2.2 F4200.0 E1.28 -G1 X99.259 Y108.739 Z2.2 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z2.2 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z2.2 F4200.0 E2.565 -G1 X108.739 Y91.261 Z2.2 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z2.2 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z2.2 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z2.2 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z2.2 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z2.2 F4200.0 E4.383 -G1 X100.741 Y91.261 Z2.2 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z2.2 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z2.2 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z2.2 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z2.2 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z2.2 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z2.2 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z2.2 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z2.2 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z2.2 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z2.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z2.6 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z2.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z2.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z2.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z2.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z2.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z2.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z2.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z2.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z2.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z2.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z2.6 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z2.6 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z2.6 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z2.6 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z2.6 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z2.6 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z2.6 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z2.6 F4200.0 E1.28 -G1 X108.739 Y100.741 Z2.6 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z2.6 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z2.6 F4200.0 E2.565 -G1 X91.261 Y91.261 Z2.6 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z2.6 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z2.6 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z2.6 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z2.6 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z2.6 F4200.0 E4.383 -G1 X91.261 Y99.259 Z2.6 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z2.6 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z2.6 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z2.6 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z2.6 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z2.6 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z2.6 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z2.6 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z2.6 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z2.6 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z2.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z3.0 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z3.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z3.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z3.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z3.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z3.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z3.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z3.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z3.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z3.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z3.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z3.0 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z3.0 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z3.0 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z3.0 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z3.0 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z3.0 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z3.0 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z3.0 F4200.0 E1.28 -G1 X99.259 Y108.739 Z3.0 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z3.0 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z3.0 F4200.0 E2.565 -G1 X108.739 Y91.261 Z3.0 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z3.0 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z3.0 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z3.0 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z3.0 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z3.0 F4200.0 E4.383 -G1 X100.741 Y91.261 Z3.0 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z3.0 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z3.0 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z3.0 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z3.0 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z3.0 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z3.0 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z3.0 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z3.0 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z3.0 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z3.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z3.4 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z3.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z3.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z3.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z3.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z3.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z3.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z3.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z3.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z3.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z3.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z3.4 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z3.4 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z3.4 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z3.4 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z3.4 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z3.4 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z3.4 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z3.4 F4200.0 E1.28 -G1 X108.739 Y100.741 Z3.4 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z3.4 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z3.4 F4200.0 E2.565 -G1 X91.261 Y91.261 Z3.4 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z3.4 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z3.4 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z3.4 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z3.4 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z3.4 F4200.0 E4.383 -G1 X91.261 Y99.259 Z3.4 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z3.4 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z3.4 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z3.4 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z3.4 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z3.4 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z3.4 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z3.4 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z3.4 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z3.4 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z3.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z3.8 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z3.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z3.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z3.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z3.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z3.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z3.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z3.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z3.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z3.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z3.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z3.8 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z3.8 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z3.8 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z3.8 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z3.8 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z3.8 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z3.8 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z3.8 F4200.0 E1.28 -G1 X99.259 Y108.739 Z3.8 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z3.8 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z3.8 F4200.0 E2.565 -G1 X108.739 Y91.261 Z3.8 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z3.8 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z3.8 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z3.8 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z3.8 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z3.8 F4200.0 E4.383 -G1 X100.741 Y91.261 Z3.8 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z3.8 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z3.8 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z3.8 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z3.8 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z3.8 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z3.8 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z3.8 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z3.8 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z3.8 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z3.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z4.2 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z4.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z4.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z4.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z4.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z4.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z4.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z4.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z4.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z4.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z4.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z4.2 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z4.2 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z4.2 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z4.2 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z4.2 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z4.2 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z4.2 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z4.2 F4200.0 E1.28 -G1 X108.739 Y100.741 Z4.2 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z4.2 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z4.2 F4200.0 E2.565 -G1 X91.261 Y91.261 Z4.2 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z4.2 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z4.2 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z4.2 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z4.2 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z4.2 F4200.0 E4.383 -G1 X91.261 Y99.259 Z4.2 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z4.2 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z4.2 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z4.2 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z4.2 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z4.2 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z4.2 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z4.2 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z4.2 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z4.2 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z4.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z4.6 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z4.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z4.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z4.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z4.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z4.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z4.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z4.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z4.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z4.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z4.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z4.6 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z4.6 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z4.6 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z4.6 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z4.6 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z4.6 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z4.6 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z4.6 F4200.0 E1.28 -G1 X99.259 Y108.739 Z4.6 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z4.6 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z4.6 F4200.0 E2.565 -G1 X108.739 Y91.261 Z4.6 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z4.6 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z4.6 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z4.6 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z4.6 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z4.6 F4200.0 E4.383 -G1 X100.741 Y91.261 Z4.6 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z4.6 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z4.6 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z4.6 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z4.6 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z4.6 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z4.6 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z4.6 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z4.6 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z4.6 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z4.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z5.0 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z5.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z5.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z5.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z5.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z5.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z5.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z5.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z5.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z5.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z5.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z5.0 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z5.0 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z5.0 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z5.0 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z5.0 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z5.0 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z5.0 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z5.0 F4200.0 E1.28 -G1 X108.739 Y100.741 Z5.0 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z5.0 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z5.0 F4200.0 E2.565 -G1 X91.261 Y91.261 Z5.0 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z5.0 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z5.0 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z5.0 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z5.0 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z5.0 F4200.0 E4.383 -G1 X91.261 Y99.259 Z5.0 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z5.0 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z5.0 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z5.0 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z5.0 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z5.0 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z5.0 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z5.0 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z5.0 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z5.0 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z5.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z5.4 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z5.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z5.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z5.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z5.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z5.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z5.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z5.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z5.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z5.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z5.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z5.4 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z5.4 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z5.4 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z5.4 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z5.4 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z5.4 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z5.4 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z5.4 F4200.0 E1.28 -G1 X99.259 Y108.739 Z5.4 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z5.4 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z5.4 F4200.0 E2.565 -G1 X108.739 Y91.261 Z5.4 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z5.4 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z5.4 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z5.4 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z5.4 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z5.4 F4200.0 E4.383 -G1 X100.741 Y91.261 Z5.4 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z5.4 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z5.4 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z5.4 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z5.4 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z5.4 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z5.4 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z5.4 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z5.4 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z5.4 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z5.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z5.8 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z5.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z5.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z5.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z5.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z5.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z5.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z5.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z5.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z5.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z5.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z5.8 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z5.8 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z5.8 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z5.8 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z5.8 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z5.8 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z5.8 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z5.8 F4200.0 E1.28 -G1 X108.739 Y100.741 Z5.8 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z5.8 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z5.8 F4200.0 E2.565 -G1 X91.261 Y91.261 Z5.8 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z5.8 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z5.8 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z5.8 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z5.8 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z5.8 F4200.0 E4.383 -G1 X91.261 Y99.259 Z5.8 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z5.8 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z5.8 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z5.8 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z5.8 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z5.8 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z5.8 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z5.8 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z5.8 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z5.8 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z5.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z6.2 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z6.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z6.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z6.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z6.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z6.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z6.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z6.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z6.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z6.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z6.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z6.2 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z6.2 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z6.2 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z6.2 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z6.2 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z6.2 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z6.2 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z6.2 F4200.0 E1.28 -G1 X99.259 Y108.739 Z6.2 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z6.2 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z6.2 F4200.0 E2.565 -G1 X108.739 Y91.261 Z6.2 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z6.2 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z6.2 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z6.2 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z6.2 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z6.2 F4200.0 E4.383 -G1 X100.741 Y91.261 Z6.2 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z6.2 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z6.2 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z6.2 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z6.2 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z6.2 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z6.2 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z6.2 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z6.2 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z6.2 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z6.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z6.6 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z6.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z6.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z6.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z6.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z6.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z6.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z6.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z6.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z6.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z6.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z6.6 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z6.6 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z6.6 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z6.6 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z6.6 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z6.6 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z6.6 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z6.6 F4200.0 E1.28 -G1 X108.739 Y100.741 Z6.6 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z6.6 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z6.6 F4200.0 E2.565 -G1 X91.261 Y91.261 Z6.6 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z6.6 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z6.6 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z6.6 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z6.6 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z6.6 F4200.0 E4.383 -G1 X91.261 Y99.259 Z6.6 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z6.6 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z6.6 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z6.6 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z6.6 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z6.6 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z6.6 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z6.6 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z6.6 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z6.6 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z6.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z7.0 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z7.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z7.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z7.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z7.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z7.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z7.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z7.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z7.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z7.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z7.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z7.0 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z7.0 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z7.0 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z7.0 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z7.0 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z7.0 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z7.0 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z7.0 F4200.0 E1.28 -G1 X99.259 Y108.739 Z7.0 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z7.0 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z7.0 F4200.0 E2.565 -G1 X108.739 Y91.261 Z7.0 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z7.0 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z7.0 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z7.0 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z7.0 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z7.0 F4200.0 E4.383 -G1 X100.741 Y91.261 Z7.0 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z7.0 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z7.0 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z7.0 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z7.0 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z7.0 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z7.0 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z7.0 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z7.0 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z7.0 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z7.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z7.4 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z7.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z7.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z7.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z7.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z7.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z7.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z7.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z7.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z7.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z7.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z7.4 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z7.4 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z7.4 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z7.4 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z7.4 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z7.4 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z7.4 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z7.4 F4200.0 E1.28 -G1 X108.739 Y100.741 Z7.4 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z7.4 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z7.4 F4200.0 E2.565 -G1 X91.261 Y91.261 Z7.4 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z7.4 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z7.4 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z7.4 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z7.4 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z7.4 F4200.0 E4.383 -G1 X91.261 Y99.259 Z7.4 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z7.4 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z7.4 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z7.4 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z7.4 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z7.4 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z7.4 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z7.4 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z7.4 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z7.4 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z7.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z7.8 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z7.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z7.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z7.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z7.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z7.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z7.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z7.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z7.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z7.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z7.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z7.8 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z7.8 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z7.8 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z7.8 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z7.8 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z7.8 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z7.8 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z7.8 F4200.0 E1.28 -G1 X99.259 Y108.739 Z7.8 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z7.8 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z7.8 F4200.0 E2.565 -G1 X108.739 Y91.261 Z7.8 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z7.8 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z7.8 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z7.8 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z7.8 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z7.8 F4200.0 E4.383 -G1 X100.741 Y91.261 Z7.8 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z7.8 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z7.8 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z7.8 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z7.8 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z7.8 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z7.8 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z7.8 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z7.8 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z7.8 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z7.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z8.2 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z8.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z8.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z8.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z8.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z8.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z8.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z8.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z8.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z8.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z8.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z8.2 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z8.2 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z8.2 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z8.2 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z8.2 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z8.2 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z8.2 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z8.2 F4200.0 E1.28 -G1 X108.739 Y100.741 Z8.2 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z8.2 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z8.2 F4200.0 E2.565 -G1 X91.261 Y91.261 Z8.2 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z8.2 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z8.2 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z8.2 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z8.2 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z8.2 F4200.0 E4.383 -G1 X91.261 Y99.259 Z8.2 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z8.2 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z8.2 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z8.2 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z8.2 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z8.2 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z8.2 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z8.2 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z8.2 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z8.2 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z8.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z8.6 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z8.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z8.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z8.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z8.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z8.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z8.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z8.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z8.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z8.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z8.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z8.6 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z8.6 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z8.6 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z8.6 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z8.6 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z8.6 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z8.6 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z8.6 F4200.0 E1.28 -G1 X99.259 Y108.739 Z8.6 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z8.6 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z8.6 F4200.0 E2.565 -G1 X108.739 Y91.261 Z8.6 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z8.6 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z8.6 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z8.6 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z8.6 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z8.6 F4200.0 E4.383 -G1 X100.741 Y91.261 Z8.6 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z8.6 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z8.6 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z8.6 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z8.6 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z8.6 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z8.6 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z8.6 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z8.6 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z8.6 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z8.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z9.0 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z9.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z9.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z9.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z9.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z9.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z9.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z9.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z9.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z9.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z9.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z9.0 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z9.0 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z9.0 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z9.0 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z9.0 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z9.0 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z9.0 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z9.0 F4200.0 E1.28 -G1 X108.739 Y100.741 Z9.0 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z9.0 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z9.0 F4200.0 E2.565 -G1 X91.261 Y91.261 Z9.0 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z9.0 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z9.0 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z9.0 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z9.0 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z9.0 F4200.0 E4.383 -G1 X91.261 Y99.259 Z9.0 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z9.0 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z9.0 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z9.0 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z9.0 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z9.0 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z9.0 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z9.0 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z9.0 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z9.0 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z9.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z9.4 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z9.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z9.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z9.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z9.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z9.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z9.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z9.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z9.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z9.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z9.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z9.4 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z9.4 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z9.4 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z9.4 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z9.4 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z9.4 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z9.4 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z9.4 F4200.0 E1.28 -G1 X99.259 Y108.739 Z9.4 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z9.4 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z9.4 F4200.0 E2.565 -G1 X108.739 Y91.261 Z9.4 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z9.4 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z9.4 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z9.4 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z9.4 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z9.4 F4200.0 E4.383 -G1 X100.741 Y91.261 Z9.4 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z9.4 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z9.4 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z9.4 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z9.4 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z9.4 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z9.4 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z9.4 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z9.4 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z9.4 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z9.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z9.8 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z9.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z9.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z9.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z9.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z9.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z9.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z9.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z9.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z9.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z9.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z9.8 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z9.8 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z9.8 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z9.8 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z9.8 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z9.8 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z9.8 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z9.8 F4200.0 E1.28 -G1 X108.739 Y100.741 Z9.8 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z9.8 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z9.8 F4200.0 E2.565 -G1 X91.261 Y91.261 Z9.8 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z9.8 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z9.8 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z9.8 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z9.8 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z9.8 F4200.0 E4.383 -G1 X91.261 Y99.259 Z9.8 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z9.8 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z9.8 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z9.8 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z9.8 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z9.8 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z9.8 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z9.8 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z9.8 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z9.8 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z9.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z10.2 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z10.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z10.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z10.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z10.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z10.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z10.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z10.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z10.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z10.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z10.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z10.2 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z10.2 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z10.2 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z10.2 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z10.2 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z10.2 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z10.2 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z10.2 F4200.0 E1.28 -G1 X99.259 Y108.739 Z10.2 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z10.2 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z10.2 F4200.0 E2.565 -G1 X108.739 Y91.261 Z10.2 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z10.2 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z10.2 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z10.2 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z10.2 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z10.2 F4200.0 E4.383 -G1 X100.741 Y91.261 Z10.2 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z10.2 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z10.2 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z10.2 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z10.2 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z10.2 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z10.2 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z10.2 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z10.2 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z10.2 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z10.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z10.6 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z10.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z10.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z10.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z10.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z10.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z10.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z10.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z10.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z10.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z10.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z10.6 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z10.6 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z10.6 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z10.6 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z10.6 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z10.6 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z10.6 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z10.6 F4200.0 E1.28 -G1 X108.739 Y100.741 Z10.6 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z10.6 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z10.6 F4200.0 E2.565 -G1 X91.261 Y91.261 Z10.6 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z10.6 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z10.6 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z10.6 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z10.6 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z10.6 F4200.0 E4.383 -G1 X91.261 Y99.259 Z10.6 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z10.6 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z10.6 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z10.6 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z10.6 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z10.6 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z10.6 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z10.6 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z10.6 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z10.6 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z10.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z11.0 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z11.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z11.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z11.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z11.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z11.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z11.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z11.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z11.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z11.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z11.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z11.0 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z11.0 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z11.0 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z11.0 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z11.0 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z11.0 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z11.0 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z11.0 F4200.0 E1.28 -G1 X99.259 Y108.739 Z11.0 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z11.0 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z11.0 F4200.0 E2.565 -G1 X108.739 Y91.261 Z11.0 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z11.0 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z11.0 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z11.0 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z11.0 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z11.0 F4200.0 E4.383 -G1 X100.741 Y91.261 Z11.0 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z11.0 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z11.0 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z11.0 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z11.0 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z11.0 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z11.0 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z11.0 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z11.0 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z11.0 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z11.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z11.4 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z11.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z11.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z11.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z11.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z11.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z11.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z11.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z11.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z11.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z11.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z11.4 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z11.4 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z11.4 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z11.4 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z11.4 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z11.4 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z11.4 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z11.4 F4200.0 E1.28 -G1 X108.739 Y100.741 Z11.4 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z11.4 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z11.4 F4200.0 E2.565 -G1 X91.261 Y91.261 Z11.4 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z11.4 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z11.4 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z11.4 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z11.4 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z11.4 F4200.0 E4.383 -G1 X91.261 Y99.259 Z11.4 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z11.4 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z11.4 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z11.4 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z11.4 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z11.4 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z11.4 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z11.4 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z11.4 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z11.4 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z11.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z11.8 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z11.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z11.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z11.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z11.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z11.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z11.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z11.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z11.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z11.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z11.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z11.8 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z11.8 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z11.8 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z11.8 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z11.8 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z11.8 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z11.8 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z11.8 F4200.0 E1.28 -G1 X99.259 Y108.739 Z11.8 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z11.8 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z11.8 F4200.0 E2.565 -G1 X108.739 Y91.261 Z11.8 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z11.8 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z11.8 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z11.8 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z11.8 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z11.8 F4200.0 E4.383 -G1 X100.741 Y91.261 Z11.8 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z11.8 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z11.8 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z11.8 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z11.8 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z11.8 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z11.8 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z11.8 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z11.8 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z11.8 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z11.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z12.2 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z12.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z12.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z12.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z12.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z12.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z12.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z12.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z12.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z12.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z12.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z12.2 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z12.2 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z12.2 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z12.2 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z12.2 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z12.2 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z12.2 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z12.2 F4200.0 E1.28 -G1 X108.739 Y100.741 Z12.2 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z12.2 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z12.2 F4200.0 E2.565 -G1 X91.261 Y91.261 Z12.2 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z12.2 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z12.2 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z12.2 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z12.2 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z12.2 F4200.0 E4.383 -G1 X91.261 Y99.259 Z12.2 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z12.2 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z12.2 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z12.2 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z12.2 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z12.2 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z12.2 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z12.2 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z12.2 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z12.2 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z12.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z12.6 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z12.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z12.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z12.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z12.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z12.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z12.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z12.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z12.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z12.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z12.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z12.6 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z12.6 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z12.6 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z12.6 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z12.6 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z12.6 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z12.6 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z12.6 F4200.0 E1.28 -G1 X99.259 Y108.739 Z12.6 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z12.6 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z12.6 F4200.0 E2.565 -G1 X108.739 Y91.261 Z12.6 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z12.6 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z12.6 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z12.6 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z12.6 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z12.6 F4200.0 E4.383 -G1 X100.741 Y91.261 Z12.6 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z12.6 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z12.6 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z12.6 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z12.6 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z12.6 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z12.6 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z12.6 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z12.6 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z12.6 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z12.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z13.0 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z13.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z13.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z13.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z13.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z13.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z13.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z13.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z13.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z13.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z13.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z13.0 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z13.0 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z13.0 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z13.0 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z13.0 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z13.0 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z13.0 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z13.0 F4200.0 E1.28 -G1 X108.739 Y100.741 Z13.0 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z13.0 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z13.0 F4200.0 E2.565 -G1 X91.261 Y91.261 Z13.0 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z13.0 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z13.0 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z13.0 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z13.0 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z13.0 F4200.0 E4.383 -G1 X91.261 Y99.259 Z13.0 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z13.0 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z13.0 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z13.0 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z13.0 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z13.0 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z13.0 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z13.0 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z13.0 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z13.0 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z13.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z13.4 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z13.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z13.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z13.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z13.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z13.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z13.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z13.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z13.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z13.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z13.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z13.4 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z13.4 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z13.4 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z13.4 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z13.4 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z13.4 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z13.4 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z13.4 F4200.0 E1.28 -G1 X99.259 Y108.739 Z13.4 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z13.4 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z13.4 F4200.0 E2.565 -G1 X108.739 Y91.261 Z13.4 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z13.4 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z13.4 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z13.4 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z13.4 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z13.4 F4200.0 E4.383 -G1 X100.741 Y91.261 Z13.4 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z13.4 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z13.4 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z13.4 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z13.4 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z13.4 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z13.4 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z13.4 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z13.4 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z13.4 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z13.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z13.8 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z13.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z13.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z13.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z13.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z13.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z13.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z13.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z13.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z13.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z13.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z13.8 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z13.8 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z13.8 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z13.8 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z13.8 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z13.8 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z13.8 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z13.8 F4200.0 E1.28 -G1 X108.739 Y100.741 Z13.8 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z13.8 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z13.8 F4200.0 E2.565 -G1 X91.261 Y91.261 Z13.8 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z13.8 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z13.8 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z13.8 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z13.8 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z13.8 F4200.0 E4.383 -G1 X91.261 Y99.259 Z13.8 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z13.8 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z13.8 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z13.8 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z13.8 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z13.8 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z13.8 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z13.8 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z13.8 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z13.8 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z13.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z14.2 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z14.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z14.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z14.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z14.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z14.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z14.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z14.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z14.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z14.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z14.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z14.2 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z14.2 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z14.2 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z14.2 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z14.2 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z14.2 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z14.2 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z14.2 F4200.0 E1.28 -G1 X99.259 Y108.739 Z14.2 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z14.2 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z14.2 F4200.0 E2.565 -G1 X108.739 Y91.261 Z14.2 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z14.2 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z14.2 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z14.2 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z14.2 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z14.2 F4200.0 E4.383 -G1 X100.741 Y91.261 Z14.2 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z14.2 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z14.2 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z14.2 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z14.2 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z14.2 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z14.2 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z14.2 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z14.2 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z14.2 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z14.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z14.6 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z14.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z14.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z14.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z14.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z14.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z14.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z14.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z14.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z14.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z14.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z14.6 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z14.6 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z14.6 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z14.6 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z14.6 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z14.6 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z14.6 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z14.6 F4200.0 E1.28 -G1 X108.739 Y100.741 Z14.6 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z14.6 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z14.6 F4200.0 E2.565 -G1 X91.261 Y91.261 Z14.6 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z14.6 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z14.6 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z14.6 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z14.6 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z14.6 F4200.0 E4.383 -G1 X91.261 Y99.259 Z14.6 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z14.6 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z14.6 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z14.6 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z14.6 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z14.6 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z14.6 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z14.6 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z14.6 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z14.6 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z14.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z15.0 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z15.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z15.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z15.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z15.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z15.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z15.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z15.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z15.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z15.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z15.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z15.0 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z15.0 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z15.0 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z15.0 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z15.0 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z15.0 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z15.0 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z15.0 F4200.0 E1.28 -G1 X99.259 Y108.739 Z15.0 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z15.0 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z15.0 F4200.0 E2.565 -G1 X108.739 Y91.261 Z15.0 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z15.0 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z15.0 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z15.0 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z15.0 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z15.0 F4200.0 E4.383 -G1 X100.741 Y91.261 Z15.0 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z15.0 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z15.0 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z15.0 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z15.0 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z15.0 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z15.0 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z15.0 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z15.0 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z15.0 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z15.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z15.4 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z15.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z15.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z15.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z15.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z15.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z15.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z15.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z15.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z15.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z15.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z15.4 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z15.4 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z15.4 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z15.4 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z15.4 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z15.4 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z15.4 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z15.4 F4200.0 E1.28 -G1 X108.739 Y100.741 Z15.4 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z15.4 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z15.4 F4200.0 E2.565 -G1 X91.261 Y91.261 Z15.4 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z15.4 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z15.4 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z15.4 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z15.4 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z15.4 F4200.0 E4.383 -G1 X91.261 Y99.259 Z15.4 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z15.4 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z15.4 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z15.4 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z15.4 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z15.4 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z15.4 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z15.4 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z15.4 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z15.4 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z15.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z15.8 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z15.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z15.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z15.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z15.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z15.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z15.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z15.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z15.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z15.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z15.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z15.8 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z15.8 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z15.8 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z15.8 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z15.8 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z15.8 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z15.8 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z15.8 F4200.0 E1.28 -G1 X99.259 Y108.739 Z15.8 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z15.8 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z15.8 F4200.0 E2.565 -G1 X108.739 Y91.261 Z15.8 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z15.8 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z15.8 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z15.8 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z15.8 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z15.8 F4200.0 E4.383 -G1 X100.741 Y91.261 Z15.8 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z15.8 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z15.8 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z15.8 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z15.8 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z15.8 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z15.8 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z15.8 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z15.8 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z15.8 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z15.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z16.2 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z16.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z16.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z16.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z16.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z16.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z16.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z16.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z16.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z16.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z16.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z16.2 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z16.2 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z16.2 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z16.2 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z16.2 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z16.2 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z16.2 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z16.2 F4200.0 E1.28 -G1 X108.739 Y100.741 Z16.2 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z16.2 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z16.2 F4200.0 E2.565 -G1 X91.261 Y91.261 Z16.2 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z16.2 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z16.2 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z16.2 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z16.2 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z16.2 F4200.0 E4.383 -G1 X91.261 Y99.259 Z16.2 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z16.2 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z16.2 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z16.2 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z16.2 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z16.2 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z16.2 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z16.2 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z16.2 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z16.2 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z16.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z16.6 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z16.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z16.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z16.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z16.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z16.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z16.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z16.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z16.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z16.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z16.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z16.6 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z16.6 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z16.6 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z16.6 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z16.6 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z16.6 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z16.6 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z16.6 F4200.0 E1.28 -G1 X99.259 Y108.739 Z16.6 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z16.6 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z16.6 F4200.0 E2.565 -G1 X108.739 Y91.261 Z16.6 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z16.6 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z16.6 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z16.6 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z16.6 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z16.6 F4200.0 E4.383 -G1 X100.741 Y91.261 Z16.6 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z16.6 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z16.6 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z16.6 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z16.6 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z16.6 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z16.6 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z16.6 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z16.6 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z16.6 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z16.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z17.0 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z17.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z17.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z17.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z17.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z17.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z17.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z17.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z17.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z17.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z17.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z17.0 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z17.0 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z17.0 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z17.0 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z17.0 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z17.0 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z17.0 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z17.0 F4200.0 E1.28 -G1 X108.739 Y100.741 Z17.0 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z17.0 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z17.0 F4200.0 E2.565 -G1 X91.261 Y91.261 Z17.0 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z17.0 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z17.0 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z17.0 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z17.0 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z17.0 F4200.0 E4.383 -G1 X91.261 Y99.259 Z17.0 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z17.0 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z17.0 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z17.0 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z17.0 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z17.0 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z17.0 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z17.0 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z17.0 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z17.0 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z17.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z17.4 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z17.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z17.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z17.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z17.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z17.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z17.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z17.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z17.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z17.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z17.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z17.4 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z17.4 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z17.4 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z17.4 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z17.4 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z17.4 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z17.4 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z17.4 F4200.0 E1.28 -G1 X99.259 Y108.739 Z17.4 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z17.4 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z17.4 F4200.0 E2.565 -G1 X108.739 Y91.261 Z17.4 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z17.4 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z17.4 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z17.4 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z17.4 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z17.4 F4200.0 E4.383 -G1 X100.741 Y91.261 Z17.4 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z17.4 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z17.4 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z17.4 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z17.4 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z17.4 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z17.4 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z17.4 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z17.4 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z17.4 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z17.4 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z17.8 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z17.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z17.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z17.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z17.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z17.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z17.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z17.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z17.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z17.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z17.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z17.8 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z17.8 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z17.8 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z17.8 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z17.8 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z17.8 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z17.8 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z17.8 F4200.0 E1.28 -G1 X108.739 Y100.741 Z17.8 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z17.8 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z17.8 F4200.0 E2.565 -G1 X91.261 Y91.261 Z17.8 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z17.8 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z17.8 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z17.8 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z17.8 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z17.8 F4200.0 E4.383 -G1 X91.261 Y99.259 Z17.8 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z17.8 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z17.8 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z17.8 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z17.8 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z17.8 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z17.8 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z17.8 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z17.8 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z17.8 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z17.8 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z18.2 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z18.2 F2700.0 E0.624 -G1 X109.7 Y109.7 Z18.2 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z18.2 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z18.2 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z18.2 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z18.2 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z18.2 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z18.2 F4200.0 E4.334 -G1 X90.857 Y91.201 Z18.2 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z18.2 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z18.2 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z18.2 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z18.2 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z18.2 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z18.2 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z18.2 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z18.2 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z18.2 F4200.0 E1.28 -G1 X99.259 Y108.739 Z18.2 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z18.2 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z18.2 F4200.0 E2.565 -G1 X108.739 Y91.261 Z18.2 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z18.2 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z18.2 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z18.2 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z18.2 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z18.2 F4200.0 E4.383 -G1 X100.741 Y91.261 Z18.2 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z18.2 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z18.2 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z18.2 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z18.2 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z18.2 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z18.2 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z18.2 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z18.2 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z18.2 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z18.2 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z18.6 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z18.6 F2700.0 E0.624 -G1 X109.7 Y109.7 Z18.6 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z18.6 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z18.6 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z18.6 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z18.6 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z18.6 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z18.6 F4200.0 E4.334 -G1 X90.857 Y91.201 Z18.6 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z18.6 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z18.6 F4200.0 E0.0013 -G1 X108.739 Y94.197 Z18.6 F4200.0 E0.0965 -G1 X107.985 Y91.261 Z18.6 F4200.0 E0.1957 -G1 X102.895 Y91.261 Z18.6 F4200.0 E0.3624 -G1 X108.739 Y94.924 Z18.6 F4200.0 E0.5883 -G1 X108.739 Y100.013 Z18.6 F4200.0 E0.7549 -G1 X102.168 Y91.261 Z18.6 F4200.0 E1.1133 -G1 X97.078 Y91.261 Z18.6 F4200.0 E1.28 -G1 X108.739 Y100.741 Z18.6 F4200.0 E1.7721 -G1 X108.739 Y105.831 Z18.6 F4200.0 E1.9388 -G1 X96.351 Y91.261 Z18.6 F4200.0 E2.565 -G1 X91.261 Y91.261 Z18.6 F4200.0 E2.7317 -G1 X91.261 Y93.442 Z18.6 F4200.0 E2.8031 -G1 X108.739 Y106.558 Z18.6 F4200.0 E3.5187 -G1 X108.739 Y108.739 Z18.6 F4200.0 E3.5901 -G1 X103.649 Y108.739 Z18.6 F4200.0 E3.7568 -G1 X91.261 Y94.169 Z18.6 F4200.0 E4.383 -G1 X91.261 Y99.259 Z18.6 F4200.0 E4.5497 -G1 X102.922 Y108.739 Z18.6 F4200.0 E5.0418 -G1 X97.832 Y108.739 Z18.6 F4200.0 E5.2085 -G1 X91.261 Y99.987 Z18.6 F4200.0 E5.5669 -G1 X91.261 Y105.076 Z18.6 F4200.0 E5.7335 -G1 X97.105 Y108.739 Z18.6 F4200.0 E5.9594 -G1 X92.742 Y108.739 Z18.6 F4200.0 E6.1022 -G1 X91.261 Y105.803 Z18.6 F4200.0 E6.2099 -G1 X91.261 Y108.712 Z18.6 F4200.0 E6.3052 -G1 X91.288 Y108.739 Z18.6 F4200.0 E6.3064 -G1 X92.015 Y108.739 Z18.6 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z19.0 F9709.5478 -G1 F900.0 -G1 E6.3302 -G1 F9709.5478 -G92 E0 -G1 X109.7 Y90.3 Z19.0 F2700.0 E0.624 -G1 X109.7 Y109.7 Z19.0 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z19.0 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z19.0 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z19.0 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z19.0 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z19.0 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z19.0 F4200.0 E4.334 -G1 X90.857 Y91.201 Z19.0 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z19.0 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z19.0 F4200.0 E0.0013 -G1 X105.803 Y108.739 Z19.0 F4200.0 E0.0965 -G1 X108.739 Y107.985 Z19.0 F4200.0 E0.1957 -G1 X108.739 Y102.895 Z19.0 F4200.0 E0.3624 -G1 X105.076 Y108.739 Z19.0 F4200.0 E0.5883 -G1 X99.987 Y108.739 Z19.0 F4200.0 E0.7549 -G1 X108.739 Y102.168 Z19.0 F4200.0 E1.1133 -G1 X108.739 Y97.078 Z19.0 F4200.0 E1.28 -G1 X99.259 Y108.739 Z19.0 F4200.0 E1.7721 -G1 X94.169 Y108.739 Z19.0 F4200.0 E1.9388 -G1 X108.739 Y96.351 Z19.0 F4200.0 E2.565 -G1 X108.739 Y91.261 Z19.0 F4200.0 E2.7317 -G1 X106.558 Y91.261 Z19.0 F4200.0 E2.8031 -G1 X93.442 Y108.739 Z19.0 F4200.0 E3.5187 -G1 X91.261 Y108.739 Z19.0 F4200.0 E3.5901 -G1 X91.261 Y103.649 Z19.0 F4200.0 E3.7568 -G1 X105.831 Y91.261 Z19.0 F4200.0 E4.383 -G1 X100.741 Y91.261 Z19.0 F4200.0 E4.5497 -G1 X91.261 Y102.922 Z19.0 F4200.0 E5.0418 -G1 X91.261 Y97.832 Z19.0 F4200.0 E5.2085 -G1 X100.013 Y91.261 Z19.0 F4200.0 E5.5669 -G1 X94.924 Y91.261 Z19.0 F4200.0 E5.7335 -G1 X91.261 Y97.105 Z19.0 F4200.0 E5.9594 -G1 X91.261 Y92.742 Z19.0 F4200.0 E6.1022 -G1 X94.197 Y91.261 Z19.0 F4200.0 E6.2099 -G1 X91.288 Y91.261 Z19.0 F4200.0 E6.3052 -G1 X91.261 Y91.288 Z19.0 F4200.0 E6.3064 -G1 X91.261 Y92.015 Z19.0 F4200.0 E6.3302 -G1 F900.0 -G1 E5.3302 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z19.4 F979.7792 -G1 F900.0 -G1 E6.3302 -G1 F979.7792 -G92 E0 -G1 X109.7 Y90.3 Z19.4 F2700.0 E0.624 -G1 X109.7 Y109.7 Z19.4 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z19.4 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z19.4 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z19.4 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z19.4 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z19.4 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z19.4 F4200.0 E4.334 -G1 X90.857 Y91.201 Z19.4 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.712 Y91.261 Z19.4 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.739 Y91.288 Z19.4 F4200.0 E0.0013 -G1 X108.739 Y92.015 Z19.4 F4200.0 E0.0251 -G1 X107.985 Y91.261 Z19.4 F4200.0 E0.06 -G1 X107.258 Y91.261 Z19.4 F4200.0 E0.0838 -G1 X108.739 Y92.742 Z19.4 F4200.0 E0.1524 -G1 X108.739 Y93.469 Z19.4 F4200.0 E0.1762 -G1 X106.531 Y91.261 Z19.4 F4200.0 E0.2785 -G1 X105.803 Y91.261 Z19.4 F4200.0 E0.3023 -G1 X108.739 Y94.197 Z19.4 F4200.0 E0.4382 -G1 X108.739 Y94.924 Z19.4 F4200.0 E0.462 -G1 X105.076 Y91.261 Z19.4 F4200.0 E0.6317 -G1 X104.349 Y91.261 Z19.4 F4200.0 E0.6555 -G1 X108.739 Y95.651 Z19.4 F4200.0 E0.8588 -G1 X108.739 Y96.378 Z19.4 F4200.0 E0.8826 -G1 X103.622 Y91.261 Z19.4 F4200.0 E1.1195 -G1 X102.895 Y91.261 Z19.4 F4200.0 E1.1433 -G1 X108.739 Y97.105 Z19.4 F4200.0 E1.414 -G1 X108.739 Y97.832 Z19.4 F4200.0 E1.4378 -G1 X102.168 Y91.261 Z19.4 F4200.0 E1.7421 -G1 X101.441 Y91.261 Z19.4 F4200.0 E1.7659 -G1 X108.739 Y98.559 Z19.4 F4200.0 E2.1039 -G1 X108.739 Y99.286 Z19.4 F4200.0 E2.1277 -G1 X100.714 Y91.261 Z19.4 F4200.0 E2.4994 -G1 X99.987 Y91.261 Z19.4 F4200.0 E2.5232 -G1 X108.739 Y100.013 Z19.4 F4200.0 E2.9285 -G1 X108.739 Y100.741 Z19.4 F4200.0 E2.9523 -G1 X99.259 Y91.261 Z19.4 F4200.0 E3.3913 -G1 X98.532 Y91.261 Z19.4 F4200.0 E3.4151 -G1 X108.739 Y101.468 Z19.4 F4200.0 E3.8878 -G1 X108.739 Y102.195 Z19.4 F4200.0 E3.9116 -G1 X97.805 Y91.261 Z19.4 F4200.0 E4.4179 -G1 X97.078 Y91.261 Z19.4 F4200.0 E4.4417 -G1 X108.739 Y102.922 Z19.4 F4200.0 E4.9818 -G1 X108.739 Y103.649 Z19.4 F4200.0 E5.0056 -G1 X96.351 Y91.261 Z19.4 F4200.0 E5.5793 -G1 X95.624 Y91.261 Z19.4 F4200.0 E5.6031 -G1 X108.739 Y104.376 Z19.4 F4200.0 E6.2104 -G1 X108.739 Y105.103 Z19.4 F4200.0 E6.2342 -G1 X94.897 Y91.261 Z19.4 F4200.0 E6.8753 -G1 X94.169 Y91.261 Z19.4 F4200.0 E6.8991 -G1 X108.739 Y105.831 Z19.4 F4200.0 E7.5738 -G1 X108.739 Y106.558 Z19.4 F4200.0 E7.5976 -G1 X93.442 Y91.261 Z19.4 F4200.0 E8.306 -G1 X92.715 Y91.261 Z19.4 F4200.0 E8.3298 -G1 X108.739 Y107.285 Z19.4 F4200.0 E9.0719 -G1 X108.739 Y108.012 Z19.4 F4200.0 E9.0957 -G1 X91.988 Y91.261 Z19.4 F4200.0 E9.8714 -G1 X91.261 Y91.261 Z19.4 F4200.0 E9.8952 -G1 X108.739 Y108.739 Z19.4 F4200.0 E10.7046 -G1 X108.012 Y108.739 Z19.4 F4200.0 E10.7284 -G1 X91.261 Y91.988 Z19.4 F4200.0 E11.5041 -G1 X91.261 Y92.715 Z19.4 F4200.0 E11.528 -G1 X107.285 Y108.739 Z19.4 F4200.0 E12.27 -G1 X106.558 Y108.739 Z19.4 F4200.0 E12.2938 -G1 X91.261 Y93.442 Z19.4 F4200.0 E13.0022 -G1 X91.261 Y94.169 Z19.4 F4200.0 E13.026 -G1 X105.831 Y108.739 Z19.4 F4200.0 E13.7007 -G1 X105.103 Y108.739 Z19.4 F4200.0 E13.7245 -G1 X91.261 Y94.897 Z19.4 F4200.0 E14.3656 -G1 X91.261 Y95.624 Z19.4 F4200.0 E14.3894 -G1 X104.376 Y108.739 Z19.4 F4200.0 E14.9967 -G1 X103.649 Y108.739 Z19.4 F4200.0 E15.0205 -G1 X91.261 Y96.351 Z19.4 F4200.0 E15.5942 -G1 X91.261 Y97.078 Z19.4 F4200.0 E15.618 -G1 X102.922 Y108.739 Z19.4 F4200.0 E16.1581 -G1 X102.195 Y108.739 Z19.4 F4200.0 E16.1819 -G1 X91.261 Y97.805 Z19.4 F4200.0 E16.6882 -G1 X91.261 Y98.532 Z19.4 F4200.0 E16.712 -G1 X101.468 Y108.739 Z19.4 F4200.0 E17.1847 -G1 X100.741 Y108.739 Z19.4 F4200.0 E17.2085 -G1 X91.261 Y99.259 Z19.4 F4200.0 E17.6475 -G1 X91.261 Y99.987 Z19.4 F4200.0 E17.6713 -G1 X100.013 Y108.739 Z19.4 F4200.0 E18.0767 -G1 X99.286 Y108.739 Z19.4 F4200.0 E18.1005 -G1 X91.261 Y100.714 Z19.4 F4200.0 E18.4721 -G1 X91.261 Y101.441 Z19.4 F4200.0 E18.4959 -G1 X98.559 Y108.739 Z19.4 F4200.0 E18.8339 -G1 X97.832 Y108.739 Z19.4 F4200.0 E18.8577 -G1 X91.261 Y102.168 Z19.4 F4200.0 E19.162 -G1 X91.261 Y102.895 Z19.4 F4200.0 E19.1858 -G1 X97.105 Y108.739 Z19.4 F4200.0 E19.4565 -G1 X96.378 Y108.739 Z19.4 F4200.0 E19.4803 -G1 X91.261 Y103.622 Z19.4 F4200.0 E19.7172 -G1 X91.261 Y104.349 Z19.4 F4200.0 E19.7411 -G1 X95.651 Y108.739 Z19.4 F4200.0 E19.9443 -G1 X94.924 Y108.739 Z19.4 F4200.0 E19.9682 -G1 X91.261 Y105.076 Z19.4 F4200.0 E20.1378 -G1 X91.261 Y105.803 Z19.4 F4200.0 E20.1616 -G1 X94.197 Y108.739 Z19.4 F4200.0 E20.2975 -G1 X93.469 Y108.739 Z19.4 F4200.0 E20.3213 -G1 X91.261 Y106.531 Z19.4 F4200.0 E20.4236 -G1 X91.261 Y107.258 Z19.4 F4200.0 E20.4474 -G1 X92.742 Y108.739 Z19.4 F4200.0 E20.516 -G1 X92.015 Y108.739 Z19.4 F4200.0 E20.5398 -G1 X91.261 Y107.985 Z19.4 F4200.0 E20.5748 -G1 X91.261 Y108.712 Z19.4 F4200.0 E20.5986 -G1 X91.288 Y108.739 Z19.4 F4200.0 E20.5998 -G1 F900.0 -G1 E19.5998 -G1 F4200.0 -; S45.0 -G1 X90.643 Y90.3 Z19.8 F9688.717 -G1 F900.0 -G1 E20.5998 -G1 F9688.717 -G92 E0 -G1 X109.7 Y90.3 Z19.8 F2700.0 E0.624 -G1 X109.7 Y109.7 Z19.8 F2700.0 E1.2593 -G1 X90.3 Y109.7 Z19.8 F2700.0 E1.8945 -G1 X90.3 Y90.643 Z19.8 F2700.0 E2.5186 -; S70.0 -G1 X91.201 Y90.857 Z19.8 F4200.0 E2.5489 -G1 X109.143 Y90.857 Z19.8 F4200.0 E3.1364 -G1 X109.143 Y109.143 Z19.8 F4200.0 E3.7352 -G1 X90.857 Y109.143 Z19.8 F4200.0 E4.334 -G1 X90.857 Y91.201 Z19.8 F4200.0 E4.9215 -G1 F900.0 -G1 E3.9215 -G1 F4200.0 -G1 X108.739 Y108.712 Z19.8 F19800.0 -G1 F900.0 -G1 E4.9215 -G1 F19800.0 -G92 E0 -G1 X108.712 Y108.739 Z19.8 F4200.0 E0.0013 -G1 X107.985 Y108.739 Z19.8 F4200.0 E0.0251 -G1 X108.739 Y107.985 Z19.8 F4200.0 E0.06 -G1 X108.739 Y107.258 Z19.8 F4200.0 E0.0838 -G1 X107.258 Y108.739 Z19.8 F4200.0 E0.1524 -G1 X106.531 Y108.739 Z19.8 F4200.0 E0.1762 -G1 X108.739 Y106.531 Z19.8 F4200.0 E0.2785 -G1 X108.739 Y105.803 Z19.8 F4200.0 E0.3023 -G1 X105.803 Y108.739 Z19.8 F4200.0 E0.4382 -G1 X105.076 Y108.739 Z19.8 F4200.0 E0.462 -G1 X108.739 Y105.076 Z19.8 F4200.0 E0.6317 -G1 X108.739 Y104.349 Z19.8 F4200.0 E0.6555 -G1 X104.349 Y108.739 Z19.8 F4200.0 E0.8588 -G1 X103.622 Y108.739 Z19.8 F4200.0 E0.8826 -G1 X108.739 Y103.622 Z19.8 F4200.0 E1.1195 -G1 X108.739 Y102.895 Z19.8 F4200.0 E1.1433 -G1 X102.895 Y108.739 Z19.8 F4200.0 E1.414 -G1 X102.168 Y108.739 Z19.8 F4200.0 E1.4378 -G1 X108.739 Y102.168 Z19.8 F4200.0 E1.7421 -G1 X108.739 Y101.441 Z19.8 F4200.0 E1.7659 -G1 X101.441 Y108.739 Z19.8 F4200.0 E2.1039 -G1 X100.714 Y108.739 Z19.8 F4200.0 E2.1277 -G1 X108.739 Y100.714 Z19.8 F4200.0 E2.4994 -G1 X108.739 Y99.987 Z19.8 F4200.0 E2.5232 -G1 X99.987 Y108.739 Z19.8 F4200.0 E2.9285 -G1 X99.259 Y108.739 Z19.8 F4200.0 E2.9523 -G1 X108.739 Y99.259 Z19.8 F4200.0 E3.3913 -G1 X108.739 Y98.532 Z19.8 F4200.0 E3.4151 -G1 X98.532 Y108.739 Z19.8 F4200.0 E3.8878 -G1 X97.805 Y108.739 Z19.8 F4200.0 E3.9116 -G1 X108.739 Y97.805 Z19.8 F4200.0 E4.4179 -G1 X108.739 Y97.078 Z19.8 F4200.0 E4.4417 -G1 X97.078 Y108.739 Z19.8 F4200.0 E4.9818 -G1 X96.351 Y108.739 Z19.8 F4200.0 E5.0056 -G1 X108.739 Y96.351 Z19.8 F4200.0 E5.5793 -G1 X108.739 Y95.624 Z19.8 F4200.0 E5.6031 -G1 X95.624 Y108.739 Z19.8 F4200.0 E6.2104 -G1 X94.897 Y108.739 Z19.8 F4200.0 E6.2342 -G1 X108.739 Y94.897 Z19.8 F4200.0 E6.8753 -G1 X108.739 Y94.169 Z19.8 F4200.0 E6.8991 -G1 X94.169 Y108.739 Z19.8 F4200.0 E7.5738 -G1 X93.442 Y108.739 Z19.8 F4200.0 E7.5976 -G1 X108.739 Y93.442 Z19.8 F4200.0 E8.306 -G1 X108.739 Y92.715 Z19.8 F4200.0 E8.3298 -G1 X92.715 Y108.739 Z19.8 F4200.0 E9.0719 -G1 X91.988 Y108.739 Z19.8 F4200.0 E9.0957 -G1 X108.739 Y91.988 Z19.8 F4200.0 E9.8714 -G1 X108.739 Y91.261 Z19.8 F4200.0 E9.8952 -G1 X91.261 Y108.739 Z19.8 F4200.0 E10.7046 -G1 X91.261 Y108.012 Z19.8 F4200.0 E10.7284 -G1 X108.012 Y91.261 Z19.8 F4200.0 E11.5041 -G1 X107.285 Y91.261 Z19.8 F4200.0 E11.528 -G1 X91.261 Y107.285 Z19.8 F4200.0 E12.27 -G1 X91.261 Y106.558 Z19.8 F4200.0 E12.2938 -G1 X106.558 Y91.261 Z19.8 F4200.0 E13.0022 -G1 X105.831 Y91.261 Z19.8 F4200.0 E13.026 -G1 X91.261 Y105.831 Z19.8 F4200.0 E13.7007 -G1 X91.261 Y105.103 Z19.8 F4200.0 E13.7245 -G1 X105.103 Y91.261 Z19.8 F4200.0 E14.3656 -G1 X104.376 Y91.261 Z19.8 F4200.0 E14.3894 -G1 X91.261 Y104.376 Z19.8 F4200.0 E14.9967 -G1 X91.261 Y103.649 Z19.8 F4200.0 E15.0205 -G1 X103.649 Y91.261 Z19.8 F4200.0 E15.5942 -G1 X102.922 Y91.261 Z19.8 F4200.0 E15.618 -G1 X91.261 Y102.922 Z19.8 F4200.0 E16.1581 -G1 X91.261 Y102.195 Z19.8 F4200.0 E16.1819 -G1 X102.195 Y91.261 Z19.8 F4200.0 E16.6882 -G1 X101.468 Y91.261 Z19.8 F4200.0 E16.712 -G1 X91.261 Y101.468 Z19.8 F4200.0 E17.1847 -G1 X91.261 Y100.741 Z19.8 F4200.0 E17.2085 -G1 X100.741 Y91.261 Z19.8 F4200.0 E17.6475 -G1 X100.013 Y91.261 Z19.8 F4200.0 E17.6713 -G1 X91.261 Y100.013 Z19.8 F4200.0 E18.0767 -G1 X91.261 Y99.286 Z19.8 F4200.0 E18.1005 -G1 X99.286 Y91.261 Z19.8 F4200.0 E18.4721 -G1 X98.559 Y91.261 Z19.8 F4200.0 E18.4959 -G1 X91.261 Y98.559 Z19.8 F4200.0 E18.8339 -G1 X91.261 Y97.832 Z19.8 F4200.0 E18.8577 -G1 X97.832 Y91.261 Z19.8 F4200.0 E19.162 -G1 X97.105 Y91.261 Z19.8 F4200.0 E19.1858 -G1 X91.261 Y97.105 Z19.8 F4200.0 E19.4565 -G1 X91.261 Y96.378 Z19.8 F4200.0 E19.4803 -G1 X96.378 Y91.261 Z19.8 F4200.0 E19.7172 -G1 X95.651 Y91.261 Z19.8 F4200.0 E19.7411 -G1 X91.261 Y95.651 Z19.8 F4200.0 E19.9443 -G1 X91.261 Y94.924 Z19.8 F4200.0 E19.9682 -G1 X94.924 Y91.261 Z19.8 F4200.0 E20.1378 -G1 X94.197 Y91.261 Z19.8 F4200.0 E20.1616 -G1 X91.261 Y94.197 Z19.8 F4200.0 E20.2975 -G1 X91.261 Y93.469 Z19.8 F4200.0 E20.3213 -G1 X93.469 Y91.261 Z19.8 F4200.0 E20.4236 -G1 X92.742 Y91.261 Z19.8 F4200.0 E20.4474 -G1 X91.261 Y92.742 Z19.8 F4200.0 E20.516 -G1 X91.261 Y92.015 Z19.8 F4200.0 E20.5398 -G1 X92.015 Y91.261 Z19.8 F4200.0 E20.5748 -G1 X91.288 Y91.261 Z19.8 F4200.0 E20.5986 -G1 X91.261 Y91.288 Z19.8 F4200.0 E20.5998 -G1 F900.0 -G1 E19.5998 -G1 F4200.0 From 888143be42c77378a9a56bedc77d6cf6d8428eac Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 10:51:17 +0200 Subject: [PATCH 04/12] Initial work towards a setup.py build system --- plater.py | 13 +- .../SkeinforgeQuickEditDialog.py | 0 __init__.py => printrun/__init__.py | 0 bmpDisplay.py => printrun/bmpDisplay.py | 0 .../bufferedcanvas.py | 0 .../calibrateextruder.py | 0 gcview.py => printrun/gcview.py | 0 graph.py => printrun/graph.py | 0 gviz.py => printrun/gviz.py | 11 +- printcore.py => printrun/printcore.py | 0 printrun/printrun_utils.py | 28 ++++ projectlayer.py => printrun/projectlayer.py | 0 stltool.py => printrun/stltool.py | 0 stlview.py => printrun/stlview.py | 0 webinterface.py => printrun/webinterface.py | 0 xybuttons.py => printrun/xybuttons.py | 8 +- zbuttons.py => printrun/zbuttons.py | 9 +- zscaper.py => printrun/zscaper.py | 0 pronsole.py | 11 +- pronterface.py | 23 ++-- setup.py | 130 ++++++++++++++++++ 21 files changed, 189 insertions(+), 44 deletions(-) rename SkeinforgeQuickEditDialog.py => printrun/SkeinforgeQuickEditDialog.py (100%) rename __init__.py => printrun/__init__.py (100%) rename bmpDisplay.py => printrun/bmpDisplay.py (100%) rename bufferedcanvas.py => printrun/bufferedcanvas.py (100%) rename calibrateextruder.py => printrun/calibrateextruder.py (100%) rename gcview.py => printrun/gcview.py (100%) rename graph.py => printrun/graph.py (100%) rename gviz.py => printrun/gviz.py (96%) rename printcore.py => printrun/printcore.py (100%) create mode 100644 printrun/printrun_utils.py rename projectlayer.py => printrun/projectlayer.py (100%) rename stltool.py => printrun/stltool.py (100%) rename stlview.py => printrun/stlview.py (100%) rename webinterface.py => printrun/webinterface.py (100%) rename xybuttons.py => printrun/xybuttons.py (97%) rename zbuttons.py => printrun/zbuttons.py (94%) rename zscaper.py => printrun/zscaper.py (100%) create mode 100755 setup.py diff --git a/plater.py b/plater.py index 34e1a8b..c6f3ba4 100755 --- a/plater.py +++ b/plater.py @@ -17,12 +17,10 @@ # Set up Internationalization using gettext # searching for installed locales on /usr/share; uses relative folder if not found (windows) -import os, gettext, Queue, re +import os, Queue, re -if os.path.exists('/usr/share/pronterface/locale'): - gettext.install('plater', '/usr/share/pronterface/locale', unicode=1) -else: - gettext.install('plater', './locale', unicode=1) +from printrun.printrun_utils import install_locale +install_locale('plater') import wx import time @@ -31,7 +29,8 @@ import threading import math import sys -import stltool +from printrun import stltool +from printrun.printrun_utils import pixmapfile glview = False if "-nogl" not in sys.argv: @@ -245,7 +244,7 @@ class showstl(wx.Window): class stlwin(wx.Frame): def __init__(self, size=(800, 580), callback=None, parent=None): wx.Frame.__init__(self, parent, title=_("Plate building tool"), size=size) - self.SetIcon(wx.Icon("plater.ico", wx.BITMAP_TYPE_ICO)) + self.SetIcon(wx.Icon(pixmapfile("plater.ico"), wx.BITMAP_TYPE_ICO)) self.mainsizer = wx.BoxSizer(wx.HORIZONTAL) self.panel = wx.Panel(self, -1, size=(150, 600), pos=(0, 0)) #self.panel.SetBackgroundColour((10, 10, 10)) diff --git a/SkeinforgeQuickEditDialog.py b/printrun/SkeinforgeQuickEditDialog.py similarity index 100% rename from SkeinforgeQuickEditDialog.py rename to printrun/SkeinforgeQuickEditDialog.py diff --git a/__init__.py b/printrun/__init__.py similarity index 100% rename from __init__.py rename to printrun/__init__.py diff --git a/bmpDisplay.py b/printrun/bmpDisplay.py similarity index 100% rename from bmpDisplay.py rename to printrun/bmpDisplay.py diff --git a/bufferedcanvas.py b/printrun/bufferedcanvas.py similarity index 100% rename from bufferedcanvas.py rename to printrun/bufferedcanvas.py diff --git a/calibrateextruder.py b/printrun/calibrateextruder.py similarity index 100% rename from calibrateextruder.py rename to printrun/calibrateextruder.py diff --git a/gcview.py b/printrun/gcview.py similarity index 100% rename from gcview.py rename to printrun/gcview.py diff --git a/graph.py b/printrun/graph.py similarity index 100% rename from graph.py rename to printrun/graph.py diff --git a/gviz.py b/printrun/gviz.py similarity index 96% rename from gviz.py rename to printrun/gviz.py index e40f526..32f6198 100755 --- a/gviz.py +++ b/printrun/gviz.py @@ -13,6 +13,9 @@ # You should have received a copy of the GNU General Public License # along with Printrun. If not, see . import wx,time + +from printrun_utils import imagefile + ID_ABOUT = 101 ID_EXIT = 110 class window(wx.Frame): @@ -22,11 +25,11 @@ class window(wx.Frame): vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(self, -1, style=wx.TB_HORIZONTAL | wx.NO_BORDER) - toolbar.AddSimpleTool(1, wx.Image('./images/zoom_in.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom In [+]', '') - toolbar.AddSimpleTool(2, wx.Image('./images/zoom_out.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom Out [-]', '') + toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom In [+]', '') + toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom Out [-]', '') toolbar.AddSeparator() - toolbar.AddSimpleTool(3, wx.Image('./images/arrow_up.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Up a Layer [U]', '') - toolbar.AddSimpleTool(4, wx.Image('./images/arrow_down.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Down a Layer [D]', '') + toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Up a Layer [U]', '') + toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Down a Layer [D]', '') toolbar.AddSimpleTool(5, wx.EmptyBitmap(16,16), 'Reset view', '') toolbar.AddSeparator() #toolbar.AddSimpleTool(5, wx.Image('./images/inject.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Insert Code at start of this layer', '') diff --git a/printcore.py b/printrun/printcore.py similarity index 100% rename from printcore.py rename to printrun/printcore.py diff --git a/printrun/printrun_utils.py b/printrun/printrun_utils.py new file mode 100644 index 0000000..cd34085 --- /dev/null +++ b/printrun/printrun_utils.py @@ -0,0 +1,28 @@ +import os +import gettext + +def install_locale(domain): + if os.path.exists('/usr/share/pronterface/locale'): + gettext.install(domain, '/usr/share/pronterface/locale', unicode=1) + elif os.path.exists('/usr/local/share/pronterface/locale'): + gettext.install(domain, '/usr/local/share/pronterface/locale', unicode=1) + else: + gettext.install(domain, './locale', unicode=1) + +def imagefile(filename): + for prefix in ['/usr/local/share/pronterface/images', '/usr/share/pronterface/images']: + candidate = os.path.join(prefix, filename) + if os.path.exists(candidate): + return candidate + local_candidate = os.path.join(os.path.dirname(__file__), "images", filename) + if os.path.exists(local_candidate): + return local_candidate + else: + return os.path.join(os.path.split(os.path.split(__file__)[0])[0], "images", filename) + +def pixmapfile(filename): + for prefix in ['/usr/local/share/pixmaps', '/usr/share/pixmaps']: + candidate = os.path.join(prefix, filename) + if os.path.exists(candidate): + return candidate + return filename diff --git a/projectlayer.py b/printrun/projectlayer.py similarity index 100% rename from projectlayer.py rename to printrun/projectlayer.py diff --git a/stltool.py b/printrun/stltool.py similarity index 100% rename from stltool.py rename to printrun/stltool.py diff --git a/stlview.py b/printrun/stlview.py similarity index 100% rename from stlview.py rename to printrun/stlview.py diff --git a/webinterface.py b/printrun/webinterface.py similarity index 100% rename from webinterface.py rename to printrun/webinterface.py diff --git a/xybuttons.py b/printrun/xybuttons.py similarity index 97% rename from xybuttons.py rename to printrun/xybuttons.py index 1ff5a86..0d1946e 100644 --- a/xybuttons.py +++ b/printrun/xybuttons.py @@ -15,14 +15,8 @@ import wx, os, math from bufferedcanvas import * +from printrun_utils import * - -def imagefile(filename): - if os.path.exists(os.path.join(os.path.dirname(__file__), "images", filename)): - return os.path.join(os.path.dirname(__file__), "images", filename) - else: - return os.path.join(os.path.split(os.path.split(__file__)[0])[0], "images", filename) - def sign(n): if n < 0: return -1 elif n > 0: return 1 diff --git a/zbuttons.py b/printrun/zbuttons.py similarity index 94% rename from zbuttons.py rename to printrun/zbuttons.py index 831408e..467dd86 100644 --- a/zbuttons.py +++ b/printrun/zbuttons.py @@ -15,14 +15,7 @@ import wx, os, math from bufferedcanvas import * - -def imagefile(filename): - if os.path.exists(os.path.join(os.path.dirname(__file__), "images", filename)): - return os.path.join(os.path.dirname(__file__), "images", filename) - else: - return os.path.join(os.path.split(os.path.split(__file__)[0])[0], "images", filename) - - +from printrun_utils import * def sign(n): if n < 0: return -1 diff --git a/zscaper.py b/printrun/zscaper.py similarity index 100% rename from zscaper.py rename to printrun/zscaper.py diff --git a/pronsole.py b/pronsole.py index 2d2b557..3bb10d5 100755 --- a/pronsole.py +++ b/pronsole.py @@ -15,16 +15,15 @@ # You should have received a copy of the GNU General Public License # along with Printrun. If not, see . -import cmd, printcore, sys +import cmd, sys import glob, os, time import sys, subprocess import math, codecs from math import sqrt -import gettext -if os.path.exists('/usr/share/pronterface/locale'): - gettext.install('pronterface', '/usr/share/pronterface/locale', unicode=1) -else: - gettext.install('pronterface', './locale', unicode=1) + +from printrun import printcore +from printrun.printrun_utils import install_locale +install_locale('pronterface') if os.name=="nt": try: diff --git a/pronterface.py b/pronterface.py index 4a2d09a..d054e80 100755 --- a/pronterface.py +++ b/pronterface.py @@ -17,19 +17,17 @@ # Set up Internationalization using gettext # searching for installed locales on /usr/share; uses relative folder if not found (windows) -import os, gettext, Queue, re +import os, Queue, re -if os.path.exists('/usr/share/pronterface/locale'): - gettext.install('pronterface', '/usr/share/pronterface/locale', unicode=1) -else: - gettext.install('pronterface', './locale', unicode=1) +from printrun.printrun_utils import install_locale +install_locale('pronterface') try: import wx except: print _("WX is not installed. This program requires WX to run.") raise -import printcore, sys, glob, time, threading, traceback, gviz, traceback, cStringIO, subprocess +import sys, glob, time, threading, traceback, cStringIO, subprocess try: os.chdir(os.path.split(__file__)[0]) except: @@ -49,16 +47,17 @@ if os.name=="nt": pass - -from xybuttons import XYButtons -from zbuttons import ZButtons -from graph import Graph +from printrun import printcore, gviz +from printrun.xybuttons import XYButtons +from printrun.zbuttons import ZButtons +from printrun.graph import Graph +from printrun.printrun_utils import pixmapfile import pronsole webavail = False try : if webavail: - import cherrypy, webinterface + import cherrypy, printrun.webinterface from threading import Thread except: print _("CherryPy is not installed. Web Interface Disabled.") @@ -109,7 +108,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.filename=filename os.putenv("UBUNTU_MENUPROXY","0") wx.Frame.__init__(self,None,title=_("Printer Interface"),size=size); - self.SetIcon(wx.Icon("P-face.ico",wx.BITMAP_TYPE_ICO)) + self.SetIcon(wx.Icon(pixmapfile("P-face.ico"),wx.BITMAP_TYPE_ICO)) self.panel=wx.Panel(self,-1,size=size) self.statuscheck=False diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..93d5700 --- /dev/null +++ b/setup.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python + +import sys, os, glob +import subprocess +from stat import * +from distutils.core import setup +from distutils.command.install import install as _install +from distutils.command.install_data import install_data as _install_data + +INSTALLED_FILES = "installed_files" + +class install (_install): + + def run (self): + _install.run (self) + outputs = self.get_outputs () + length = 0 + if self.root: + length += len (self.root) + if self.prefix: + length += len (self.prefix) + if length: + for counter in xrange (len (outputs)): + outputs[counter] = outputs[counter][length:] + data = "\n".join (outputs) + try: + file = open (INSTALLED_FILES, "w") + except: + self.warn ("Could not write installed files list %s" % \ + INSTALLED_FILES) + return + file.write (data) + file.close () + +class install_data (_install_data): + + def run (self): + def chmod_data_file (file): + try: + os.chmod (file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) + except: + self.warn ("Could not chmod data file %s" % file) + _install_data.run (self) + map (chmod_data_file, self.get_outputs ()) + +class uninstall (_install): + + def run (self): + try: + file = open (INSTALLED_FILES, "r") + except: + self.warn ("Could not read installed files list %s" % \ + INSTALLED_FILES) + return + files = file.readlines () + file.close () + prepend = "" + if self.root: + prepend += self.root + if self.prefix: + prepend += self.prefix + if len (prepend): + for counter in xrange (len (files)): + files[counter] = prepend + files[counter].rstrip () + for file in files: + print "Uninstalling %s" % file + try: + os.unlink (file) + except: + self.warn ("Could not remove file %s" % file) + +ops = ("install", "build", "sdist", "uninstall", "clean") + +if len (sys.argv) < 2 or sys.argv[1] not in ops: + print "Please specify operation : %s" % " | ".join (ops) + raise SystemExit + +prefix = None +if len (sys.argv) > 2: + i = 0 + for o in sys.argv: + if o.startswith ("--prefix"): + if o == "--prefix": + if len (sys.argv) >= i: + prefix = sys.argv[i + 1] + sys.argv.remove (prefix) + elif o.startswith ("--prefix=") and len (o[9:]): + prefix = o[9:] + sys.argv.remove (o) + i += 1 +if not prefix and "PREFIX" in os.environ: + prefix = os.environ["PREFIX"] +if not prefix or not len (prefix): + prefix = "/usr/local" + +if sys.argv[1] in ("install", "uninstall") and len (prefix): + sys.argv += ["--prefix", prefix] + +target_images_path = "share/pronterface/images/" +data_files = [('share/pixmaps/', ['P-face.ico','plater.ico'])] + +for basedir, subdirs, files in os.walk("images"): + images = [] + for filename in files: + if filename.find(".svg") or filename.find(".png"): + file_path = os.path.join(basedir, filename) + images.append(file_path) + data_files.append((target_images_path + basedir[len("images/"):], images)) + +for basedir, subdirs, files in os.walk("locale"): + if not basedir.endswith("LC_MESSAGES"): + continue + destpath = os.path.join("share", "pronterface", basedir) + files = filter(lambda x: x.endswith(".mo"), files) + files = map(lambda x: os.path.join(basedir, x), files) + data_files.append ((destpath, files)) + +setup ( + name = "Printrun", + description = "Host software for 3D printers", + author = "Kliment Yanev", + url = "http://github.com/kliment/Printrun/", + license = "GPLv3", + data_files = data_files, + packages = ["printrun"], + scripts = ["pronsole.py", "pronterface.py", "plater.py"], + cmdclass = {"uninstall" : uninstall, + "install" : install, + "install_data" : install_data} + ) From 1d79b1231a29a2d11a189defdc556cf83dc7ab51 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 11:02:06 +0200 Subject: [PATCH 05/12] Look for configuration files in ~/.printrun/ before looking in `pwd` --- printrun/printrun_utils.py | 6 ++++++ printrun/webinterface.py | 13 ++++++++----- pronterface.py | 4 ++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/printrun/printrun_utils.py b/printrun/printrun_utils.py index cd34085..9f1db0d 100644 --- a/printrun/printrun_utils.py +++ b/printrun/printrun_utils.py @@ -26,3 +26,9 @@ def pixmapfile(filename): if os.path.exists(candidate): return candidate return filename + +def configfile(filename): + candidate = os.path.expanduser("~/.printrun/%s" % filename) + if os.path.exists(candidate): + return candidate + return filename diff --git a/printrun/webinterface.py b/printrun/webinterface.py index 6ac1ff6..b864652 100644 --- a/printrun/webinterface.py +++ b/printrun/webinterface.py @@ -1,7 +1,10 @@ #!/usr/bin/python -import cherrypy, pronterface, re, ConfigParser, threading, sys +import pronterface +import cherrypy, re, ConfigParser, threading, sys import os.path +from printrun.printrun_utils import configfile + users = {} def PrintHeader(): @@ -238,7 +241,7 @@ class WebInterface(object): config = ConfigParser.SafeConfigParser(allow_no_value=True) else: config = ConfigParser.SafeConfigParser() - config.read('auth.config') + config.read(configfile('auth.config')) users[config.get("user", "user")] = config.get("user", "pass") self.pface = pface global gPronterPtr @@ -358,7 +361,7 @@ def KillWebInterfaceThread(): def StartWebInterfaceThread(webInterface): current_dir = os.path.dirname(os.path.abspath(__file__)) cherrypy.config.update({'engine.autoreload_on':False}) - cherrypy.config.update("http.config") + cherrypy.config.update(configfile("http.config")) conf = {'/css/style.css': {'tools.staticfile.on': True, 'tools.staticfile.filename': os.path.join(current_dir, 'css/style.css'), }, @@ -368,9 +371,9 @@ def StartWebInterfaceThread(webInterface): '/images/control_z.png': {'tools.staticfile.on': True, 'tools.staticfile.filename': os.path.join(current_dir, 'images/control_z.png'), }} - cherrypy.config.update("http.config") + cherrypy.config.update(configfile("http.config")) cherrypy.quickstart(webInterface, '/', config=conf) if __name__ == '__main__': - cherrypy.config.update("http.config") + cherrypy.config.update(configfile("http.config")) cherrypy.quickstart(WebInterfaceStub()) diff --git a/pronterface.py b/pronterface.py index d054e80..185b6a7 100755 --- a/pronterface.py +++ b/pronterface.py @@ -51,7 +51,7 @@ from printrun import printcore, gviz from printrun.xybuttons import XYButtons from printrun.zbuttons import ZButtons from printrun.graph import Graph -from printrun.printrun_utils import pixmapfile +from printrun.printrun_utils import pixmapfile, configfile import pronsole webavail = False @@ -137,7 +137,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.panel.SetBackgroundColour(self.settings.bgcolor) customdict={} try: - execfile("custombtn.txt",customdict) + execfile(configfile("custombtn.txt"),customdict) if len(customdict["btns"]): if not len(self.custombuttons): try: From fc2d009c3cbf572a49a930fbbc062befdf1022b6 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 11:04:13 +0200 Subject: [PATCH 06/12] Install svg module as printrun.svg --- {svg => printrun/svg}/__init__.py | 0 {svg => printrun/svg}/attributes.py | 0 {svg => printrun/svg}/css/__init__.py | 0 {svg => printrun/svg}/css/atrule.py | 0 {svg => printrun/svg}/css/block.py | 0 {svg => printrun/svg}/css/colour.py | 0 {svg => printrun/svg}/css/identifier.py | 0 {svg => printrun/svg}/css/inline.py | 0 {svg => printrun/svg}/css/transform.py | 0 {svg => printrun/svg}/css/values.py | 0 {svg => printrun/svg}/document.py | 0 {svg => printrun/svg}/pathdata.py | 0 setup.py | 2 +- 13 files changed, 1 insertion(+), 1 deletion(-) rename {svg => printrun/svg}/__init__.py (100%) rename {svg => printrun/svg}/attributes.py (100%) rename {svg => printrun/svg}/css/__init__.py (100%) rename {svg => printrun/svg}/css/atrule.py (100%) rename {svg => printrun/svg}/css/block.py (100%) rename {svg => printrun/svg}/css/colour.py (100%) rename {svg => printrun/svg}/css/identifier.py (100%) rename {svg => printrun/svg}/css/inline.py (100%) rename {svg => printrun/svg}/css/transform.py (100%) rename {svg => printrun/svg}/css/values.py (100%) rename {svg => printrun/svg}/document.py (100%) rename {svg => printrun/svg}/pathdata.py (100%) diff --git a/svg/__init__.py b/printrun/svg/__init__.py similarity index 100% rename from svg/__init__.py rename to printrun/svg/__init__.py diff --git a/svg/attributes.py b/printrun/svg/attributes.py similarity index 100% rename from svg/attributes.py rename to printrun/svg/attributes.py diff --git a/svg/css/__init__.py b/printrun/svg/css/__init__.py similarity index 100% rename from svg/css/__init__.py rename to printrun/svg/css/__init__.py diff --git a/svg/css/atrule.py b/printrun/svg/css/atrule.py similarity index 100% rename from svg/css/atrule.py rename to printrun/svg/css/atrule.py diff --git a/svg/css/block.py b/printrun/svg/css/block.py similarity index 100% rename from svg/css/block.py rename to printrun/svg/css/block.py diff --git a/svg/css/colour.py b/printrun/svg/css/colour.py similarity index 100% rename from svg/css/colour.py rename to printrun/svg/css/colour.py diff --git a/svg/css/identifier.py b/printrun/svg/css/identifier.py similarity index 100% rename from svg/css/identifier.py rename to printrun/svg/css/identifier.py diff --git a/svg/css/inline.py b/printrun/svg/css/inline.py similarity index 100% rename from svg/css/inline.py rename to printrun/svg/css/inline.py diff --git a/svg/css/transform.py b/printrun/svg/css/transform.py similarity index 100% rename from svg/css/transform.py rename to printrun/svg/css/transform.py diff --git a/svg/css/values.py b/printrun/svg/css/values.py similarity index 100% rename from svg/css/values.py rename to printrun/svg/css/values.py diff --git a/svg/document.py b/printrun/svg/document.py similarity index 100% rename from svg/document.py rename to printrun/svg/document.py diff --git a/svg/pathdata.py b/printrun/svg/pathdata.py similarity index 100% rename from svg/pathdata.py rename to printrun/svg/pathdata.py diff --git a/setup.py b/setup.py index 93d5700..debcbf8 100755 --- a/setup.py +++ b/setup.py @@ -122,7 +122,7 @@ setup ( url = "http://github.com/kliment/Printrun/", license = "GPLv3", data_files = data_files, - packages = ["printrun"], + packages = ["printrun", "printrun.svg"], scripts = ["pronsole.py", "pronterface.py", "plater.py"], cmdclass = {"uninstall" : uninstall, "install" : install, From 64fca260329721c4fc48b74c3443e569e4210e91 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 11:05:27 +0200 Subject: [PATCH 07/12] Add copyright header to setup.py --- setup.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/setup.py b/setup.py index debcbf8..f1162ae 100755 --- a/setup.py +++ b/setup.py @@ -1,5 +1,20 @@ #!/usr/bin/env python +# This file is part of the Printrun suite. +# +# Printrun is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Printrun is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Printrun. If not, see . + import sys, os, glob import subprocess from stat import * From cc60367a838207d4a731d54415deca0b4540e45d Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 12:00:05 +0200 Subject: [PATCH 08/12] New commandline paramters : -w/--web to request web interface Also install webinterface deps and fix bug in configfile() --- printrun/printrun_utils.py | 15 ++++---- printrun/webinterface.py | 8 ++--- pronsole.py | 5 ++- pronterface.py | 71 ++++++++++++++++++++------------------ setup.py | 7 ++++ 5 files changed, 61 insertions(+), 45 deletions(-) diff --git a/printrun/printrun_utils.py b/printrun/printrun_utils.py index 9f1db0d..4adb25f 100644 --- a/printrun/printrun_utils.py +++ b/printrun/printrun_utils.py @@ -20,15 +20,18 @@ def imagefile(filename): else: return os.path.join(os.path.split(os.path.split(__file__)[0])[0], "images", filename) -def pixmapfile(filename): - for prefix in ['/usr/local/share/pixmaps', '/usr/share/pixmaps']: +def lookup_file(filename, prefixes): + for prefix in prefixes: candidate = os.path.join(prefix, filename) if os.path.exists(candidate): return candidate return filename +def pixmapfile(filename): + return lookup_file(filename, ['/usr/local/share/pixmaps', '/usr/share/pixmaps']) + +def sharedfile(filename): + return lookup_file(filename, ['/usr/local/share/pronterface', '/usr/share/pronterface']) + def configfile(filename): - candidate = os.path.expanduser("~/.printrun/%s" % filename) - if os.path.exists(candidate): - return candidate - return filename + return lookup_file(filename, [os.path.expanduser("~/.printrun/"),]) diff --git a/printrun/webinterface.py b/printrun/webinterface.py index b864652..b419dfc 100644 --- a/printrun/webinterface.py +++ b/printrun/webinterface.py @@ -3,7 +3,7 @@ import pronterface import cherrypy, re, ConfigParser, threading, sys import os.path -from printrun.printrun_utils import configfile +from printrun.printrun_utils import configfile, imagefile, sharedfile users = {} @@ -363,13 +363,13 @@ def StartWebInterfaceThread(webInterface): cherrypy.config.update({'engine.autoreload_on':False}) cherrypy.config.update(configfile("http.config")) conf = {'/css/style.css': {'tools.staticfile.on': True, - 'tools.staticfile.filename': os.path.join(current_dir, 'css/style.css'), + 'tools.staticfile.filename': sharedfile('css/style.css'), }, '/images/control_xy.png': {'tools.staticfile.on': True, - 'tools.staticfile.filename': os.path.join(current_dir, 'images/control_xy.png'), + 'tools.staticfile.filename': imagefile('control_xy.png'), }, '/images/control_z.png': {'tools.staticfile.on': True, - 'tools.staticfile.filename': os.path.join(current_dir, 'images/control_z.png'), + 'tools.staticfile.filename': imagefile('control_z.png'), }} cherrypy.config.update(configfile("http.config")) cherrypy.quickstart(webInterface, '/', config=conf) diff --git a/pronsole.py b/pronsole.py index 3bb10d5..d31508c 100755 --- a/pronsole.py +++ b/pronsole.py @@ -276,6 +276,7 @@ class pronsole(cmd.Cmd): self.helpdict["z_feedrate"] = _("Feedrate for Control Panel Moves in Z (default: 200mm/min)") self.helpdict["final_command"] = _("Executable to run when the print is finished") self.commandprefixes='MGT$' + self.webrequested=False def set_temp_preset(self,key,value): if not key.startswith("bed"): @@ -1210,11 +1211,13 @@ class pronsole(cmd.Cmd): def parse_cmdline(self,args): import getopt - opts,args = getopt.getopt(args, "c:e:h", ["conf=","config=","help"]) + opts,args = getopt.getopt(args, "c:e:h:w", ["conf=","config=","help","web"]) for o,a in opts: #print repr((o,a)) if o in ("-c","--conf","--config"): self.load_rc(a) + elif o in ("-w","--web"): + self.webrequested = True elif o in ("-h","--help"): print "Usage: "+sys.argv[0]+' [-c filename [-c filename2 ... ] ] [-e "command" ...]' print " -c | --conf | --config - override startup .pronsolerc file" diff --git a/pronterface.py b/pronterface.py index 185b6a7..485a654 100755 --- a/pronterface.py +++ b/pronterface.py @@ -53,16 +53,7 @@ from printrun.zbuttons import ZButtons from printrun.graph import Graph from printrun.printrun_utils import pixmapfile, configfile import pronsole - -webavail = False -try : - if webavail: - import cherrypy, printrun.webinterface - from threading import Thread -except: - print _("CherryPy is not installed. Web Interface Disabled.") - webavail = False - + def dosify(name): return os.path.split(name)[1].split(".")[0][:8]+".g" @@ -171,10 +162,21 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.cur_button=None self.hsetpoint=0.0 self.bsetpoint=0.0 - if webavail: - self.webInterface=webinterface.WebInterface(self) - self.webThread = Thread(target=webinterface.StartWebInterfaceThread, args=(self.webInterface, )) - self.webThread.start() + self.webInterface=None + if self.webrequested: + try : + import cherrypy + from printrun import webinterface + except: + print _("CherryPy is not installed. Web Interface Disabled.") + try: + self.webInterface=webinterface.WebInterface(self) + self.webThread=threading.Thread(target=webinterface.StartWebInterfaceThread, args=(self.webInterface, )) + self.webThread.start() + except: + print _("Failed to start web interface") + traceback.print_exc(file = sys.stdout) + self.webInterface = None def startcb(self): self.starttime=time.time() @@ -326,7 +328,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.") except Exception,x: print _("You must enter a temperature. (%s)" % (repr(x),)) - if webavail: + if self.webInterface: self.webInterface.AddLog("You must enter a temperature. (%s)" % (repr(x),)) def do_bedtemp(self,l=""): @@ -344,15 +346,15 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.setbedgui(f) else: print _("Printer is not online.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Printer is not online.") else: print _("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0.") - if webavail: + if self.webInterface: self.webInterface.AddLog("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0.") except: print _("You must enter a temperature.") - if webavail: + if self.webInterface: self.webInterface.AddLog("You must enter a temperature.") def end_macro(self): @@ -373,7 +375,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.delete_macro(macro_name) return print _("Cancelled.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Cancelled.") return self.cur_macro_name = macro_name @@ -393,7 +395,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.capture_skip_newline = True return wx.CallAfter(self.logbox.AppendText,l) - if webavail: + if self.webInterface: self.webInterface.AppendLog(l) def scanserial(self): @@ -416,7 +418,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): projectlayer.setframe(self,self.p).Show() else: print _("Printer is not online.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Printer is not online.") def popmenu(self): @@ -489,7 +491,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): old_def = self.macros[macro] elif len([c for c in macro.encode("ascii","replace") if not c.isalnum() and c != "_"]): print _("Macro name may contain only ASCII alphanumeric symbols and underscores") - if webavail: + if self.webInterface: self.webInterface.AddLog("Macro name may contain only alphanumeric symbols and underscores") return elif hasattr(self.__class__,"do_"+macro): @@ -972,7 +974,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): def help_button(self): print _('Defines custom button. Usage: button "title" [/c "colour"] command') - if webavail: + if self.webInterface: self.webInterface.AddLog('Defines custom button. Usage: button "title" [/c "colour"] command') def do_button(self,argstr): @@ -996,7 +998,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): command=argstr.strip() if num<0 or num>=64: print _("Custom button number should be between 0 and 63") - if webavail: + if self.webInterface: self.webInterface.AddLog("Custom button number should be between 0 and 63") return while num >= len(self.custombuttons): @@ -1264,7 +1266,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.cur_button=None except: print _("event object missing") - if webavail: + if self.webInterface: self.webInterface.AddLog("event object missing") self.cur_button=None raise @@ -1282,7 +1284,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): except: pass self.Destroy() - if webavail: + if self.webInterface: + from printrun import webinterface webinterface.KillWebInterfaceThread() def do_monitor(self,l=""): @@ -1296,16 +1299,16 @@ class PronterWindow(wx.Frame,pronsole.pronsole): wx.CallAfter(self.monitorbox.SetValue,self.monitor_interval>0) except: print _("Invalid period given.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Invalid period given.") self.setmonitor(None) if self.monitor: print _("Monitoring printer.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Monitoring printer.") else: print _("Done monitoring.") - if webavail: + if self.webInterface: self.webInterface.AddLog("Done monitoring.") @@ -1323,7 +1326,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): if not len(command): return wx.CallAfter(self.logbox.AppendText,">>>"+command+"\n") - if webavail: + if self.webInterface: self.webInterface.AppendLog(">>>"+command+"\n") self.onecmd(str(command)) self.commandbox.SetSelection(0,len(command)) @@ -1487,7 +1490,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): import shlex param = self.expandcommand(self.settings.slicecommand).encode() print "Slicing: ",param - if webavail: + if self.webInterface: self.webInterface.AddLog("Slicing: "+param) pararray=[i.replace("$s",self.filename).replace("$o",self.filename.replace(".stl","_export.gcode").replace(".STL","_export.gcode")).encode() for i in shlex.split(param.replace("\\","\\\\").encode())] #print pararray @@ -1500,7 +1503,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.stopsf=1 except: print _("Failed to execute slicing software: ") - if webavail: + if self.webInterface: self.webInterface.AddLog("Failed to execute slicing software: ") self.stopsf=1 traceback.print_exc(file=sys.stdout) @@ -1587,7 +1590,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): Xtot,Ytot,Ztot,Xmin,Xmax,Ymin,Ymax,Zmin,Zmax = pronsole.measurements(self.f) print pronsole.totalelength(self.f), _("mm of filament used in this print\n") print _("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot) - if webavail: + if self.webInterface: self.webInterface.AddLog(_("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot)) print _("the print goes from %f mm to %f mm in Y\nand is %f mm wide\n") % (Ymin, Ymax, Ytot) print _("the print goes from %f mm to %f mm in Z\nand is %f mm high\n") % (Zmin, Zmax, Ztot) @@ -1855,7 +1858,7 @@ class macroed(wx.Dialog): self.callback(self.e.GetValue().split("\n")) def close(self,ev): self.Destroy() - if webavail: + if self.webInterface: webinterface.KillWebInterfaceThread() def unindent(self,text): self.indent_chars = text[:len(text)-len(text.lstrip())] diff --git a/setup.py b/setup.py index f1162ae..f32445e 100755 --- a/setup.py +++ b/setup.py @@ -130,6 +130,13 @@ for basedir, subdirs, files in os.walk("locale"): files = map(lambda x: os.path.join(basedir, x), files) data_files.append ((destpath, files)) +extra_data_dirs = ["css"] +for extra_data_dir in extra_data_dirs: + for basedir, subdirs, files in os.walk(extra_data_dir): + files = map(lambda x: os.path.join(basedir, x), files) + destpath = os.path.join("share", "pronterface", basedir) + data_files.append ((destpath, files)) + setup ( name = "Printrun", description = "Host software for 3D printers", From 72173c6023720d25d63174dfcd3c88a87a0ab1f7 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Tue, 31 Jul 2012 22:37:00 +0200 Subject: [PATCH 09/12] Add CLI parameters for web config files location (if not in ~/.printrun or cwd) Also remove the chdir() to pronterface.py directory --- printrun/webinterface.py | 6 +++--- pronsole.py | 8 +++++++- pronterface.py | 5 +---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/printrun/webinterface.py b/printrun/webinterface.py index b419dfc..a0b605f 100644 --- a/printrun/webinterface.py +++ b/printrun/webinterface.py @@ -241,7 +241,7 @@ class WebInterface(object): config = ConfigParser.SafeConfigParser(allow_no_value=True) else: config = ConfigParser.SafeConfigParser() - config.read(configfile('auth.config')) + config.read(configfile(pface.web_auth_config or 'auth.config')) users[config.get("user", "user")] = config.get("user", "pass") self.pface = pface global gPronterPtr @@ -361,7 +361,7 @@ def KillWebInterfaceThread(): def StartWebInterfaceThread(webInterface): current_dir = os.path.dirname(os.path.abspath(__file__)) cherrypy.config.update({'engine.autoreload_on':False}) - cherrypy.config.update(configfile("http.config")) + cherrypy.config.update(configfile(webInterface.pface.web_config or "http.config")) conf = {'/css/style.css': {'tools.staticfile.on': True, 'tools.staticfile.filename': sharedfile('css/style.css'), }, @@ -371,7 +371,7 @@ def StartWebInterfaceThread(webInterface): '/images/control_z.png': {'tools.staticfile.on': True, 'tools.staticfile.filename': imagefile('control_z.png'), }} - cherrypy.config.update(configfile("http.config")) + cherrypy.config.update(configfile(webInterface.pface.web_config or "http.config")) cherrypy.quickstart(webInterface, '/', config=conf) if __name__ == '__main__': diff --git a/pronsole.py b/pronsole.py index d31508c..a40d6dd 100755 --- a/pronsole.py +++ b/pronsole.py @@ -277,6 +277,8 @@ class pronsole(cmd.Cmd): self.helpdict["final_command"] = _("Executable to run when the print is finished") self.commandprefixes='MGT$' self.webrequested=False + self.web_config=None + self.web_auth_config=None def set_temp_preset(self,key,value): if not key.startswith("bed"): @@ -1211,13 +1213,17 @@ class pronsole(cmd.Cmd): def parse_cmdline(self,args): import getopt - opts,args = getopt.getopt(args, "c:e:h:w", ["conf=","config=","help","web"]) + opts,args = getopt.getopt(args, "c:e:hw", ["conf=","config=","help","web","web-config=", "web-auth-config="]) for o,a in opts: #print repr((o,a)) if o in ("-c","--conf","--config"): self.load_rc(a) elif o in ("-w","--web"): self.webrequested = True + elif o == "--web-config": + self.web_config = a + elif o == "--web-auth-config": + self.web_auth_config = a elif o in ("-h","--help"): print "Usage: "+sys.argv[0]+' [-c filename [-c filename2 ... ] ] [-e "command" ...]' print " -c | --conf | --config - override startup .pronsolerc file" diff --git a/pronterface.py b/pronterface.py index 485a654..ce3a5d0 100755 --- a/pronterface.py +++ b/pronterface.py @@ -28,10 +28,7 @@ except: print _("WX is not installed. This program requires WX to run.") raise import sys, glob, time, threading, traceback, cStringIO, subprocess -try: - os.chdir(os.path.split(__file__)[0]) -except: - pass + StringIO=cStringIO thread=threading.Thread From 9eb3fc68eeecfd585a46e2af67939fc134226073 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Thu, 2 Aug 2012 09:28:39 +0200 Subject: [PATCH 10/12] Fix probable typo and minor cleanup --- pronterface.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pronterface.py b/pronterface.py index ce3a5d0..9e2afb4 100755 --- a/pronterface.py +++ b/pronterface.py @@ -271,7 +271,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): #self.bedtgauge.SetTarget(int(f)) wx.CallAfter(self.graph.SetBedTargetTemperature,int(f)) if f>0: - wx.CallAfter(self.btemp.SetValue,l) + wx.CallAfter(self.btemp.SetValue,str(f)) self.set("last_bed_temperature",str(f)) wx.CallAfter(self.setboff.SetBackgroundColour,"") wx.CallAfter(self.setboff.SetForegroundColour,"") @@ -291,7 +291,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): #self.hottgauge.SetTarget(int(f)) wx.CallAfter(self.graph.SetExtruder0TargetTemperature,int(f)) if f>0: - wx.CallAfter(self.htemp.SetValue,l) + wx.CallAfter(self.htemp.SetValue,str(f)) self.set("last_temperature",str(f)) wx.CallAfter(self.settoff.SetBackgroundColour,"") wx.CallAfter(self.settoff.SetForegroundColour,"") @@ -308,7 +308,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): def do_settemp(self,l=""): try: - if not (l.__class__=="".__class__ or l.__class__==u"".__class__) or (not len(l)): + if not (l.__class__=="".__class__ or l.__class__==u"".__class__) or not l: l=str(self.htemp.GetValue().split()[0]) l=l.lower().replace(",",".") for i in self.temps.keys(): From ffd655d85fd54508db3e9eb109c3fd69d6d7fa38 Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Thu, 2 Aug 2012 18:26:56 +0200 Subject: [PATCH 11/12] Fix typos --- pronterface.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pronterface.py b/pronterface.py index 9e2afb4..0abcd32 100755 --- a/pronterface.py +++ b/pronterface.py @@ -54,7 +54,7 @@ import pronsole def dosify(name): return os.path.split(name)[1].split(".")[0][:8]+".g" -def parse_temperatures_report(report, key): +def parse_temperature_report(report, key): return float(filter(lambda x: x.startswith(key), report.split())[0].split(":")[1].split("/")[0]) class Tee(object): @@ -1413,9 +1413,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole): try: #self.hottgauge.SetValue(parse_temperature_report(self.tempreport, "T:")) wx.CallAfter(self.graph.SetExtruder0Temperature, parse_temperature_report(self.tempreport, "T:")) - wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "T:")) + wx.CallAfter(self.graph.SetBedTemperature, parse_temperature_report(self.tempreport, "B:")) except: - pass + traceback.print_exc() tstring=l.rstrip() #print tstring if (tstring!="ok") and (tstring!="wait") and ("ok T:" not in tstring): From eddb60dc168a7769a523c5a5481b2c1550aabf4b Mon Sep 17 00:00:00 2001 From: Guillaume Seguin Date: Sun, 2 Sep 2012 11:17:08 +0200 Subject: [PATCH 12/12] Fix imports of stlview and projectlayer --- plater.py | 2 +- pronterface.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plater.py b/plater.py index c6f3ba4..7697aee 100755 --- a/plater.py +++ b/plater.py @@ -35,7 +35,7 @@ from printrun.printrun_utils import pixmapfile glview = False if "-nogl" not in sys.argv: try: - import stlview + from printrun import stlview glview = True except: pass diff --git a/pronterface.py b/pronterface.py index 0abcd32..bfe331a 100755 --- a/pronterface.py +++ b/pronterface.py @@ -410,7 +410,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): return baselist+glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*') +glob.glob("/dev/tty.*")+glob.glob("/dev/cu.*")+glob.glob("/dev/rfcomm*") def project(self,event): - import projectlayer + from printrun import projectlayer if(self.p.online): projectlayer.setframe(self,self.p).Show() else: @@ -785,7 +785,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): self.gviz.showall=1 try: raise "" - import stlview + from printrun import stlview self.gwindow=stlview.GCFrame(None, wx.ID_ANY, 'Gcode view, shift to move view, mousewheel to set layer', size=(600,600)) except: self.gwindow=gviz.window([],