+
     BiTC                    z   ^ RI t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RI Ht . ROt. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-Nt. R.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRtNRuNRvNRwNRxNRyNRzNR{NR|NR}NR~NtRR.t]],           ],           ],           R.,           t. ROt/ R{RbRRbRRbRRbRRbRRbRRbRRbR^
bRRbRkRbRWRbR@RbRbRbRRbRRbRRbRRR(RRR/CtR tR t ]! ]4        ! R R]4      tR tR t Rt!RR lt" ! R R]PF                  4      t$]"! ]$]PJ                  R4        ! R R]PL                  4      t']PJ                  t% ! R R](4      t) ! R R]4      t* ! R R]4      t+ ! R R](4      t, ! R R](4      t- ! R R])4      t. ! R R](4      t/ ! R R](4      t0 ! R R](4      t1 ! R R	]0]/4      t2]2t3R t4 ! R R].4      t5 ! R R
]24      t6]6t7RR lt8R t9]R,          t: ]:R8w  d	   ]9! ]:4       R t<R t=R t>Rt?R t@]@! ]]5RR]>4       ]@! ]]6RR]=4       ]AtB]CR8X  d!   R tDR tER tF]E! 4        ]F! 4        ]G! 4        R# R#   ] d    ]! R4        ELri ; i  ]; d    ]! R]:4        Ly] d    ]! R]:,          4        Li ; i)    N)isfilesplitjoin)Path)contextmanager)deepcopy)simpledialogScrolledCanvasTurtleScreen	RawTurtleTurtleShapeVec2Daddshapebgcolorbgpicbyeclearscreen	colormodedelayexitonclick	getcanvas	getshapeslistenmainloopmodeno_animationnuminputonkey
onkeypressonkeyreleaseonscreenclickontimerregister_shaperesetscreen
screensizesavesetupsetworldcoordinates	textinputtitletracerturtlesupdatewindow_heightwindow_widthbackbackward
begin_fill
begin_polybkcircleclear
clearstampclearstampsclonecolordegreesdistancedotdownend_fillend_polyfd	fillcolorfillfillingforwardget_polygetpen	getscreenget_shapepoly	getturtlegotoheading
hideturtlehomehtisdown	isvisibleleftltonclickondrag	onreleasepdpenpencolorpendownpensizepenuppolypospositionpuradiansrightreset
resizemodertseth
setheadingsetpossetpositionsetundobuffersetxsetyshape	shapesizeshapetransformshearfactor
showturtlespeedststampteleporttilt	tiltangletowards
turtlesizeundoundobufferentriesupwidthwritexcorycorwrite_docstringdictdone
Terminator      ?heightg      ?	canvwidthi  
canvheighti,  	leftright	topbottomstandard      ?undobuffersizei  classicblacknoresizevisibleTlanguageenglishexampleturtleturtleexamplescreenscreenzPython Turtle Graphics
using_IDLEFc                 @   \        V R 4      ;_uu_ 4       pVP                  4       pRRR4       / pX F  pVP                  4       pV'       d   VP                  R4      '       d   K4   VP	                  R4      w  rVTP                  4       pTP                  4       pTR9   d   \        T4      pM  RT9   d   \        T4      pM\        T4      p YcT&   K  	  V#   + '       g   i     L; i  \
         d    \        RT : RT: 24        K  i ; i  \
         d     LOi ; i)rN#=zBad line in config-file z:
.)TrueFalseNonez''z"")
open	readlinesstrip
startswithr   
ValueErrorprintevalfloatint)filenamefcfglinescfgdictlinekeyvalues   &      /usr/lib/python3.14/turtle.pyconfig_dictr      s    	h		;;= 
Gzz|ts++	CJC iik99KE%<!%LEJE + , N3 
	  	xEF	  s5   C'C*.DDC'	*DDDDc                 d   R p/ p/ p\        V4      '       d   \        V4      pRV9   d   RVR,          ,          p \        \        4      w  rE\	        WA4      p\        V4      '       d   \        V4      p\        P                  V4       \        P                  V4       R#   \
         d    Rp LWi ; i)z
turtle.cfgimportconfigzturtle_%s.cfg N)r   r   r   __file__r   	Exception_CFGr.   )r   default_cfgcfgdict1cfgdict2headtail	cfg_file2s   &      r   
readconfigr      s     KHHk{+!%(@@8_
+	 iy)KKKK  	s   B B/.B/z"No configfile read, reason unknownc                   \   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tRtV tR# )r   c                0    \         P                  WV34      # N)tuple__new__)clsxys   &&&r   r   Vec2D.__new__   s    }}Sa&))    c                n    \        V ^ ,          V^ ,          ,           V ^,          V^,          ,           4      # r   r   selfothers   &&r   __add__Vec2D.__add__   )    T!WU1X%tAwuQx'788r   c                    \        V\        4      '       d4   V ^ ,          V^ ,          ,          V ^,          V^,          ,          ,           # \        V ^ ,          V,          V ^,          V,          4      # r   )
isinstancer   r   s   &&r   __mul__Vec2D.__mul__   sQ    eU##758#DGE!H$444T!WU]DGEM22r   c                    \        V\        4      '       g   \        V\        4      '       d)   \        V ^ ,          V,          V ^,          V,          4      # \        # r   )r   r   r   r   NotImplementedr   s   &&r   __rmul__Vec2D.__rmul__   s>    eS!!Zu%=%=aQ66r   c                n    \        V ^ ,          V^ ,          ,
          V ^,          V^,          ,
          4      # r   r   r   s   &&r   __sub__Vec2D.__sub__  r   r   c                :    \        V ^ ,          ) V ^,          ) 4      # r   r   r   s   &r   __neg__Vec2D.__neg__  s    d1gXQx((r   c                *    \         P                  ! V !  # r   )mathhypotr   s   &r   __abs__Vec2D.__abs__  s    zz4  r   c                ^   \        V ^,          ) V ^ ,          4      p\        P                  ! V4      p\        P                  ! V4      \        P                  ! V4      rC\        V ^ ,          V,          V^ ,          V,          ,           V ^,          V,          V^,          V,          ,           4      #    )r   r   rb   cossin)r   angleperpcss   &&   r   rotateVec2D.rotate	  sv     d1gXtAw'U#xx1T!WQYtAwqy($q'!)DGAI*=>>r   c                &    V ^ ,          V ^,          3# r    r   s   &r   __getnewargs__Vec2D.__getnewargs__  s    Qa!!r   c                    R V ,          # )z(%.2f,%.2f)r   r   s   &r   __repr__Vec2D.__repr__  s    t##r   r   N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s<     *939)!?"$ $r   c                    \        V P                  4      pVP                  4        V F  p\        W14       K  	  V P                  P                  4        F)  w  rE\        V4      \        P                  8X  g   K%  WQV&   K+  	  R # r   )	list	__bases__reverse__methodDict__dict__itemstypetypesFunctionType)r   _dictbaseList_superr   r   s   &&    r   r  r    s`    CMM"HV# ll((*
;%,,,#J +r   c                 <    / p\        W4       VP                  4       # r   )r  keys)r   r  s   & r   	__methodsr  (  s    E::<r   c                    / p\        W4       / p\        V 4      pVP                  4        F3  pVR ,          R8X  g   VRR R8X  g   Ws9   g   Wv9   d   K)  WG,          WW&   K5  	  VP                  4        FP  w  rRVRV	/p
\	        V\
        4      '       d   \        RVRV/,          p\        XV
4       \        WW,          4       KR  	  R# ):Nr   N_Nmethodfunc	attribute)	r  r  r  r  r   str__stringBodyexecsetattr)	fromClasstoClasstoPartexclude_dict_1r  mfcexr  r  d
execStrings   &&&&        r   __forwardmethodsr$  2  s    G"E
I
Cllnb6S=BrsGsNbmryEI	  vvt,fc""6;HH Z	19- &r   c                   d   a  ] tR tRt o RR ltRR ltR tR tR tR t	R	 t
R
 tR tR tRtV tR# )r
   iG  c                   \         P                  P                  WW#R 7       V P                  4       V n        W#uV n        V n        WEuV n        V n        RV n	        \         P                  ! WVV P                  \         P                  ^R7      V n        \         P                  ! WP                  P                  \         P                  R7      V n        \         P                  ! WP                  P"                  R7      V n        V P                  P'                  V P                   P(                  V P$                  P(                  R7       V P+                  ^ ^^ R7       V P-                  ^ ^^ R7       V P                  P/                  ^V ^^ ^ ^^RR7       V P$                  P/                  ^V ^^ ^^^RR7       V P                   P/                  ^V ^^^ ^^RR7       V P1                  4        V P                  P3                  R	V P4                  4       R
# ))r~   r   white)r~   r   bgreliefborderwidth)commandorient)r+  )xscrollcommandyscrollcommand)weightminsizenewspadxin_padyrowcolumnrowspan
columnspanstickyz<Configure>N)TKFrame__init__winfo_toplevel_rootwindowr~   r   r   r   r(  CanvasSUNKEN_canvas	Scrollbarxview
HORIZONTALhscrollyviewvscroll	configuresetrowconfigurecolumnconfiguregridrd   bindonResize)r   masterr~   r   r   r   s   &&&&&&r   r=  ScrolledCanvas.__init__M  s   
$eC..0"'
DK*3'yyV$(GGBII1N||FLL4F4F+-==:||FLL4F4FGdll.>.>.2ll.>.> 	 	@!Aq1Qq!4q1!!& 	 	Bq1!!& 	 	Bq1!!& 	 	B

mT]];r   Nc                   V'       d   Wn         V'       d   W n        V'       d   W0n        V P                  P	                  VV P                   ) ^,          V P                  ) ^,          V P                   ^,          V P                  ^,          3R7       V P                  P                  RV P                   V P                  ,
          ^,           ,          V P                   ,          4       V P                  P                  RV P                  V P                  ,
          ^,           ,          V P                  ,          4       V P                  4        R# )   )r(  scrollregionr   N)
r   r   r(  rB  configxview_movetor~   yview_movetor   adjustScrollsr   r   r   r(  s   &&&&r   rd   ScrolledCanvas.resetf  s    &N(OGr'+~~oq&84??:JA:M'+~~q'8$//1:L&N 	 	O 	!!#t~~

'BR'G"H?C~~#N 	O!!#t'Cb'H"I>Boo#N 	Or   c                   V P                   P                  4       pV P                   P                  4       pV P                   P                  R V P                  V,
          ,          V P                  ,          4       V P                   P                  R V P                  V,
          ,          V P                  ,          4       WP                  8  g   W P                  8  dI   V P                  P                  ^V ^^^ ^^RR7       V P                  P                  ^V ^^ ^^^RR7       R# V P                  P                  4        V P                  P                  4        R# )r   r1  r2  N)rB  winfo_widthwinfo_heightrV  r   rW  r   rF  rM  rH  grid_forget)r   cwidthcheights   &  r   rX  ScrolledCanvas.adjustScrollsx  s    ))+,,++-!!#t~~f'<"=dnn"LM!!#tw'>"?"OPNN"g&?LL1Dqa%&a  PLL1Dqa%&a  P LL$$&LL$$&r   c                &    V P                  4        R # r   )rX  )r   events   &&r   rO  ScrolledCanvas.onResize  s    r   c                6    V P                   P                  ! V!  # r   )rB  bboxr   argss   &*r   rf  ScrolledCanvas.bbox  s     ||  $''r   c                :    V P                   P                  ! V/ VB # r   )rB  cgetr   rh  kwargss   &*,r   rk  ScrolledCanvas.cget  s     ||  $1&11r   c                >    V P                   P                  ! V/ VB  R # r   )rB  rU  rl  s   &*,r   rU  ScrolledCanvas.config       	T,V,r   c                >    V P                   P                  ! V/ VB  R # r   )rB  rN  rl  s   &*,r   rN  ScrolledCanvas.bind  s     	4*6*r   c                >    V P                   P                  ! V/ VB  R # r   )rB  unbindrl  s   &*,r   ru  ScrolledCanvas.unbind  rq  r   c                :    V P                   P                  4        R # r   )rB  focus_forcer   s   &r   rx  ScrolledCanvas.focus_force  s     	  "r   )	rB  r?  r(  r   r   r   rF  rH  r~   )  i^  iX  rz  NNN)r   r   r   r   r=  rd   rX  rO  rf  rk  rU  rN  ru  rx  r   r   r   s   @r   r
   r
   G  s<     <2$' (
2
-
+
-
# #r   rB  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )_Rooti  c                D    \         P                  P                  V 4       R # r   )r;  Tkr=  r   s   &r   r=  _Root.__init__  s    
tr   c                d    \        WW#V4      V n        V P                  P                  ^RR7       R# )r   both)expandrD   N)r
   rB  pack)r   r~   r   r_  r`  s   &&&&&r   setupcanvas_Root.setupcanvas  s)    %d67K0r   c                    V P                   # r   rB  r   s   &r   
_getcanvas_Root._getcanvas  s    ||r   c                :    V P                  R WW43,          4       R# )z%dx%d%+d%+dN)geometry)r   r~   r   startxstartys   &&&&&r   set_geometry_Root.set_geometry  s    mUF$CCDr   c                *    V P                  R V4       R# )WM_DELETE_WINDOWN)wm_protocol)r   destroys   &&r   	ondestroy_Root.ondestroy  s    +W5r   c                "    V P                  4       # r   )winfo_screenwidthr   s   &r   	win_width_Root.win_width  s    %%''r   c                "    V P                  4       # r   )winfo_screenheightr   s   &r   
win_height_Root.win_height  s    &&((r   r  N)r   r   r   r   r=  r  r  r  r  r  r  r   r   r   s   @r   r}  r}    s.     1E6() )r   r}  c                     a  ] tR tRt o R tR tR tR tR%R ltR t	R%R	 lt
R
 tR tR tR tR&R ltR tR'R ltR'R ltR'R ltR'R ltR tR&R ltR tR tR tR tR tR tR tR tR tR(R lt R  t!R! t"R" t#R(R# lt$R$t%V t&R# ))TurtleScreenBasei  c                l    \         P                  ! ^^V P                  R7      pVP                  4        V# )r   )r~   r   rP  )r;  
PhotoImagecvblank)r   imgs   & r   _blankimageTurtleScreenBase._blankimage  s(     mm!Adgg>		
r   c                D    \         P                  ! WP                  R 7      # ))filerP  )r;  r  r  )r   r   s   &&r   _imageTurtleScreenBase._image  s     }}(77;;r   c                   Wn         \        V\        4      '       d.   V P                   P                  pV P                   P                  pM\        V P                   P                  R 4      4      p\        V P                   P                  R4      4      pV P                   P                  V) ^,          V) ^,          V^,          V^,          3R7       W n        W0n        R;V n        V n	        R# )r~   r   rT  r   N)
r  r   r
   r   r   r   rk  rU  xscaleyscale)r   r  whs   &&  r   r=  TurtleScreenBase.__init__  s    b.))!!A""ADGGLL)*ADGGLL*+AGGNNA2q51"a%Aq!t*ENF$''dkr   c                >    V P                   P                  RRRR7      # )r   r   rD   outline)r   r   r   r   r   r   )r  create_polygonr   s   &r   _createpolyTurtleScreenBase._createpoly  s!     ww%%&8r2%NNr   Nc                   . pV FI  w  rVP                  WP                  ,          4       VP                  V	) V P                  ,          4       KK  	  V P                  P                  ! V.VO5!   Ve   V P                  P                  WR7       Ve   V P                  P                  WR7       Ve   V P                  P                  WR7       V'       d   V P                  P                  V4       R # R # )NrD   )r  r~   appendr  r  r  coordsitemconfigure	tag_raise)
r   polyitem	coordlistrD   r  r~   topclr   r   s
   &&&&&&&   r   	_drawpolyTurtleScreenBase._drawpoly  s     DAIIa++o&IIqb4;;&'  	x%"%GG!!(!6GG!!(!<GG!!(!8GGh' r   c           
     b    V P                   P                  ^ ^ ^ ^ R^\        P                  R7      # )r   r   )rD   r~   capstyle)r  create_liner;  ROUNDr   s   &r   _createlineTurtleScreenBase._createline  s3     ww""1aABa.0hh # 8 	8r   c                   Vep   . pV FI  w  rxVP                  WpP                  ,          4       VP                  V) V P                  ,          4       KK  	  V P                  P                  ! V.VO5!   Ve   V P                  P                  WR7       Ve   V P                  P                  WR7       V'       d   V P                  P                  V4       R # R # )Nr  r  r  )	r   lineitemr  rD   r~   r  r  r   r   s	   &&&&&&   r   	_drawlineTurtleScreenBase._drawline  s      B!		!kk/*		1"t{{*+ " GGNN8)b)GG!!(!6GG!!(!8GGh' r   c                <    V P                   P                  V4       R # r   )r  deleter   items   &&r   _deleteTurtleScreenBase._delete%  s     	tr   c                :    V P                   P                  4        R # r   )r  r.   r   s   &r   _updateTurtleScreenBase._update+  s     	r   c                <    V P                   P                  V4       R # r   )r  afterr   r   s   &&r   _delayTurtleScreenBase._delay0  s    er   c                ~     V P                   P                  V4      pR pV#   \        P                   d    Rp T# i ; iTF)r  	winfo_rgbr;  TclError)r   r;   rgboks   &&  r   _iscolorstringTurtleScreenBase._iscolorstring4  sF    	''##E*CB 	 {{ 	B		s   ! <<c                    Ve/   V P                   P                  VR7       V P                  4        R # V P                   P                  R4      # )N)r(  r(  )r  rU  r  rk  )r   r;   s   &&r   _bgcolorTurtleScreenBase._bgcolor>  s8     GGNNN&LLN77<<%%r   c           	        Vw  rgW`P                   ,          pWpP                  ,          pR RRRRR/pV P                  P                  V^,
          V) W(V,          WTR7      p	V P                  P	                  V	4      w  rrW^,
          3# )rS   swcenterr   rc   se)textanchorrD   font)r  r  r  create_textrf  )r   r_   txtalignr  rZ   r   r   r  r  x0y0x1y1s   &&&&&&        r   _writeTurtleScreenBase._writeG  s    
 OOxWT;ww""1Q33/7 # Fd+Tzr   c                   a a Sf&   S P                   P                  VRV,          4       R # VV 3R lpS P                   P                  VRV,          WT4       R # )N<Button-%s>c                    < SP                   P                  V P                  4      SP                  ,          SP                   P	                  V P
                  4      ) SP                  ,          r!S! W4       R # r   r  canvasxr   r  canvasyr   r  rc  r   r   funr   s   &  r   eventfun+TurtleScreenBase._onclick.<locals>.eventfun^  L    0<11$++= A	r   r  
tag_unbindtag_bindr   r  r  numaddr  s   f&f&& r   _onclickTurtleScreenBase._onclickU  sE     ;GGt]S%89 GGT=3#6Fr   c                   a a Sf&   S P                   P                  VRV,          4       R # VV 3R lpS P                   P                  VRV,          WT4       R # )Nz<Button%s-ButtonRelease>c                    < SP                   P                  V P                  4      SP                  ,          SP                   P	                  V P
                  4      ) SP                  ,          r!S! W4       R # r   r  r   s   &  r   r  -TurtleScreenBase._onrelease.<locals>.eventfunp  r  r   r  r  s   f&f&& r   
_onreleaseTurtleScreenBase._onreleased  sJ     ;GGt%?#%EF GGT#=#C%,r   c                   a a Sf&   S P                   P                  VRV,          4       R # VV 3R lpS P                   P                  VRV,          WT4       R # )Nz<Button%s-Motion>c                   <  SP                   P                  V P                  4      SP                  ,          SP                   P	                  V P
                  4      ) SP                  ,          r!S! W4       R #   \         d     R # i ; ir   )r  r  r   r  r  r   r  r   r   s   &  r   r  *TurtleScreenBase._ondrag.<locals>.eventfun  sc     GGOOEGG4T[[@ GGOOEGG44T[[@ I  s   A4A9 9BBr  r  s   f&f&& r   _ondragTurtleScreenBase._ondragw  sG     ;GGt%83%>? GGT#6#<hLr   c                   a a Sf%   S P                   P                  RV,          4       R # VV 3R lpS P                   P                  RV,          WC4       R # )Nr  c                    < SP                   P                  V P                  4      SP                  ,          SP                   P	                  V P
                  4      ) SP                  ,          r!S! W4       R # r   r  r   s   &  r   r  1TurtleScreenBase._onscreenclick.<locals>.eventfun  r  r   r  ru  rN  )r   r  r	  r
  r  s   ff&& r   _onscreenclickTurtleScreenBase._onscreenclick  s=     ;GGNN=3./ GGLL,h<r   c                   a Sf&   V P                   P                  RV,          R 4       R # V3R lpV P                   P                  RV,          V4       R # )Nz<KeyRelease-%s>c                    < S! 4        R # r   r   rc  r  s   &r   r  0TurtleScreenBase._onkeyrelease.<locals>.eventfun      r   r  r   r  r   r  s   &f& r   _onkeyreleaseTurtleScreenBase._onkeyrelease  s?     ;GGNN,s2D9GGLL*S0(;r   c                4  a SfH   Vf   V P                   P                  RR 4       R # V P                   P                  RV,          R 4       R # V3R lpVf   V P                   P                  RV4       R # V P                   P                  RV,          V4       R # )Nz
<KeyPress>z<KeyPress-%s>c                    < S! 4        R # r   r   r  s   &r   r  .TurtleScreenBase._onkeypress.<locals>.eventfun  r!  r   r  r"  s   &f& r   _onkeypressTurtleScreenBase._onkeypress  sk    
 ;{|T24d;{\84_s2H=r   c                :    V P                   P                  4        R # r   )r  rx  r   s   &r   _listenTurtleScreenBase._listen  s     	r   c                    V^ 8X  d   V P                   P                  V4       R# V P                   P                  W!4       R# r   N)r  
after_idler  r   r  ts   &&&r   _ontimerTurtleScreenBase._ontimer  s-     6GGs#GGMM!!r   c                >    V P                   P                  ^ ^ VR7      # )r   image)r  create_image)r   r6  s   &&r   _createimageTurtleScreenBase._createimage  s      ww##Aq#66r   c                    Vw  rEV P                   P                  WV P                  ,          V) V P                  ,          34       V P                   P	                  WR 7       R# r5  N)r  r  r  r  
itemconfig)r   r  r_   r6  r   r   s   &&&&  r   
_drawimageTurtleScreenBase._drawimage  sH     t$++orDKK/?@A4-r   c                t    V P                   P                  WR 7       V P                   P                  V4       R# r;  )r  r<  	tag_lower)r   r  r6  s   &&&r   	_setbgpicTurtleScreenBase._setbgpic  s+    
 	4-$r   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   _typeTurtleScreenBase._type  s     ww||D!!r   c                    V P                   P                  V4      p\        ^ \        V4      ^4       Uu. uF  q2V,          W#^,           ,          ) 3NK  	  ppV# u upi r   )r  r  rangelen)r   r  r  ipls   &&   r   
_pointlistTurtleScreenBase._pointlist  sR     WW^^D!).q#b'1)=>)=A!urA#wh)=>
 ?s   !Ac                B    V P                   P                  WW43R 7       R# )r  N)r  rU  )r   srx1sry1srx2sry2s   &&&&&r   _setscrollregion!TurtleScreenBase._setscrollregion  s    T$<=r   c                l   V P                   P                  4       pV F  p\        V P                   P                  V4      4      p. pV'       dE   VR ,          w  rxVP	                  Wq,          4       VP	                  W,          4       VR,          pKL  V P                   P                  ! V.VO5!   K  	  R# ):NrS  N:rS  NNN)r  find_allr  r  r  )	r   xscalefactoryscalefactorr  r  coordinatesnewcoordlistr   r   s	   &&&      r   _rescaleTurtleScreenBase._rescale  s      "Dtww~~d34KL"2##A$45##A$45)"oGGNN4/,/ r   c                V   \        V P                  \        4      '       g   V P                  V P                  3# Yu;J d   Tu;J d   f0   M M,V P                  P                  V P                  P                  3# Ve   Wn        Ve   W n        V P                  P                  WV4       R # r   )r   r  r
   r   r   rd   rY  s   &&&&r   _resizeTurtleScreenBase._resize  s}    
 $''>22>>4??220b0077$$dgg&8&888 &N!(OiR0r   c                    V P                   P                  4       pV^8:  d   V P                   R,          pV P                   P                  4       pV^8:  d   V P                   R,          pW3# )r   r~   r   )r  r\  r]  )r   r~   r   s   &  r   _window_sizeTurtleScreenBase._window_size  sZ     ##%A:GGG$E%%'Q;WWX&F}r   c                N    V P                   P                  P                  4        R # r   )r  tkr   r   s   &r   r   TurtleScreenBase.mainloop  s     	

r   c                F    \         P                  ! WV P                  R 7      # ))parent)r	   	askstringr  )r   r+   prompts   &&&r   r*   TurtleScreenBase.textinput'  s     %%eDGGDDr   c           	     J    \         P                  ! WVWEV P                  R 7      # ))initialvalueminvaluemaxvaluerf  )r	   askfloatr  )r   r+   rh  defaultminvalmaxvals   &&&&&&r   r   TurtleScreenBase.numinput6  s%    $ $$U.4,0GG5 	5r   )r   r   r  r  r  )NNNFr   r   Nr{  )'r   r   r   r   r  r  r=  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r(  r+  r2  r8  r=  rA  rD  rK  rR  rZ  r]  r`  r   r*   r   r   r   r   s   @r   r  r    s     <(O
(28(.
&G,&M*=$	<>$
"7
. "
>
01	E5 5r   r  c                       ] tR tRtRtR# )r   iR  r   Nr   r   r   r   r   r   r   r   r   r   R  s     	r   c                       ] tR tRtRtR# )TurtleGraphicsErrori[  r   Nru  r   r   r   rw  rw  [  s    r   rw  c                   4   a  ] tR tRt o RR ltRR ltRtV tR# )r   i`  Nc                    Wn         VR 8X  d#   \        V\        4      '       d   \        V4      pM$VR8X  d   MVR8X  d   . pM\	        RV,          4      hW n        R# )polygonr6  compoundzThere is no shape type %sN)rD  r   r  r   rw  _data)r   type_datas   &&&r   r=  Shape.__init__g  sQ    
I$%%T{gj D%&AE&IJJ
r   c                    V P                   R 8w  d   \        RV P                   ,          4      hVf   TpV P                  P                  WV.4       R# )r{  z Cannot add component to %s ShapeN)rD  rw  r|  r  )r   r^   rD   r  s   &&&&r   addcomponentShape.addcomponentt  sP      ::#%&HBF**'M N N?G

4w/0r   )r|  rD  r   )r   r   r   r   r=  r  r   r   r   s   @r   r   r   `  s     1 1r   c                   L   a  ] tR tRt o R
R ltRR ltR tR tR tR t	R	t
V tR# )Tbufferi  c                N    Wn         R ..V,          V n        RV n        RV n        R # )NFr  )bufsizebufferptrcumulate)r   r  s   &&r   r=  Tbuffer.__init__  s%    vh(r   Nc                    Vf.   \        V P                  4       F  pR .V P                  V&   K  	  MWn        R ..V,          V n        RV n        R # )Nr  )rG  r  r  r  )r   r  rI  s   && r   rd   Tbuffer.reset  sG    ?4<<("&A ) #L 6(W,DKr   c                .   V P                   ^ 8  d   V P                  '       gD   V P                  ^,           V P                   ,          V n        WP                  V P                  &   R# V P                  V P                  ,          P	                  V4       R# R# r.  )r  r  r  r  r  r  s   &&r   pushTbuffer.push  s_    <<!=== HHqLDLL8(,DHH%DHH%,,T2 r   c                    V P                   ^ 8  di   V P                  V P                  ,          pVf   R# R.V P                  V P                  &   V P                  ^,
          V P                   ,          V n        V# R# r.  )r  r  r  r  s   & r   popTbuffer.pop  s^    <<!;;txx(D|)-DHH% HHqLDLL8 r   c                \    V P                   V P                  P                  R .4      ,
          # r   )r  r  countr   s   &r   nr_of_itemsTbuffer.nr_of_items  s"    ||dkk//777r   c                n    \        V P                  4      R ,           \        V P                  4      ,           # ) )r  r  r  r   s   &r   r   Tbuffer.__repr__  s#    4;;#%DHH55r   )r  r  r  r  )
   r   )r   r   r   r   r=  rd   r  r  r  r   r   r   r   s   @r   r  r    s(     
386 6r   r  c                   R  a  ] tR tRt o Rt]R,          ]R,          ]R,          3R ltR tR&R	 ltR
 t	R&R lt
R tR tR&R ltR tR tR tR'R ltR&R lt]R 4       tR tR tR tR tR tR tR(R ltR tR&R ltR'R ltR)R ltR&R  lt R*R! lt!R"R#/R$ lt"]t#]t$]t%]
t&]t'R%t(V t)R# )+r   i  Tr   r   r   c                    \         P                  W4       R \        RR4      R\        RR4      R\        RR4      R\        RR4      R\        RR4      R\        RR4      R\        RV P                  4       4      /V n        R	R
/V n        W n        W@n        \        R,          V n	        . V n
        V P                  4        \        P                  R8X  d=   VP                  4       pVP                  RRRRR4       VP                  RRRRR4       R# R# )arrowrz  r   r6   squaretriangler   r  r6  nopicr   r   darwinwm
attributesr   z-topmost10N)r   r  r   r   r  ))r      )   )r  r  )   )	   )   )   )r  r   ))r  )r  r  )r  r  r   r  )   r  )   r  )r  r  )r  r  )r  r   )r  r  )r  r  )r  r  )r  r  )r   r  )rS  r  )r  )Q#@Q@)Gz. @Q@)r  r  )r  r  r  )Qr  )Qr  )Gz. r  )Q#r  r  )r  r  )r  r  )r  r  )r  r  )g       g      $)r  r  )r  r  )r  r  )r  r  ))r  r  )r  r  )r  r  )r  r  ))r  Gz)r   g'@)r  r  )r   r   )r  r  r  )r  r  )r  r=  r   r  _shapes_bgpics_mode_delayvaluer   
_colormode_keysr7   sysplatformr>  call)r   r  r   r   r   
rootwindows   &&&&& r   r=  TurtleScreen.__init__  s   !!$+ U9.GHU9 /& '
 U9 /H I U9 /) *U9 /+ ,U9.KLU7D,<,<,>?%*  "~
 {+


<<8# **,JOOD,ZEOOD,ZE $r   c                   \         R ,          V n        \         R,          V n        V P                  R4       V P	                  R4      V n        RV n        ^V n        ^ V n        . V n	        V P                  R4       R F  pV P                  RV4       K  	  V P                  R4       V P                  R,           F'  pV P                  RV4       V P                  RV4       K)  	  R\        n        R# )	r   r   allr   r  r'  NNNN)r   rS     )r   r  r  r  r8  _bgpic
_bgpicname_tracing_updatecounter_turtlesr   rU   r    r  r   r   _pen)r   btnr   s   &  r   r7   TurtleScreen.clear  s      ={+U''+!WCLLs# ::a==CJJtS!OOD#& ! r   Nc                   Vf   V P                   # VP                  4       pVR9  d   \        RV,          4      hWn         VR9   di   V P                  V P                  ) ^,          V P
                  ) ^,          V P                  ^,          V P
                  ^,          4       R;V n        V n        V P                  4        R # )NzNo turtle-graphics-mode %sr   r   logoworld)r   r  )	r  lowerrw  rR  r   r   r  r  rd   r   r   s   &&r   r   TurtleScreen.mode  s    , <::zz|44%&BT&IJJ
''!!4>>/1"4t6F6I'+~~q'8$//1:LN(++DK$+

r   c                   V P                  4       R 8w  d   V P                  R 4       \        W1,
          4      p\        WB,
          4      pV P                  4       w  rxV P                  V^,
          V^,
          4       V P                  V P
                  rV P                  V,          V n        V P                  V,          V n        WP                  ,          pV) V P
                  ,          pV P                  V,           pV P                  V,           pV P                  WW4       V P                  V P                  V	,          V P
                  V
,          4       V P                  4        R# )r  N)r   r   r`  r&   r  r  r   r   rR  rZ  r.   )r   llxllyurxuryxspanyspanwxwy	oldxscale	oldyscalerN  rO  rP  rQ  s   &&&&&          r   r)    TurtleScreen.setworldcoordinates#  s    , 99;'!IIgci ci ""$2r"u%#{{DKK9nnu,oo-[[ tdkk!~~$%d$5dkk)+T[[-BCr   c                
   Vf   \        RV P                  V4      4      pMT\        V\        4      '       d   \        RV P                  V4      4      pM"\        V\        4      '       d   \        RV4      pW P
                  V&   R # )Nr6  rz  )r   r  r   r  r   r  )r   namern   s   &&&r   r$   TurtleScreen.register_shapeJ  se    6 ='4;;t#45Es##'4;;u#56Eu%%)U+E"Tr   c                r   \        V4      ^8X  d
   V^ ,          p\        V\        4      '       d<   V P                  V4      '       g   VR8X  d   V# \	        R\        V4      ,          4      h Vw  r#pT P                  R8X  d(   Y#T3 Uu. uF  p\        RT,          4      NK  	  upw  r#p^ Tu;8:  d   ^8:  d'   M M#^ Tu;8:  d   ^8:  d   M M^ Tu;8:  d   ^8:  g   M \	        R\        T4      ,          4      hRY#T3,          #   \
        \        3 d    \	        R\        T4      ,          4      hi ; iu upi )r   r   zbad color string: %sbad color arguments: %sr        o@bad color sequence: %s#%02x%02x%02x)	rH  r   r  r  rw  	TypeErrorr   r  round)r   r;   r   gbr   s   &&    r   	_colorstrTurtleScreen._colorstrn  s    u:?!HEeS!!""5))Ub[)*@3u:*MNN	NGA! ??c!01ay9y!uU1W~y9GA!a3Q!]s]a3%&>U&KLL!** :& 	N%&?#e*&LMM	N :s   ,D D4-D1c           	       a  VP                  R 4      '       g   V# \        V4      ^8X  d&   R Uu. uF  p\        WV^,            ^4      NK  	  ppMR\        V4      ^8X  d1   VR,           Uu. uF  p^\        W,          ^4      ,          NK  	  ppM\        RV,          4      h\        ;QJ d    . V 3R lV 4       F  NK  	  5# ! V 3R lV 4       4      # u upi u upi )r   r   NNzbad colorstring: %sc              3   V   <"   T F  qSP                   ,          ^,          x  K   	  R# 5i)   N)r  ).0r   r   s   & r   	<genexpr>&TurtleScreen._color.<locals>.<genexpr>  s      9b(,,bs   &))r   r  r  )r   rH  r   rw  r   )r   cstrrI  r  r  s   f&   r   _colorTurtleScreen._color  s    s##Kt9>09:	1#dQqSk2&	B:BY!^/3Bx8x!"S"%%%xB8B%&;d&BCCu9b9u9u9b999 ;8s   C+"Cc                    Vf   V P                   # VR8X  d   \        V4      V n         R # V^8X  d   \        V4      V n         R # R # )Nr   )r  r   r   )r   cmodes   &&r   r   TurtleScreen.colormode  s<     =??"C<#ElDOc\!%jDO r   c                    V P                    F.  pVP                  V P                  4       VP                  4        K0  	  R # r   )r  _setmoder  rd   )r   r   s   & r   rd   TurtleScreen.reset  s+     mmFOODJJ'LLN $r   c                    V P                   # r   )r  r   s   &r   r-   TurtleScreen.turtles  s     }}r   c                    V'       d   V P                  V4      pMR pV P                  V4      pVe   V P                  V4      pV# r   )r  r  r  r   rh  r;   s   &* r   r   TurtleScreen.bgcolor  sA     NN4(EEe$KK&Er   c                    Vf   V P                   # \        V4      V n         ^ V n        Ve   \        V4      V n        V P                   '       d   V P	                  4        R # R # r   )r  r   r  r  r.   )r   nr   s   &&&r   r,   TurtleScreen.tracer  sO    & 9== A"5zD===KKM r   c                F    Vf   V P                   # \        V4      V n         R # r   )r  r   r  s   &&r   r   TurtleScreen.delay  s!     =###u:r   c              #     "   V P                  4       p V P                  ^ 4       Rx  V P                  V4       R#   T P                  T4       i ; i5ir.  )r,   )r   r,   s   & r   r   TurtleScreen.no_animation   s=      	 KKNKKDKKs   A< AAAc                    \         P                  '       g   R \         n        \        hV P                  ^ 8  d?   V ;P                  ^,          un        V ;P                  V P                  ,          un        R# R# TN)r   _RUNNINGr   r  r  r   s   &r   _incrementudcTurtleScreen._incrementudc  sS    $$$$(L!==11$4==0 r   c                    V P                   pR V n         V P                  4        F#  pVP                  4        VP                  4        K%  	  Wn         V P	                  4        R# r  )r  r-   _update_data_drawturtler  )r   tracingr1  s   &  r   r.   TurtleScreen.update  sG     --ANNMMO    r   c                0    V P                  4       ^ ,          # r   r`  r   s   &r   r0   TurtleScreen.window_width(         "1%%r   c                0    V P                  4       ^,          # r   r$  r   s   &r   r/   TurtleScreen.window_height1  r&  r   c                    V P                   # r   )r  r   s   &r   r   TurtleScreen.getcanvas:  s     wwr   c                H    \        V P                  P                  4       4      # r   )sortedr  r  r   s   &r   r   TurtleScreen.getshapesF  s     dll'')**r   c                *    V P                  WV4       R # r   )r  r   r  r  r
  s   &&&&r   rU   TurtleScreen.onclickQ  s     	Cc*r   c                    Vf-   W P                   9   d   V P                   P                  V4       M+W P                   9  d   V P                   P                  V4       V P                  W4       R # r   )r  remover  r#  r   r  r   s   &&&r   r   TurtleScreen.onkeyb  sP    . ;jj 

!!#&

"JJc"3$r   c                    Vf-   W P                   9   d   V P                   P                  V4       M/Ve,   W P                   9  d   V P                   P                  V4       V P                  W4       R # r   )r  r2  r  r(  r3  s   &&&r   r    TurtleScreen.onkeypress  sT    2 ;jj 

!!#&_JJ!6JJc""r   c                &    V P                  4        R # r   )r+  )r   xdummyydummys   &&&r   r   TurtleScreen.listen  s     	r   c                (    V P                  W4       R # r   )r2  r0  s   &&&r   r#   TurtleScreen.ontimer  s    & 	cr   c                    Vf   V P                   # WP                  9  d   V P                  V4      V P                  V&   V P                  V P                  V P                  V,          4       Wn         R # r   )r  r  r  rA  r  )r   picnames   &&r   r   TurtleScreen.bgpic  sT    " ???",,&$(KK$8DLL!t{{DLL$9:!r   c                &    V P                  WV4      # r   )r]  rY  s   &&&&r   r&   TurtleScreen.screensize  s    " ||I266r   	overwriteFc                  \        V4      pVP                  P                  4       '       g   \        R VP                   R24      hV'       g&   VP                  4       '       d   \	        RV R24      hVP
                  ;pR9  d   \        RV R24      hV P                  P                  4       pVP                  V4       R# )zThe directory 'z$' does not exist. Cannot save to it.z
The file 'zY' already exists. To overwrite it use the 'overwrite=True' argument of the save function.zUnknown file extension: 'z!', must be one of {'.ps', '.eps'}N>   .ps.eps)
r   rf  existsFileNotFoundErrorFileExistsErrorsuffixr   r  
postscript
write_text)r   r   rB  extrJ  s   &&$  r   r'   TurtleScreen.save  s     >%%''#!(//!2 3& &  X__..!XJ 'G G  ??"C?:+C5 13 3 
 WW'')
J'r   )r  r  r  r  r  r  r  r  r  r  r  r  r  r   NNrs  r   r{  )*r   r   r   r   r  r   r=  r7   r   r)   r$   r  r  r   rd   r-   r   r,   r   r   r   r  r.   r0   r/   r   r   rU   r   r    r   r#   r   r&   r'   r"   r%   r   r   r!   r   r   r   s   @r   r   r     s      H $V,DM&FP< D%N"#H+6	:)*
.8&    &1	&&
	++"%<#@
*"07&(% (B MKKHLr   c            	       z  a  ] tR tRt o R]! RR4      R]! RR4      R]! RR4      /tRt^ t^t]3R lt	R t
R)R
 ltR tR*R ltR tR tR tR tR+RR/V 3R lR llltR tR tR tR tR tR tR tR)R ltR tR tR tR)R  ltR)R! ltR" t R# t!R+R$ lt"R,R% lt#R+R& lt$R)R' lt%]t&]t']t(]t)]t*]t+]t,]t-]!t.R(t/V t0R	# )-
TNavigatori  r   r           r  r  c                    V P                   V n        V P                  V n        Wn        R V n        V P                  4        R V n        V P                  V4       \        P                  V 4       R # r   )
DEFAULT_ANGLEOFFSET_angleOffsetDEFAULT_ANGLEORIENT_angleOrientr  
undobufferr<   r  rP  rd   r  s   &&r   r=  TNavigator.__init__  sT     44 44

dr   c                t    \        R R 4      V n        \        P                  V P                  ,          V n        R# )rQ  N)r   	_positionrP  START_ORIENTATIONr  _orientr   s   &r   rd   TNavigator.reset)  s'    
 sC"44TZZ@r   Nc                    Vf   V P                   # VR9  d   R # Wn         VR9   d   ^ V n        ^V n        R # V P                  R,          V n        RV n        R # )N      @r  )r   r  r  )r  rT  rV  _fullcircler  s   &&r   r  TNavigator._setmode1  sX     <::44
(( !D !D $ 0 0 3D "Dr   c                ~    Wn         R V,          V n        V P                  R8X  d
   ^ V n        R# VR,          V n        R# )ih  r   r_  N)r`  _degreesPerAUr  rT  r   
fullcircles   &&r   _setDegreesPerAUTNavigator._setDegreesPerAU@  s4    % ^::# !D *2Dr   c                (    V P                  V4       R # r   )rf  rd  s   &&r   r<   TNavigator.degreesI  s    , 	j)r   c                D    V P                  \        P                  4       R # r   )rf  r   taur   s   &r   rb   TNavigator.radiansa  s     	dhh'r   c                p    V P                   V P                  V,          ,           pV P                  V4       R # r   )rZ  r\  _goto)r   r=   endes   && r   _goTNavigator._goo  s%    ~~x 77

4r   c                j    WP                   ,          pV P                  P                  V4      V n        R # r   )rc  r\  r   r   r   s   &&r   _rotateTNavigator._rotatet  s&    ###||**51r   c                    Wn         R # r   rZ  )r   ends   &&r   rn  TNavigator._gotoy  s    r   fill_gapFc                $   < V ^8  d   QhRS[ RR/# rS  rz  returnNbool)formatr   s   "r   __annotate__TNavigator.__annotate__}  s     - -D -T -r   c                   Ve   TMV P                   ^ ,          pVe   TMV P                   ^,          p\        WE4      V n         R # r   )rZ  r   )r   r   r   rz  new_xnew_ys   &&&$  r   rv   TNavigator.teleport}  s8     ]q(9]q(9u,r   c                (    V P                  V4       R # r   rp  r   r=   s   &&r   rF   TNavigator.forward  s    * 	r   c                *    V P                  V) 4       R # r   r  r  s   &&r   r1   TNavigator.back  s    $ 	(r   c                *    V P                  V) 4       R # r   rt  rs  s   &&r   rc   TNavigator.right  s    & 	eVr   c                (    V P                  V4       R # r   r  rs  s   &&r   rS   TNavigator.left  s    & 	Ur   c                    V P                   # r   rw  r   s   &r   r_   TNavigator.pos  s     ~~r   c                (    V P                   ^ ,          # r   rw  r   s   &r   r   TNavigator.xcor       ~~a  r   c                (    V P                   ^,          # r   rw  r   s   &r   r   TNavigator.ycor  r  r   c                v    Vf   V P                  \        V!  4       R # V P                  \        W4      4       R # r   )rn  r   )r   r   r   s   &&&r   rL   TNavigator.goto  s)    < 9JJuay!JJuQ{#r   c                L    V P                  ^ ^ 4       V P                  ^ 4       R# r.  )rL   rh   r   s   &r   rO   TNavigator.home&  s     			!Qr   c                \    V P                  \        WP                  ^,          4      4       R# rs  rn  r   rZ  )r   r   s   &&r   rl   TNavigator.setx4  s      	

5NN1-./r   c                ^    V P                  \        V P                  ^ ,          V4      4       R# r.  r  )r   r   s   &&r   rm   TNavigator.setyF  s       	

5*A./r   c                   Ve   \        W4      p\        V\         4      '       d   TpMB\        V\        4      '       d   \        V!  pM"\        V\        4      '       d   VP                  p\        XV P                  ,
          4      # r   )r   r   r   rP  rZ  abs)r   r   r   r_   s   &&& r   r=   TNavigator.distanceX  sd    , =+CaC5!!)C:&&++C3'((r   c                   Ve   \        W4      p\        V\         4      '       d   TpMB\        V\        4      '       d   \        V!  pM"\        V\        4      '       d   VP                  pXV P                  ,
          w  r\        \        P                  ! \        P                  ! W!4      4      ^
4      R,          pW@P                  ,          pV P                  V P                  V,          ,           V P                  ,          # )N     v@)r   r   r   rP  rZ  r  r   r<   atan2rc  rT  rV  r`  )r   r   r   r_   results   &&&  r   ry   TNavigator.towardsx  s    , =+CaC5!!)C:&&++CT^^#t||DJJq$45r:UB$$$!!D$5$5f$<<@P@PPPr   c                "   V P                   w  r\        \        P                  ! \        P                  ! W!4      4      ^
4      R,          pW0P
                  ,          pV P                  V P                  V,          ,           V P                  ,          # )r  r  )	r\  r  r   r<   r  rc  rT  rV  r`  )r   r   r   r  s   &   r   rM   TNavigator.heading  sg     ||t||DJJq$45r:UB$$$!!D$5$5f$<<@P@PPPr   c                    WP                  4       ,
          V P                  ,          pV P                  pW#R ,          ,           V,          VR ,          ,
          pV P                  V4       R# )       @N)rM   rV  r`  rt  )r   to_angler   fulls   &&  r   rh   TNavigator.setheading  sM    . LLN*D,=,==Bw$tBw.Ur   c           	     ~   V P                   '       d.   V P                   P                  R .4       RV P                   n        V P                  4       pVf   V P                  pVfW   \        V4      V P                  ,          p^\        \        ^\        V4      R,          ,           R4      V,          4      ,           pRV,          V,          pRV,          pRV,          \        P                  ! \        P                  ! V4      V P                  ,          4      ,          pV^ 8  d	   V) V) V) rvpV P                  4       p	V P                  4       p
V^ 8X  d   V P                  ^ ^ 4       MV P                  ^ 4       V P                  V4       \        V4       FG  pV P                  V4       V P!                  V4       V P                  ^ 4       V P                  V4       KI  	  V P                  V) 4       V^ 8X  d   V P                  W4       V P                  V4       V P                   '       d   RV P                   n        R# R# )	seqTNg      @g     M@r   r   r  F)rW  r  r  rs   r`  r  r   minr   r   rb   rc  _tracerr  rt  rG  rp  )r   radiusextentstepsrs   fracr  w2ltrdlrI  s   &&&&        r   r6   TNavigator.circle  s   < ???OO  %)'+DOO$

>%%F=v;t///Dc#bVS0$7<==E&L5 1W&L488DLL$4T5G5G$GHHA:rA2s"A\\^[[]A:LLAJJqMRuAJJuHHQKJJqMLLO	 
 	bSA:LL 

5???',DOO$ r   c                    R # r   r   )r   r   s   &&r   rs   TNavigator.speed      r   c                    R # r   r   )r   ar  s   &&&r   r  TNavigator._tracer	  r  r   c                    R # r   r   )r   r  s   &&r   r  TNavigator._delay  r  r   )rT  rV  rc  r`  r  r\  rZ  rW  r   )r  rN  r   )1r   r   r   r   r   r[  DEFAULT_MODErS  rU  r=  rd   r  rf  r<   rb   rp  rt  rn  rv   rF   r1   rc   rS   r_   r   r   rL   rO   rl   rm   r=   ry   rM   rh   r6   rs   r  r  rB   r5   r2   rf   rT   r`   ri   rj   rg   r   r   r   s   @r   rP  rP    s    
 	E#sOE#sOE#sO' L( A#.*0(
2
-5 - -.(**!!!$F0$0$)@!QFQ8=-B>>> 
B	BH	B	BHFKDr   rP  c                     a  ] tR tRt o ]R,          3R lt]R,          ]R,          3R ltRR ltRR	 ltR
 t	R t
R tRR ltR tR tR tRRR/V 3R lR llltR tR tR tRR ltR R ltR!R ltR tR t]t]	t]	t]
t]
t]t]tRt V t!R# )"TPeni  re   c                J    Wn         R V n        \        P                  V 4       R # r   )_resizemoderW  r  _reset)r   re   s   &&r   r=  TPen.__init__  s    %Dr   rZ   rC   c                    ^V n         RV n        Wn        W n        RV n        ^V n        RV n        RV n        RV n        RV n	        ^V n
        R# )r   TrQ  N)r   r   )r   rQ  rQ  r   )_pensize_shown	_pencolor
_fillcolor_drawing_speed_stretchfactor_shearfactor_tilt_shapetrafo_outlinewidth)r   rZ   rC   s   &&&r   r  TPen._reset"  sO    !#&
+r   Nc                |    Vf   V P                   # VP                  4       pVR9   d   V P                  VR7       R # R # )Nre   )autouserr   )r  r  rY   )r   rmodes   &&r   re   TPen.resizemode0  s<    , =###00HHH& 1r   c                J    Vf   V P                   # V P                  VR7       R # )N)r\   )r  rY   )r   r~   s   &&r   r\   TPen.pensizeL  s!    $ === r   c                R    V P                   '       g   R # V P                  RR7       R # )NFr[   r  rY   r   s   &r   r]   
TPen.penupc  s     }}}r   c                R    V P                   '       d   R # V P                  RR7       R # )NTr  r  r   s   &r   r[   TPen.pendownq  s     ===r   c                    V P                   # r   )r  r   s   &r   rQ   TPen.isdown  s     }}r   c           
         R ^ R^
R^R^R^/pVf   V P                   # W9   d
   W!,          pM)RTu;8  d   R8  d   M M\        \        V4      4      pM^ pV P                  VR7       R# )	fastestfastnormalslowslowestNr   g      %@)rs   )r  r   r  rY   )r   rs   speedss   && r   rs   
TPen.speed  sg    6 Avb(1fQ	!M=;;?ME54e%EEur   c                P   V'       dj   \        V4      pV^8X  d   V^ ,          ;r4MV^8X  d   Vw  r4M
V^8X  d   T;r4V P                  X4      pV P                  X4      pV P                  W4R7       R# V P                  V P                  4      V P                  V P
                  4      3# )r   )rZ   rC   N)rH  r  rY   r  r  r  )r   rh  r  pcolorfcolors   &*   r   r;   
TPen.color  s    @ D	AAv"&q')a!%a"&&^^F+F^^F+FHHfH7;;t~~.DOO0LLLr   c                    V'       d8   V P                  V4      pW P                  8X  d   R # V P                  VR7       R # V P                  V P                  4      # )N)rZ   )r  r  rY   r  r  s   &* r   rZ   TPen.pencolor  sC    : NN4(E&HHeH$;;t~~..r   c                    V'       d8   V P                  V4      pW P                  8X  d   R # V P                  VR7       R # V P                  V P                  4      # )N)rC   )r  r  rY   r  r  s   &* r   rC   TPen.fillcolor	  sC    8 NN4(E'HHuH%;;t//r   rz  Fc                $   < V ^8  d   QhRS[ RR/# r|  r~  )r  r   s   "r   r  TPen.__annotate__+	  s     " "D "T "r   c               ~    V P                  4       pV'       d   V P                  R R7       V P                  VR7       R# Fr  N)rQ   rY   )r   r   r   rz  r[   s   &&&$ r   rv   TPen.teleport+	  s.     ++-HHUH#!r   c                *    V P                  R R7       R# )TshownNrY   r   s   &r   rr   TPen.showturtle4	  s     	tr   c                *    V P                  R R7       R# )Fr   Nr  r   s   &r   rN   TPen.hideturtleA	  s     	ur   c                    V P                   # r   )r  r   s   &r   rR   TPen.isvisibleQ	  s     {{r   c                ~   R V P                   RV P                  RV P                  RV P                  RV P                  RV P
                  RV P                  RV P                  RV P                  R	V P                  R
V P                  /pV'       g   V'       g   V# \        V\        4      '       d   TpM/ pVP                  V4       / pV F  pW6,          WV&   K  	  V P                  '       d   V P                  P                  RV34       RpRV9   d   V P                  VR,          8w  d   RpRV9   dT   \        VR,          \         4      '       d   V P#                  VR,          34      VR&   V P                  VR,          8w  d   RpRV9   d   V P                  VR,          8w  d   RpV'       d   V P%                  4        RV9   d   VR,          V n        RV9   d   VR,          V n        RV9   d   VR,          V n        RV9   dH   \        VR,          \         4      '       d   V P#                  VR,          34      VR&   VR,          V n        RV9   d   VR,          V n        RV9   d   VR,          V n        RV9   d/   VR,          p\        V\&        \(        34      '       d   W3pWn        RV9   d   VR,          V n        R	V9   d   VR	,          V n	        R V9   d   VR ,          V n         R
V9   d   VR
,          V n
        RV9   g   R
V9   g   RV9   d   V P                  w  rV P                  p\*        P,                  ! V P                  4      \*        P.                  ! V P                  4      rW,          WV,          V,           ,          V	) V,          WW,          ,
          ,          3V n        V P3                  4        R# )r  r[   rZ   rC   r\   rs   re   stretchfactorrq   r  rw   rY   FTN)r  r  r  r  r  r  r  r  r  r  r  r   dictr.   rW  r  r   r  _newLiner   r   r   r   r   r  r  )r   rY   pendict_pdp_p_bufr   newLinesfscxscyshfsacas   &&,           r   rY   TPen.pen]	  s
   ^ $++$--$..$//$--$++$"2"2$"5"5$"3"3$"4"4$** wJc4  AA	C(FK  ???OO  %1>}}),?!J-// $*/? @*~~:.>}}),MMO>iLDM?z]DN>iLDM!!K.%00!%;0A!B+nDOa<G*DK1 Da?#B"sEl++X"$A !- 0D>!"9Da<G*DKQ;6DJa6Q;-12D**HC##CXXdjj)488DJJ+?!$"frk):!$R36k): <Dr   c                    R # r   r   r   usePoss   &&r   r  TPen._newLine	  r  r   c                    R # r   r   )r   r  forceds   &&&r   r  TPen._update	  r  r   c                    R # r   r   rg  s   &&r   r  TPen._color	  r  r   c                    R # r   r   rg  s   &&r   r  TPen._colorstr	  r  r   )r  r  r  r  r  r  r  r  r  r  r  r  rW  r   rN  Tr  )"r   r   r   r   r   r=  r  re   r\   r]   r[   rQ   rs   r;   rZ   rC   rv   rr   rN   rR   rY   r  r  r  r  r~   r}   ra   rX   r?   rt   rP   r   r   r   s   @r   r  r    s      #'|"4 
 #:.#K0'8 . $L,M\#/J"0H"5 " " 
{~>>>> E	B	B	BD	B	Br   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )_TurtleImagei	  c                B    Wn         R V n        V P                  V4       R # r   )r   rD  	_setshape)r   r   
shapeIndexs   &&&r   r=  _TurtleImage.__init__	  s    
z"r   c                   V P                   pWn        V P                  R u;8X  d%   VP                  V,          P                  8X  d    R#  V P                  Ru;8X  d%   VP                  V,          P                  8X  d    R#  V P                  R9   d   VP	                  V P
                  4       M5V P                  R8X  d%   V P
                   F  pVP	                  V4       K  	  VP                  V,          P                  V n        V P                  R 8X  d   VP                  4       V n        R# V P                  R8X  d4   VP                  VP                  R,          P                  4      V n        R# V P                  R8X  dB   VP                  V,          P                   Uu. uF  q2P                  4       NK  	  upV n        R# R# u upi )rz  Nr6  r{  r  )r6  rz  )	r   r(  rD  r  r  _itemr  r8  r|  )r   r(  r   r  s   &&  r   r'  _TurtleImage._setshape	  sR   $::FfnnZ&@&F&FF G::DFNN:$>$D$DD E::--NN4::&ZZ:%

t$ #^^J/55
::"++-DJZZ7",,V^^G-D-J-JKDJZZ:%*0..*D*J*JL*J 48,,.*JLDJ &Ls   #G)r+  rD  r   r(  N)r   r   r   r   r=  r'  r   r   r   s   @r   r%  r%  	  s     #
L Lr   r%  c                     a  ] tR tRt o . tR]R,          ]R,          ]R,          3R ltR tR tR	 t	R
 t
R tR tR tR=R ltR tR tR tR=RR/V 3R lR llltR tR>R ltR?R ltR>R ltR>R ltR tR@R ltR tR tRAR ltR  tR! tR" tR# t R>R$ lt!R% t"R& t#R' t$RBR( lt%R) t&]'R* 4       t(R+ t)R, t*R>R- lt+R. t,RCR/ lt-]'R0 4       t.R1 t/R2 t0R3 t1R4 t2R5 t3]3t4R>R6 lt5RDR7 lt6RDR8 lt7RDR9 lt8R: t9R; t:]t;R<t<V t=R# )Er   i
  Nrn   r   r   c                8   \        V\        4      '       d   Wn        M\        V\        4      '       d<   V\        P
                  9  d    \        P
                  P                  V4       Wn        M\        V\        \        34      '       dk   \        P
                   F  pVP                  V8X  g   K  WPn         MN	  \        V4      V n        \        P
                  P                  V P                  4       M\        R V,          4      hV P                  p\        P                  WP                  4       4       \        P                  V 4       VP                  P                  V 4       VP!                  4       V n        \%        WR4      V n        RV n        RV n        R;V n        V n        W@n        RV n        VP!                  4       V n        V P6                  .V n        V P4                  .V n        . V n        W0n        \A        V4      V n!        V PE                  4        R# )zbad canvas argument %sNF)#r   _Screenr   r   r   screensr  r
   r@  r  rw  rP  r=  r   r  r  r  drawingLineItemr%  r   _poly_creatingPoly	_fillitem	_fillpathr  _hidden_from_screencurrentLineItemrZ  currentLiner  
stampItems_undobuffersizer  rW  r  )r   canvasrn   r   r   r   s   &&&&& r   r=  RawTurtle.__init__
  s    fg&& K--Y...!!((0 K 899#++99&"(K ,
 +62!!((5%&>&GHHD++-0dt$%113"61
"*..#( %113 NN+**+
-!.1r   c                    \         P                  V 4       \        P                  V 4       V P	                  4        V P                  4        V P                  4        R # r   )rP  rd   r  r  _clearr   r  r   s   &r   rd   RawTurtle.reset<
  s<    & 	Dr   c                N    Ve   V^ 8:  d
   R V n         R # \        V4      V n         R # r   )rW  r  )r   sizes   &&r   rk   RawTurtle.setundobufferU
  s!     <419"DO%dmDOr   c                V    V P                   f   ^ # V P                   P                  4       # r   )rW  r  r   s   &r   r|   RawTurtle.undobufferentriesh
  s$     ??"**,,r   c                   R ;V n         V n        V P                   F  pV P                  P	                  V4       K   	  V P                  P                  4       V n        . V n        V P                  '       d&   V P                  P                  V P                  4       V P                  .V n        V P                  4        V P                  V P                  4       R # r   )r4  r5  r  r   r  r  r7  r8  r  r  rZ  r9   rk   r:  r  s   & r   r>  RawTurtle._clearu
  s    *..JJDKK% #{{668===##DNN3**+
4//0r   c                F    V P                  4        V P                  4        R # r   )r>  r  r   s   &r   r7   RawTurtle.clear
  s     	r   c                8   V P                   P                  4        V P                   P                  ^ 8w  d   R# \        V P                  4      ^8  dI   V P                   P                  V P                  V P                  V P                  V P                  4       R# R# r.  )	r   r  r  rH  r8  r  r7  r  r  r   s   &r   r  RawTurtle._update_data
  so    !!#;;%%*t "KK!!$"6"68H8H"&..$--A #r   c                   V P                   pVP                  ^ 8X  d   R# VP                  ^8X  dN   V P                  4        V P                  4        VP	                  4        VP                  VP                  4       R# V P                  4        VP                  ^ 8X  d:   VP                  4        F  pVP                  4        K  	  VP	                  4        R# R# r.  )	r   r  r  r   r  r  r  r  r-   )r   r   r1  s   &  r   r  RawTurtle._update
  s     ??a__!NNMM&,,-$$))AMMO *  *r   c                8    V P                   P                  W4      # r   )r   r,   )r   flagr   s   &&&r   r  RawTurtle._tracer
  s    & {{!!$..r   c                8    V P                   P                  V4      # r   )r   r  rg  s   &&r   r  RawTurtle._color
  s    {{!!$''r   c                8    V P                   P                  V4      # r   )r   r  rg  s   &&r   r  RawTurtle._colorstr
  s    {{$$T**r   c                   \        V\        4      '       d   V#  Vw  r#pT P
                  P                  R8X  d(   Y#T3 Uu. uF  p\        RT,          4      NK  	  upw  r#p^ Tu;8:  d   ^8:  d'   M M#^ Tu;8:  d   ^8:  d   M M^ Tu;8:  d   ^8:  g   M \	        R\        T4      ,          4      hRY#T3,          #   \        \        3 d    \	        R \        T4      ,          4      hi ; iu upi )r  r   r  r  r  )r   r  r  r   rw  r   r  r  )r   rh  r   r  r  r   s   &&    r   _ccRawTurtle._cc
  s     dC  K	MGA! ;;!!S(01ay9y!uU1W~y9GA!a3Q!]s]a3%&>T&JKK!** :& 	M%&?#d)&KLL	M :s   B<  C,<-C)rz  Fc                $   < V ^8  d   QhRS[ RR/# r|  r~  )r  r   s   "r   r  RawTurtle.__annotate__
  s     . .D .T .r   c                  V P                  4       pV P                  4       pV'       d   V P                  R R7       V'       d   V'       g   V P                  4        Ve   TMV P                  ^ ,          pVe   TMV P                  ^,          p\        Wg4      V n        V P                  VR7       V'       d   V'       g   V P                  4        R# R# R# r  )rQ   rE   rY   r@   rZ  r   r3   )r   r   r   rz  r[   was_fillingr  r  s   &&&$    r   rv   RawTurtle.teleport
  s    F ++-llnHHUH#xMMO]q(9]q(9u,!xOO  (;r   c                   V P                   pV P                  V P                  4       V P                  pR V n         R V n        \	        V 4      pWn         W n        Wn         \        WP                  P                  4      Vn        VP                  P                  V4       VP                  V P                  P                  ,          P                  pVR8X  d!   VP                  4       VP                  n        MVR8X  d=   VP                  VP                  R,          P                  4      VP                  n        MdVR8X  d^   VP                  V P                  P                  ,          P                   Uu. uF  qQP                  4       NK  	  upVP                  n        VP                  4       Vn        VP#                  4        V# u upi )Nrz  r6  r  r{  )r   r  r  r   r   r%  r(  r  r  r  rD  r  r+  r8  r|  r  r7  r  )r   r   r   qttyper  s   &     r   r:   RawTurtle.clone  sM    dmm$TN(>(>?q!t{{556<<I#//1AHHNg#001H1N1NOAHHNj $nnT[[-C-CDJJLJ 8<002JLAHHN"..0				Ls   3Gc                    Vf   V P                   P                  # WP                  P                  4       9   g   \	        RV,          4      hV P                   P                  V4       V P                  4        R # )NzThere is no shape named %s)r   r(  r   r   rw  r'  r  )r   r  s   &&r   rn   RawTurtle.shape.  sX    ( <;;))){{,,..%&BT&IJJd#r   c                J   Yu;J d   Tu;J d   f    M MV P                   w  rWV P                  3# V^ 8X  g   V^ 8X  d   \        R4      hVe   Vf   W3pM*W3pM&Ve   V P                   ^ ,          V3pMV P                   pVf   V P                  pV P                  RWCR7       R # )Nz(stretch_wid/stretch_len must not be zeror  )re   r	  r  )r  r  rw  rY   )r   stretch_widstretch_lenr  r	  s   &&&& r   ro   RawTurtle.shapesizeI  s    * 888'+':':$KT-?-???!{a/%&PQQ"" + 8 + 8$ //2K?M //M?((GF, 	 	?r   c                L    Vf   V P                   # V P                  RVR7       R # )Nr  )re   rq   )r  rY   )r   shears   &&r   rq   RawTurtle.shearfactorq  s%    & =$$$F6r   c                ~   VfV   \         P                  ! V P                  4      ) V P                  ,          pW P                  ,          V P
                  ,          # V) V P                  ,          V P                  ,          p\         P                  ! V4      \         P                  ,          pV P                  RVR7       R # )Nr  )re   rw   )	r   r<   r  rV  rc  r`  rb   rk  rY   )r   r   rw   s   && r   rx   RawTurtle.tiltangle  s    8 =LL,,t/@/@@D---1A1AAA6D...1B1BBD<<%0DHHTH2r   c                P    V P                  WP                  4       ,           4       R # r   )rx   rs  s   &&r   rw   RawTurtle.tilt  s    " 	u~~//0r   c                   Yu;J d   Tu;J d   Tu;J d   f    V P                   #  V P                   w  rVrxVe   TpVe   TpVe   TpVe   TpW,          W#,          ,
          ^ 8X  d   \        R4      hWVWx3V n         \        P                  ! V) V4      \        P                  ,          p	\        P
                  ! V	4      \        P                  ! V	4      rW,          W,          ,
          W,          W,          ,
          W,          W,          ,           W,          W,          ,           3w  rrW3V n        W,          V n        Wn	        V P                  RR7       R # )Nz0Bad shape transform matrix: must not be singularr  r  )r  rw  r   r  rk  r   r   r  r  r  rY   )r   t11t12t21t22m11m12m21m22alfar  r  a11a12a21a22s   &&&&&           r   rp   RawTurtle.shapetransform  s   ( ++++### ,!--#?#C?#C?#C?#C9sy A%%&XYYc/zz3$$txx/$$B frvorv frvorv@#!hG
F#r   c           	        V P                   pV P                  w  r4V P                  w  rV\        WVVP                  ,          VP
                  ,          4      pR \        V4      ,          V,          w  rVV UU	u. uF`  w  rW6V,          WY,          ,           VP
                  ,          ,           WE) V,          Wi,          ,           VP                  ,          ,           3NKb  	  up	p# u up	pi )r   )r   rZ  r\  r   r  r  r  )
r   r^   r   p0p1e0e1er   r   s
   &&        r   
_polytrafoRawTurtle._polytrafo  s     "6==(6==89A,!#IMOIMv T"$Y--r3q5:v}}2L/LMIMO 	O Os   6A&C c                    V P                   P                  V P                  P                  ,          pVP                  R 8X  d*   V P                  VP                  VP                  R8H  4      # R# )rz  r{  N)r   r  r   r(  rD  _getshapepolyr|  )r   rn   s   & r   rJ   RawTurtle.get_shapepoly  sS     ##DKK$:$:;;;)#%%ekk5;;*3LMM $r   c                j  aaaa V P                   R 8X  g	   V'       d   V P                  w  ooooMMV P                   R8X  d*   \        ^V P                  R,          4      pV^ ^ V3w  ooooMV P                   R8X  d   V# \        ;QJ d    . VVVV3R lV 4       F  NK  	  5# ! VVVV3R lV 4       4      # )r  r  g      @r   c              3      <"   T F5  w  rSV,          SV,          ,           SV,          SV,          ,           3x  K7  	  R # 5ir   r   )r  r   r   rn  ro  rp  rq  s   &  r   r  *RawTurtle._getshapepoly.<locals>.<genexpr>  s0     J'c!ec!emSUSU]3's   =A )r  r  maxr  r   )r   rz  r{  r  rn  ro  rp  rq  s   &&& @@@@r   r  RawTurtle._getshapepoly  s     v%!%!1!1Cc3'At}}S()A!"Aq!Cc3+NuJ'JuJuJ'JJJr   c           
        V P                   pVP                  V P                  P                  ,          pVP                  pV P                  P
                  pV P                  '       Edr   VP                  ^ 8X  Ed`   VP                  ^ 8  EdN   RV n	        VP                  pVR8X  d   V P                  R8X  d   ^pM*V P                  R8X  d   V P                  pMV P                  pV P                  V P                  V4      4      pV P                   V P"                  rVP%                  WBWxVRR7       R	# VR8X  d   VP'                  W@P(                  V4       R	# VR8X  dz   \+        WE4       Fh  w  p	w  rpV P                  V P                  V
R4      4      p
VP%                  WV P-                  V4      V P-                  V4      V P                  RR7       Kj  	  R	# R	# V P                  '       d   R	# VR8X  d   VP%                  VRR
R
4       McVR8X  d9   VP'                  W@P(                  VP                  R,          P                  4       M$VR8X  d   V F  p	VP%                  V	RR
R
4       K  	  RV n	        R	# )r   Frz  r   r  TrD   r  r~   r  r6  r{  Nr   r  r  r  r  )r   r  r   r(  rD  r+  r  r  r  r6  r|  r  r  r  r  r  r  r  r  r=  rZ  ziprU  )r   r   rn   r^  titemtshaper  fcocr  r^   s   &          r   r   RawTurtle._drawturtle  s    t{{556!!;;;600A5&//A:M',D$[[F	!##z1q1%%/T]]++a(:(:6(BC$..B  B<=4 ! I'!!!%@*$,/,>(D.4R??4+=+=dD+IJD$$Tdhhrl-1XXb\ASASY] % _ -? % '''	!  (@"bI'!!!%*0..*A*G*GI*$!D$$T+CRL "'+D$r   c           
     $   V P                   pVP                  V P                  P                  ,          pVP                  pVP
                  pVR 8X  d   VP                  4       pV P                  R8X  d   ^pM*V P                  R8X  d   V P                  pMV P                  pV P                  V P                  V4      4      pV P                  V P                  rVP                  WRWxVRR7       MVR8X  d/   VP                  R4      pVP!                  WPP"                  V4       MVR8X  d   . pV F$  p	VP                  4       p
VP%                  V
4       K&  	  \'        V4      p\)        WT4       Fh  w  p
w  rpV P                  V P                  VR4      4      pVP                  WV P+                  V4      V P+                  V4      V P                  RR7       Kj  	  V P,                  P%                  X4       V P.                  P1                  RV34       V# )	rz  r   r  Tr  r6  r   r{  ru   )r   r  r   r(  rD  r|  r  r  r  r  r  r  r  r  r  r8  r=  rZ  r  r   r  rU  r9  rW  r  )r   r   rn   r^  r  stitemr  r  r  elementr  r^   s   &           r   ru   RawTurtle.stamp9  s    t{{556I'')F:-1q!!V+Q''!OOD$6$6v$>?E__dnnV89t  Eg((,Ffnnf=j F!))+d# " 6]F(+F(;$ntt'9'9$'EF  $((2,)-"T=O=OUY ! [ )< 	v&gv./r   c                   WP                   9   dr   \        V\        4      '       d&   V F  pV P                  P	                  V4       K   	  MV P                  P	                  V4       V P                   P                  V4       R V3pV P                  pW4P                  9  d   R# VP                  P                  V4      pVP                  P                  V4       WTP                  8:  d*   VP                  ^,
          VP                  ,          Vn	        VP                  P                  VP                  ^,           VP                  ,          R.4       R# )ru   N)r9  r   r   r   r  r2  rW  r  indexr  r  insert)r   stampidsubitemr  bufr  s   &&    r   _clearstampRawTurtle._clearstampf  s     oo%'5))&GKK''0  ' ##G,OO""7+ !oozz!

  &

$GGww{ckk1CG

37719ckk1D6:r   c                H    V P                  V4       V P                  4        R # r   )r  r  )r   r  s   &&r   r8   RawTurtle.clearstamp|  s     	!r   c                    Vf   V P                   R,          pM&V^ 8  d   V P                   R V pMV P                   VR  pV F  pV P                  V4       K  	  V P                  4        R # )Nr  )r9  r  r  )r   r  toDeleter  s   &&  r   r9   RawTurtle.clearstamps  s_    $ 9q)H!Vr*Hqr*HDT" r   c           	        V P                   V P                  V P                  \        V P                  \
        4      3pV P                  pR V P                  WV P                  V P                  R,          VP                  V P                  4      V P                  R,          33pV P                  '       d   V P                  P                  V4       V P                  pV P                  '       Ed   VP                  ^8X  Edw   W,
          pV^ ,          VP                   ,          ^,          V^,          VP"                  ,          ^,          ,           p^\%        VR,          ^RV P                  ,          ,          V P                  ,          ,          4      ,           pVRV,          ,          p	\'        ^V4       F  p
V
^8X  d   RpMRpWYV
,          ,           V n        V P                   '       d?   VP)                  V P*                  WPP                  3V P                  V P                  V4       V P-                  4        K  	  V P                   '       d*   VP)                  V P*                  R
RV P                  R7       V P                   '       d   V P                  P/                  V4       \        V P                  \
        4      '       d   V P                  P/                  V4       Wn        V P0                  '       d   V P2                  P/                  V4       \5        V P                  4      ^*8  d   V P7                  4        V P-                  4        R	# )gor  r   皙?r   TFr   rD   r~   Nr  r  )r  r  r  r   r5  r  r   rZ  r7  r8  rK  r  rW  r  r  r  r  r  r   rG  r  r1  r  r  r3  r2  rH  r  )r   rx  go_modesr   
undo_entrystartdiffdiffsqnhopsdeltar  r  s   &&          r   rn  RawTurtle._goto  sb    ]]^^]]57 DNNC++&&q)''(<(<=jjm%
 ???OO  ,;;;6??a/ID1gfmm+a/476==3H12LLFc63;C,<)=dkk)IJKKECI&E1e_6CC!&!2===$$T%9%9&+^^%<%)^^T]]CI  % }}}  !5!57G46dmm ! M ===##C(dnnd++NN!!#&JJc"t 2%MMOr   c                P   Vw  r#rEVw  rgrVw  rrV P                   p\        V P                  V,
          4      R 8  d   \        R4       Wn        Wn        VRR.8X  d   RpMTpVP                  WWR7       V P                   Uu. uF&  pVV9  g   K  VP                  V4      R8X  g   K$  VNK(  	  ppV F/  pVP                  V4       V P                  P                  V4       K1  	  TpV P                  '       EdX   VP                  ^8X  EdF   W#,
          pV^ ,          VP                  ,          ^,          V^,          VP                  ,          ^,          ,           p^\        VR ,          ^RV P                  ,          ,          V P                  ,          ,          4      ,           pVRV,          ,          p\!        ^V4       Ff  pV^8X  d   RpMRpVVV,          ,           V n        V'       d+   VP                  V P"                  VV P                  3WxV4       V P%                  4        Kh  	  V'       d    VP                  V P"                  RRVR7       W n        V P&                  '       dT   \)        V P*                  4      ^ 8  d   V P*                  P-                  4        V P*                  . 8X  d   RV n        R	V n        V	'       dM   V P.                  . 8X  d   R	V n        \        R
4       M(V P.                  e   V P.                  P-                  4        V P%                  4        R	# u upi )r   z$undogoto: HALLO-DA-STIMMT-WAS-NICHT!r   r  r   r  r   TFNzUnwahrscheinlich in _undogoto!r  r  )r   r  rZ  r   r7  r8  r  r  rD  r  r2  r  r  r  r  r   rG  r1  r  r3  rH  r2  r  r5  )r   entryoldnewr  coodatadrawingpcpsrE   cLIcLrJ  r  r   usepcrI  todeleter  r  r  r  r  r  r  s   &&                       r   	_undogotoRawTurtle._undogoto  s    ',#(#+ R$t~~#$s*9:"&&!!EEu7#zz Dz!aunA(.Q6(A Az DANN1JJa   ;;;6??a/9D1gfmm+a/476==3H12LLFc63;C,<)=dkk)IJKKECI&E1e_6CC!$uqy$$T%9%9&+T^^%<%'S2  %   !5!57G46b ! B 
 4::"

 zzR%*"!
~~#!%67+""$YDs   	L#L#)L#c                h   V P                   '       d(   V P                   P                  R WP                  34       WP                  ,          pV P                  P	                  V4      pV P
                  P                  pV^8X  d   V P                  ^ 8  d   RV P                  ,          p^\        \        V4      V,          4      ,           pRV,          V,          p\        V4       F3  pV P                  P	                  V4      V n        V P                  4        K5  	  W n        V P                  4        R# )rotg      @r   N)rW  r  rc  r\  r   r   r  r  r   r  rG  r  )r   r   	neworientr!  anglevelr  r  r  s   &&      r   rt  RawTurtle._rotate  s     ???OO  %0B0B!CD###LL''.	++&&a<DKK!OT[[(HCJx/00EIeOE5\#||2259 " !r   c                   \        V P                  4      ^8  d   V P                  P                  V P                  V P                  V P
                  V P                  4       V P                  P                  4       V n        V P                  P                  V P                  4       M'V P                  P                  V P                  RR7       . V n        V'       d   V P                  .V n        R# R# )r   T)r  N)rH  r8  r   r  r7  r  r  r  r  r  rZ  r  s   &&r   r  RawTurtle._newLine/  s    
 t 1$KK!!$"6"68H8H&*nndmmE#';;#:#:#<D JJd223KK!!$"6"6D!A $/D r   c                6    \        V P                  \        4      # r   )r   r5  r  r   s   &r   rE   RawTurtle.filling?  s     $..$//r   c              #     "   V P                  4         R x  V P                  4        R #   T P                  4        i ; i5ir   )r3   r@   r   s   &r   rD   RawTurtle.fillM  s+      		MMODMMO   ?* ?<?c                   V P                  4       '       gE   V P                  P                  4       V n        V P                  P                  V P                  4       V P                  .V n        V P                  4        V P                  '       d(   V P                  P                  R V P                  34       V P                  4        R# )	beginfillN)rE   r   r  r4  r  r  rZ  r5  r  rW  r  r  r   s   &r   r3   RawTurtle.begin_fill_  s}     ||~~![[446DNJJdnn-..)???OO  +t~~!>?r   c                   V P                  4       '       d   \        V P                  4      ^8  dv   V P                  P	                  V P
                  V P                  V P                  R7       V P                  '       d(   V P                  P                  RV P
                  34       R;V n        V n        V P                  4        R# R# )rS  r  dofillN)
rE   rH  r5  r   r  r4  r  rW  r  r  r   s   &r   r@   RawTurtle.end_fills  s     <<>>4>>"Q&%%dnndnn+/?? & <???OO(((DNN)CD.22DNT^LLN r   c                   V'       g   \        V\        \        34      '       d:   V P                  V4      pV P                  \        V P                  ^4      ,           pMxV P                  pV'       g(   V P                  \        V P                  ^4      ,           pM<Vf(   V P                  \        V P                  ^4      ,           pV P                  V4      pV P                  4       pV P                  '       d.   V P                  P                  R.4       RV P                  n
         V P                  4       R8X  d   V P                  4        V P                  4        V P                  V4       V P                  V4       V P!                  ^ 4       V P                  V4       V P                  '       d   RV P                  n
        R# R#   T P                  T4       i ; i)r  Nr  Tr  F)r   r  r   r  r  r  r  rY   rW  r  r  re   rP   r[   r\   rZ   rF   )r   rA  r;   rY   s   &&* r   r>   RawTurtle.dot  sB    $e--t,}}s4==!'<<==3t}}a+@@D|}}s4==!'<<NN5)Ehhj???OO  %)'+DOO$	 F*	LLNLLMM% LLOHHSM???',DOO$  HHSMs   &A(G Gc                "   V P                   P                  V P                  WVV P                  4      w  rEV P	                  4        V P
                  P                  V4       V P                  '       d   V P                  P                  R V34       V# )wri)	r   r  rZ  r  r  r  r  rW  r  )r   r  r  r  r  rx  s   &&&&  r   r  RawTurtle._write  sk     KK&&t~~s4:>..J	

$???OO  %/
r   c                x   V P                   '       d.   V P                   P                  R .4       RV P                   n        V P                  \	        V4      VP                  4       V4      pV'       d$   V P                  4       w  rgV P                  WW4       V P                   '       d   RV P                   n        R# R# )r  TFN)rW  r  r  r  r  r  r_   ri   )r   argmover  r  rx  r   r   s   &&&&&   r   r   RawTurtle.write  s    & ???OO  %)'+DOO$kk#c(EKKM4888:DAKK???',DOO$ r   c              #     "   V P                  4         R x  V P                  4        R #   T P                  4        i ; i5ir   )r4   rA   r   s   &r   r^   RawTurtle.poly  s+      		MMODMMOr  c                8    V P                   .V n        R V n        R# r  )rZ  r2  r3  r   s   &r   r4   RawTurtle.begin_poly  s     nn%
!r   c                    R V n         R# )FN)r3  r   s   &r   rA   RawTurtle.end_poly  s     #r   c                L    V P                   e   \        V P                   4      # R # r   )r2  r   r   s   &r   rG   RawTurtle.get_poly
  s"     ::!$$ "r   c                    V P                   # r   )r   r   s   &r   rI   RawTurtle.getscreen  s     {{r   c                    V # r   r   r   s   &r   rK   RawTurtle.getturtle'  s	     r   c                8    V P                   P                  V4      # r   )r   r   r  s   &&r   r  RawTurtle._delay?  s     {{  ''r   c                    V P                   P                  V P                  P                  WV4       V P	                  4        R # r   )r   r  r   r+  r  r/  s   &&&&r   rU   RawTurtle.onclickD  s-    $ 	T[[..#>r   c                    V P                   P                  V P                  P                  WV4       V P	                  4        R # r   )r   r  r   r+  r  r/  s   &&&&r   rW   RawTurtle.onreleaseY  s-    , 	t{{00#C@r   c                h    V P                   P                  V P                  P                  WV4       R # r   )r   r  r   r+  r/  s   &&&&r   rV   RawTurtle.ondragr  s$    $ 	DKK--s=r   c                   V P                   f   R # VR8X  dK   Vw  r4V P                  V) V,          V P                  ,          4       V P                   P                  4       pR # VR8X  d   V^ ,          pV P	                  V4       R # VR8X  d   V P                  V4       R # VR	9   dB   V^ ,          pV P                  P                  V4       V P                  P                  V4       R # VR8X  d+   V^ ,          pV P                  P                  VR
RRR7       R # VR8X  db   V^ ,          pR ;V n        V n        WpP                  9   d9   V P                  P                  V4       V P                  P                  V4       R # R # VR8X  d9   \        P                  W^ ,          4       V P                   P                  4        R # R # )Nr  ru   r  r  r   r  r  rY   )r  r>   r  )rW  rt  rc  r  r8   r  r   r  r  r2  r  r4  r5  r  rY   )r   actionr~  r   degPAUdummyr  r  s   &&&     r   _undoRawTurtle._undo  se    ??"U? MELL%t'9'99:OO'')Ew!WFOOF#t^NN4 ~%7DKK%JJd#x7DKK!!$(>')2 " 7{"7D.22DNT^zz!##D)

!!$' " u_HHT7#OO! r   c                &   V P                   f   R # V P                   P                  4       pV^ ,          pVR,          pVR8X  d=   V'       d3   VP                  4       pV P                  V^ ,          VR,          4       K:  R # V P                  W#4       R # )Nr  r  )rW  r  r  )r   r  r  r~  s   &   r   r{   RawTurtle.undo  ss    " ??"""$aBxU?xxz

47DH-  JJv$r   )r3  r4  r5  r6  r\  r2  rZ  r  r  r  r  r  r:  r8  r7  r1  r  r   r9  r   rW  rN  r   r{  )NNNN)Fr#  )FrS   )Arialr  r  rs  )>r   r   r   r   r0  r   r=  rd   rk   r|   r>  r7   r  r  r  r  r  rU  rv   r:   rn   ro   rq   rx   rw   rp   r  rJ   r  r   ru   r  r8   r9   rn  r  rt  r  rE   r   rD   r3   r@   r>   r  r   r^   r4   rA   rG   rI   rK   rH   r  rU   rW   rV   r  r{   rz   r   r   r   s   @r   r   r   
  sm    
 G"G} $%5 6i&P2,&-1A!$/*(++.5 . .`&P6&?P7."3H1&%$P
ON"K$,P+Z;,83j?B$0 0  "(()-V	-:  ("#% " F(
*2>*"@%: Jr   c                  l    \         P                  f   \        4       \         n        \         P                  # r   )r   _screenr/  r   r   r   Screenr    s!     ~~ >>r   c                      a  ] tR tRt o RtRt]R,          tR t]R,          ]R,          ]R,          ]R,          3R	 lt	R
 t
R tR tR tRtV tR# )r/  i  Nr+   c                   \         P                  fi   \        4       ;\         n        V n        V P                  P                  \         P                  4       V P                  P                  V P                  4       \         P                  f   \        R,          p\        R,          p\        R,          p\        R,          p\        R,          p\        R,          pV P                  P                  WW44       V P                  P                  4       \         n        \        P                  V \         P                  4       V P                  WWV4       R # R # )Nr~   r   r   r   r   r   )r/  _rootr}  r+   _titler  _destroyrB  r   r  r  r   r=  r(   )r   r~   r   r   r   r   r   s   &      r   r=  _Screen.__init__  s    == ).0GMDJJJW^^,JJ  /??"ME(^F[)Il+J[)I[)IJJ""5)H"jj335GO!!$8JJui; #r   r~   r   r   r   c                   \        V P                  R 4      '       g   R# V P                  P                  4       pV P                  P                  4       p\	        V\
        4      '       d   ^ Tu;8:  d   ^8:  d   M MWQ,          pVf   WQ,
          ^,          p\	        V\
        4      '       d   ^ Tu;8:  d   ^8:  d   M MWb,          pVf   Wb,
          ^,          pV P                  P                  WW44       V P                  4        R# )r  N)hasattrr  r  r  r   r   r  r.   )r   r~   r   r  r  r  shs   &&&&&  r   r(   _Screen.setup  s    2 tzz>22ZZ!!#ZZ""$eU##UaHE>jA%Ffe$$f)9)9YF>kQ&F

v>r   c                ~    \         P                  e    \         P                  P                  V4       V\         n        R # r   )r/  r  r+   r  )r   titlestrings   &&r   r+   _Screen.title  s'     ==$MM,$r   c                    V P                   pV\        P                   J d-   R \        n        R \        n        R \        n         R \        n        R\        n        VP                  4        R # )NF)	r  r/  r   r  r  rB  r   r  r  )r   roots   & r   r   _Screen._destroy"  sD    zz7== FK!FN GM"GO %r   c                &    V P                  4        R # r   )r   r   s   &r   r   _Screen.bye,  s     	r   c                   a  V 3R  lpS P                  V4       \        R,          '       d   R#  \        4        R#   \         d    \	        ^ 4        R# i ; i)c                 (   < SP                  4        R # r   )r   )r   r   r   s   &&r   exitGracefully+_Screen.exitonclick.<locals>.exitGracefullyG  s    HHJr   r   N)rU   r   r   AttributeErrorexit)r   r  s   f r   r   _Screen.exitonclick4  sD    &	 	^$	J 	G	s   
; AA)r  )r   r   r   r   r  rB  r   r  r=  r(   r+   r   r   r   r   r   r   s   @r   r/  r/    sZ     EG']F<" w-X+&tK/@&P%" r   r/  c                   b   a  ] tR tRt o RtRt]R,          ]R,          ]R,          3R ltRtV t	R# )r   iR  Nrn   r   r   c                    \         P                  f   \        4       \         n        \        P	                  V \         P                  VVVR7       R # )N)rn   r   r   )r   r  r  r   r=  )r   rn   r   r   s   &&&&r   r=  Turtle.__init__[  s;     >>!#XFN4!&*8#* 	 	,r   r   )
r   r   r   r   r  r  r   r=  r   r   r   s   @r   r   r   R  s4      DG G} $%5 6i	, 	,r   c           	         / p\          F#  pR V,           p\        V4      P                  W&   K%  	  \         F#  pRV,           p\        V4      P                  W&   K%  	  \	        RV ,          R4      ;_uu_ 4       p\        R V 4       4      pVP                  R4       VRR  FB  pVP                  R\        V4      ,          4       VP                  RW,          ,          4       KD  	  VR,          pVP                  R\        V4      ,          4       VP                  R	W,          ,          4       VP                  R
4       VP                  4        RRR4       R#   + '       g   i     R# ; i)z_Screen.zTurtle.z%s.pyr  c              3   l   "   T F*  pVP                  R 4      ^,          \        9  g   K&  Vx  K,  	  R# 5i)r   N)r   _alias_list)r  r   s   & r   r  &write_docstringdict.<locals>.<genexpr>~  s+      =Aa; as   #4
4zdocsdict = {

Nz%s :
z        """%s
""",

z        """%s
"""

z}
r  )	_tg_screen_functionsr   __doc___tg_turtle_functionsr   r,  r   reprclose)r   docsdict
methodnamer   r   r  s   &     r   r   r   h  s    H*
#S	)) + +

"S	)) + 
g 	%	% = = =	"#9CGGHtCy()GG-=>  2h	49$%	(8=89			 
&	%	%	%s   8CEE+	c                     R RV P                  4       /,          p\        V4      pVP                  pV F  p W4,          \        V4      n        K  	  R#   \
         d    \        RT,          4        K@  i ; i)z!turtle_docstringdict_%(language)sr   zBad docstring-entry: %sN)r  
__import__r!  r   r  r   r   )langmodnamemoduler!  r   s   &    r   read_docstringsr(    sh     2Z

4MMG FH	3 (DI   	3+c12	3s   AA43A4zCannot find docsdict forz;Unknown Error when trying to import %s-docstring-dictionaryc                    \         P                  ! V 4      pVP                  \        VP                  P                  4       4      R ,          R7      p. pVP                  P                  4        EFP  pVP                  ;;\         P                  P                  8X  d   M";\         P                  P                  8X  d   M M  VP                  VP                  4       Kq  ;\         P                  P                  8X  d"    VP                  RVP                   24       K  ;\         P                  P                  8X  d.    VP                  VP                   RVP                   24       K  \         P                  P                  8X  d"   VP                  RVP                   24       EK<   \        RVP                  4      h	  RRP!                  V4       R2p\#        V4      V3# )	r  )
parameters*r   z**zUnsupported parameter kind(z, ))inspect	signaturereplacer  r*  valueskind	ParameterPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr  r  VAR_POSITIONALKEYWORD_ONLYVAR_KEYWORDRuntimeErrorr   r  )oborig_sigfunc_sig	call_argsparam	call_texts   &     r   getmethparlistr@    sp      $H ++2245b9   H I$$++-jj:1!!119'##99:   ,1""11  1UZZL!12/""//  EJJ<q!=>""..  2ejj\!23"#?LL . DIIi()+Ix=)##r   c                     ^ RI pV f   R# \        R,          pV P                  RV,          R4      pVP                  RV,          4      pVP	                  RV4      pV# )r   Nr   %s.r    \(.+ %s\)::rer   r0  compilesub)docstrrF  
turtlename	newdocstrparexps   &    r   _turtle_docreviserM    W     ~o&Juz1"5IZZ34F

3	*Ir   c                     ^ RI pV f   R# \        R,          pV P                  RV,          R4      pVP                  RV,          4      pVP	                  RV4      pV# )r   Nr   rB  r   rC  rD  rE  )rI  rF  
screennamerK  rL  s   &    r   _screen_docreviserQ    rN  r   ar  def {name}{paramslist}:
    if {obj} is None:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        {obj} = {init}
    try:
        return {obj}.{name}{argslist}
    except TK.TclError:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        raise
c           	         V  F  p\        W4      p\        V4      w  rxVR 8X  d   \        RWx4       K0  \        P	                  W#VWxR7      p	\        V	\        4       4       V! VP                  4      \        4       V,          n        K  	  R# )r   z>>>>>>)objinitr  
paramslistargslistN)getattrr@  r   __func_bodyr  r  globalsr  )
	functionsr   rS  rT  	docreviser"  r  pl1pl2defstrs
   &&&&&     r   _make_global_funcsr_    sw    
)!&)"9(C%##Z/2 $ BVWY(1&..(A	*%  r   zTurtle._screenzScreen()zTurtle._penzTurtle()__main__c                  R    \        4       '       d   \        4        R # \        4        R # r   )rQ   ra   rX   r   r   r   	switchpenrb    s    88DDr   c                     \        4        \        R 4       \        4        \        ^d4       \	        4        \        ^4       \        ^4       Fw  p V ^8X  d   \        4        \        ^4       F  p\        ^4       \        ^Z4       K  	  V ^8X  d   \        R4       \        4        \        4        \        ^4       \	        4        Ky  	  \        ^4       \        R4       \        R4       \        4        \        ^Z4       \        ^d4       \        ^Z4       \        ^d4       \        ^4       \	        4        \        R^4       \        R^4       \        R4       \        ^4       F/  p \        ^4       \        ^Z4       \        ^4       \        ^Z4       K1  	  \        R 4       \        4        \        ^4       F/  p \        ^4       \        ^Z4       \        ^4       \        ^Z4       K1  	  \        4        R# )Tmaroonr   F
startstartr  redN)rd   r,   r}   r2   r?   r~   rG  r3   rF   rS   r;   r@   rc   r   )rI  r  s     r   demo1rg    sJ   t
aqAAv1XR  Avh
DBKF  	agu
b	b	c
lAgqeqABKHBK"I	  	tqABKHBK"I	 
 	
r   c                  	   \        ^4       \        4        \        ^4       \        \	        ^ ^ 4      4       \        ^ ^ 4      R,          p \        ^Z4       \        ^4       F  p\        4        \        V ^
4       K  	  \        R4       \        4       '       d   \        4        K  \        4        \        ^Z4       \        ^4       ^
p\!        R4       \        ^4       \        ^4       \        R^4       F  pV^ 8  d-   \#        4        \%        ^^V,          ,
          ^ ^V,          4       \        ^4       F  p\'        V4       \        ^x4       K  	  \)        4        V^
,          p\        ^4       \        \        4       ^,           ^,          4       K  	  \        ^x4       \+        4        \'        ^F4       \        ^4       \-        4        \/        RR4       \        ^ 4       \#        4        \        ^4       F0  p\        ^2^Z4       \        ^Z4       \'        ^4       \        ^Z4       K2  	  \)        4        \        ^Z4       \+        4        \'        ^4       \-        4        \1        R4       \3        4       pVP5                  R4       \7        4       pVP5                  R4       VP1                  R4       VP                  4        VP9                  ^Z4       VP                  ^ 4       VP;                  4        VP=                  R^(4       VP                  ^4       VP?                  4        VP                  ^4       VP/                  R	R
4       VP                  ^4       VP                  ^4       \        \	        V4      4       ^pVP                  V4      ^8  d   VP'                  R4       VP                  R4       VP                  VP	                  V4      4       VP'                  ^4       V^,          ^ 8X  d+   VPA                  4        VPA                  4        \        4        V^,          pK  VP                  RRRR7       VP!                  R4       VP!                  R4       R p\B        PD                  ! ^4       \        4       '       d#   VP                  4        VP                  4        K2  VP'                  ^24       VP                  RRR7       VPG                  V^4       R# )r   r  zwait a moment...greenrf  yellowr   r  i  blueorangeg      @g333333?zCAUGHT! rc   )r  r  r   c                 .    \        4        \        4        R # r   )r   r   )r8  r9  s   &&r   babademo2.<locals>.baba  s    MEr   z  Click me!)r  Nr  )r  r  bold)Courier   rp  )$rs   rt   r\   rh   ry   r=   rf   rG  rb  r6   r   r|   r{   rd   rT   r   rZ   r3   rC   rB   r@   ra   rX   r;   rn   rK   re   r   rS   r}   rL   r?   ru   timesleeprU   )r  r  laengerI  trir   r  rn  s           r   demo2rw  G  sS   a

71a=!!Q#
2rAK62  	 !!!F
2#

3r2A1u#bd(Ar!t,1X6
3  JbLFrF5719b.!  	3

2
2
eHaqA2rNrFrFrF	 
 	

2

2
hkv&!XBQ		C		"QVH%q		!76?#ll6"Q&IIcNIIcNNN3;;v./FF1IrzQ		QJE		*#8	HWU	 	

1!!HHJKKMr
		-(?	AD!r   )	r
   r   r  r   r   RawPenPenr   r   )r   r2   r5   rB   rP   rT   rX   r_   ra   rf   rg   ri   rj   rt   rz   r}   r~   zTdef %(method)s(self, *args, **kw): return self.%(attribute)s.%(method)s(*args, **kw))r   )turtle_docstringdict)Htkinterr;  r	  r   rs  r.  r  os.pathr   r   r   pathlibr   
contextlibr   copyr   r	   _tg_classesr  r  _tg_utilities__all__r  r   r   r   r   r   r   r   r  r  r  r$  r<  r
   r@  r  r}  objectr  r   rw  r   r  r   rP  r  r%  r   rx  r  r/  r   ry  r   r(  	_LANGUAGEImportErrorr@  rM  rQ  rX  r_  r   r   r   rb  rg  rw  r   r   r   r   <module>r     s  J      
 ' '  %   I3
 3I 3w 3 33"3$+3-:3<G333)3+133A3CM3 	3 3  .3 0?3 AJ3 		3 (	3 *6	3 8>	3 @G	3
 	3
  +3
 -43
 6>3
 @I3 	3 "3 $23 ! !
 !L !, ! !!!'!)6!8?!AH!!!$!&,!.8!:D!FJ! 	! ! '! )2! 4>! @H! 		! %	! '2	! 4:	! <E	!
 	!
 !
 #!
 %-!
 /:!
 <B!
 DH! 	! ! )! +/! 16! 8B! DM! 	! ! #! %*! ,6! 8<! >G! IP! 	! !  $! &,! .:! <D! 	! '! )/! 17! 9@! BM! 	! (! *6! 8?! AE! GN! 	! ! (! *3! 5A! CI! 	! "! $+! 	! !  !  '/--0DD(>*,	# 	4	c	 	c	 	T		
 	T	 	
	 	S	 		 	$	 		 	W	 	g	 	z	 	D	 	I	  	!	" 	)e'	,:<1t
*$E *$j1 .*a#RXX a#F I 6)BEE )0 
B5v B5T	) 	) 
)1F )1X"6f "6L_	# _	BC CLR6 RjL6 L>wj wr% 
~l ~@,Y ,(  D3" 	MI	""$H

  
B '#Z1BD ' *.?A z2jaF 
G	GMC My  1	/01vu  1	
$i0 M	HBKL MMs0   K: L :LLL:"L:'L:9L: