OwlCyberSecurity - MANAGER
Edit File: turtle.cpython-38.opt-2.pyc
U ����e5dd1������������������O���@���s2��d�Z�ddlZddlZddlZddlZddlZddlZddlm Z m Z mZ�ddlm Z �ddlmZ�dddd d ddd dg Zdddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZd.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|gOZd}d~gZee�e�e�dg�Zdd/d2d?dLdPdTdZd\dadbdddedpdudxdygZd�d�d�d�ddd�d�d�d�d�d�d�d�d�d�d�d�d�d�d��Zd�d���Zd�d���Zzee��W�n�ek �r���ed���Y�nX�G�d�d��de�Zd�d���Zd�d���Zd�Zd�d�d��ZG�d�d��dej �Z!ee!ej"d���G�d�d���d�ej#�Z$ej"Z"G�d�d���d�e%�Z&G�d�d��de�Z'G�d�d���d�e�Z(G�d�d ��d e%�Z)G�d�d���d�e%�Z*G�d�d��de&�Z+G�d�d���d�e%�Z,G�d�d���d�e%�Z-G�d�d���d�e%�Z.G�d�d ��d e-e,�Z/e/Z0d�d��Z1G�d�d���d�e+�Z2G�d�d ��d e/�Z3e3Z4d�d�d}�Z5d�d���Z6ed��Z7ze7d�k�rne6e7��W�n@�e8k �r����ed�e7��Y�n"�ek �r����ed�e7���Y�nX�d�d���Z9d�d�Z:d�dĄ�Z;d�Z<d�dDŽ�Z=e=ee2d�d�e;��e=ee3d�d�e:��e>Z?e@d�k�r.d�d΄�ZAd�dЄ�ZBd�d҄�ZCeB���eC���eD���dS�)�z-turtle 1.1b- - for Python 3.1 - 4. 5. 2009�����N)�isfile�split�join)�deepcopy)�simpledialog�ScrolledCanvas�TurtleScreen�Screen� RawTurtle�Turtle�RawPen�Pen�Shape�Vec2D�addshape�bgcolor�bgpic�bye�clearscreen� colormode�delay�exitonclick� getcanvas� getshapes�listen�mainloop�mode�numinput�onkey� onkeypress�onkeyrelease� onscreenclick�ontimer�register_shape�resetscreen� screensize�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�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�pos�position�pu�radians�right�reset� resizemode�rt�seth� setheading�setpos�setposition�settiltangle� setundobuffer�setx�sety�shape� shapesize�shapetransform�shearfactor� showturtle�speed�st�stamp�tilt� tiltangle�towards� turtlesize�undo�undobufferentries�up�width�write�xcor�ycor�write_docstringdict�done� Terminator��������?g�������?i���i,���standard��������?� ���i����classic�black�noresizeTZenglish�turtle�screenzPython Turtle GraphicsF)rz����height� canvwidth� canvheight� leftright� topbottomr���r���r����undobuffersizerk���rW���rA���ra����visible�language� exampleturtle� examplescreenr)���� using_IDLEc�������������� ���C���s����t�|�d��}|���}W�5�Q�R�X�i�}|D�]�}|���}|r&|�d�rBq&z|�d�\}}W�n(�tk r|���td|�|f���Y�q&Y�nX�|���}|���}|dkr�t|�}n4zd|kr�t|�}nt |�}W�n�tk r����Y�nX�|||<�q&|S�)N�r�#�=zBad line in config-file %s: %s)�True�False�Nonez''z""�.) �open� readlines�strip� startswithr���� ValueError�print�eval�float�int)�filename�fZcfglines�cfgdict�line�key�value��r�����/usr/lib64/python3.8/turtle.py�config_dict����s0���� r����c�����������������C���s����d}i�}i�}t�|�rt|�}d|kr0d|d��}ztt�\}}t||�}W�n�tk rb���d}Y�nX�t�|�rtt|�}t�|��t�|��d�S�)Nz turtle.cfgZimportconfigz turtle_%s.cfg��)r���r����r����__file__r���� Exception�_CFGr,���)r����Zdefault_cfgZcfgdict1Zcfgdict2�head�tailZ cfg_file2r����r����r����� readconfig����s ���� r����z"No configfile read, reason unknownc�������������������@���s\���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��ZdS�)r���c�����������������C���s���t��|�||f�S��N)�tuple�__new__)�cls�x�yr����r����r����r��������s����z Vec2D.__new__c�����������������C���s"���t�|�d�|d��|�d�|d���S��Nr��������r�����self�otherr����r����r�����__add__����s����z Vec2D.__add__c�����������������C���sD���t�|t�r*|�d�|d��|�d�|d���S�t|�d�|�|�d�|��S�r����)� isinstancer���r����r����r����r�����__mul__����s���� z Vec2D.__mul__c�����������������C���s2���t�|t�st�|t�r.t|�d�|�|�d�|��S�tS�r����)r����r����r����r����NotImplementedr����r����r����r�����__rmul__��s����zVec2D.__rmul__c�����������������C���s"���t�|�d�|d��|�d�|d���S�r����r����r����r����r����r�����__sub__��s����z Vec2D.__sub__c�����������������C���s���t�|�d��|�d���S�r����r�����r����r����r����r�����__neg__��s����z Vec2D.__neg__c�����������������C���s���|�d�d�|�d�d��d�S�)Nr�������r����r����r����r����r����r����r�����__abs__ ��s����z Vec2D.__abs__c�����������������C���sj���t�|�d��|�d��}|tj�d�}t�|�t�|��}}t�|�d�|�|d�|��|�d�|�|d�|���S�)Nr����r����������f@)r����math�pi�cos�sin)r�����angleZperp�c�sr����r����r�����rotate��s����zVec2D.rotatec�����������������C���s���|�d�|�d�fS�r����r����r����r����r����r�����__getnewargs__��s����zVec2D.__getnewargs__c�����������������C���s���d|��S�)Nz(%.2f,%.2f)r����r����r����r����r�����__repr__��s����zVec2D.__repr__N) �__name__� __module__�__qualname__r����r����r����r����r����r����r����r����r����r����r����r����r����r����r�������s���c�����������������C���sT���t�|�j�}|����|D�]}t||��q|�j���D�]\}}t|�tjkr0|||<�q0d�S�r����) �list� __bases__�reverse�__methodDict�__dict__�items�type�types�FunctionType)r�����_dictZbaseListZ_superr����r����r����r����r����r����!��s���� r����c�����������������C���s���i�}t�|�|��|���S�r����)r�����keys)r����r����r����r����r����� __methods+��s���� r����zTdef %(method)s(self, *args, **kw): return self.%(attribute)s.%(method)s(*args, **kw)r����c�����������������C���s����i�}t�||��i�}t|��}|���D�]B}|d�d��dksd|dd���dksd||ksd||krXq"||�||<�q"|���D�]D\}} || d�} t|t�r�t||d��}t|| ��t|�|| |���qnd�S�)Nr�����_���)�method�func)r����Z attribute) r����r����r����r����r�����str�__stringBody�exec�setattr)Z fromClassZtoClassZtoPartZexcludeZ_dict_1r����ZmfcZexr����r�����dZ execStringr����r����r�����__forwardmethods5��s���� 0 � r����c�������������������@���s`���e�Zd�Zddd�Zddd�Zd d ��Zdd��Zd d��Zdd��Zdd��Z dd��Z dd��Zdd��ZdS�)r��������^���X��c�������������� ���C���s0��t�jj|�|||d��|����|�_||�|�_|�_||�|�_|�_d|�_ t�j ||||�j t�jdd�|�_t�j ||�jjt�jd�|�_t�j ||�jjd�|�_|�jj|�jj|�jjd��|�jdd dd ��|�jdd dd ��|�jjd |�d ddd d dd��|�jjd |�d dd d d dd��|�jjd |�d d dd d dd��|�����|�j�d |�j��d�S�)N)rz���r�����whiter����)rz���r�����bgZreliefZborderwidth)�commandZorient)r����)ZxscrollcommandZyscrollcommandr���r����)ZweightZminsize�news�ZpadxZin_Zpady�row�columnZrowspanZ columnspanZstickyz<Configure>)�TK�Frame�__init__�winfo_toplevelZ_rootwindowrz���r����r����r����r�����CanvasZSUNKEN�_canvasZ ScrollbarZxviewZ HORIZONTAL�hscrollZyview�vscrollZ configure�setZrowconfigureZcolumnconfigure�gridr`����bind�onResize)r�����masterrz���r����r����r����r����r����r����r����P��sN���� �����������������zScrolledCanvas.__init__Nc�����������������C���s����|r ||�_�|r||�_|r||�_|�jj||�j��d�|�j�d�|�j�d�|�jd�fd��|�j�d|�j�|�j�d��|�j����|�j�d|�j|�j�d��|�j���|�� ���d�S�)Nr����)r�����scrollregionr��������) r����r����r����r�����config�xview_movetorz����yview_movetor����� adjustScrolls�r����r����r����r����r����r����r����r`���i��s&���������zScrolledCanvas.resetc�������������� ���C���s����|�j����}|�j����}|�j��d|�j|��|�j���|�j��d|�j|��|�j���||�jk�s`||�jk�r�|�jjd|�ddddddd��|�j jd|�ddddddd��n|�j� ���|�j � ���d�S�)Nr����r����r���r����r����)r�����winfo_width�winfo_heightr ��r����r ��r����r����r��r���Zgrid_forget)r�����cwidth�cheightr����r����r����r��{��s&���� �������� zScrolledCanvas.adjustScrollsc�����������������C���s���|������d�S�r����)r��)r�����eventr����r����r����r�����s����zScrolledCanvas.onResizec�����������������G���s���|�j�j|��S�r����)r�����bbox�r�����argsr����r����r����r�����s����zScrolledCanvas.bboxc�����������������O���s���|�j�j||�S�r����)r�����cget�r����r���kwargsr����r����r����r�����s����zScrolledCanvas.cgetc�����������������O���s���|�j�j||��d�S�r����)r����r��r��r����r����r����r�����s����zScrolledCanvas.configc�����������������O���s���|�j�j||��d�S�r����)r����r��r��r����r����r����r�����s����zScrolledCanvas.bindc�����������������O���s���|�j�j||��d�S�r����)r�����unbindr��r����r����r����r�����s����zScrolledCanvas.unbindc�����������������C���s���|�j�����d�S�r����)r�����focus_forcer����r����r����r����r�����s����zScrolledCanvas.focus_force)r����r����r����r����)NNN) r����r����r����r����r`���r��r��r��r��r��r��r��r��r����r����r����r����r���J��s�������� r����c�������������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�_Rootc�����������������C���s���t�j�|���d�S�r����)r�����Tkr����r����r����r����r����r�������s����z_Root.__init__c�����������������C���s&���t�|�||||�|�_|�jjddd��d�S�)Nr����Zboth)�expand�fill)r���r����Zpack)r����rz���r����r��r��r����r����r�����setupcanvas���s����z_Root.setupcanvasc�����������������C���s���|�j�S�r����)r����r����r����r����r����� _getcanvas���s����z_Root._getcanvasc�����������������C���s���|���d||||f���d�S�)Nz%dx%d%+d%+d)Zgeometry)r����rz���r�����startx�startyr����r����r�����set_geometry���s����z_Root.set_geometryc�����������������C���s���|���d|��d�S�)NZWM_DELETE_WINDOW)Zwm_protocol)r�����destroyr����r����r����� ondestroy���s����z_Root.ondestroyc�����������������C���s���|�����S�r����)Zwinfo_screenwidthr����r����r����r����� win_width���s����z_Root.win_widthc�����������������C���s���|�����S�r����)Zwinfo_screenheightr����r����r����r����� win_height���s����z_Root.win_heightN) r����r����r����r����r��r��r"��r$��r%��r&��r����r����r����r����r�����s���r��c�������������������@���s(��e�Zd�Zdd��Zdd��Zdd��Zdd��ZdFdd�Zd d��ZdGdd�Z dd��Z dd��Zdd��Zdd��Z dHdd�Zdd��ZdIdd�ZdJd d!�ZdKd"d#�ZdLd$d%�Zd&d'��ZdMd(d)�Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��Zd:d;��ZdNd<d=�Zd>d?��Z d@dA��Z!dBdC��Z"dOdDdE�Z#d S�)P�TurtleScreenBasec�����������������C���s���t�jdd|�jd�}|����|S�)Nr����)rz���r����r��)r����� PhotoImage�cv�blank)r����Zimgr����r����r�����_blankimage���s����zTurtleScreenBase._blankimagec�����������������C���s���t�j||�jd�S�)N)�filer��)r����r(��r)��)r����r����r����r����r�����_image���s����zTurtleScreenBase._imagec�����������������C���s����||�_�t|t�r"|�j�j}|�j�j}nJt|�j��d��}t|�j��d��}|�j�j|�d�|�d�|d�|d�fd��||�_||�_d�|�_|�_ d�S�)Nrz���r����r�����r��r����) r)��r����r���r����r����r����r��r���xscale�yscale)r����r)���w�hr����r����r����r�������s���� *zTurtleScreenBase.__init__c�����������������C���s���|�j�jdddd�S�)N)r���r���r���r���r���r���r�����r���outline)r)��Zcreate_polygonr����r����r����r�����_createpoly���s����zTurtleScreenBase._createpolyNFc����������� ������C���s����g�}|D�]*\}} |��||�j���|��| �|�j���q|�jj|f|����|d�k r^|�jj||d��|d�k rv|�jj||d��|d�k r�|�jj||d��|r�|�j�|��d�S�)N�r��)r4���rz�����appendr/��r0��r)���coordsZ itemconfigureZ tag_raise) r����Zpolyitem� coordlistr��r4��rz����top�clr����r����r����r����r����� _drawpoly���s����zTurtleScreenBase._drawpolyc�������������� ���C���s���|�j�jddddddtjd�S�)Nr���r����r����)r��rz���Zcapstyle)r)��Zcreate_liner����ZROUNDr����r����r����r�����_createline��s�����zTurtleScreenBase._createlinec����������� ������C���s����|d�k rNg�}|D�]*\}}|��||�j���|��|�|�j���q|�jj|f|����|d�k rf|�jj||d��|d�k r~|�jj||d��|r�|�j�|��d�S�)Nr6��r7��r8��) r����Zlineitemr;��r��rz���r<��r=��r����r����r����r����r����� _drawline��s���� zTurtleScreenBase._drawlinec�����������������C���s���|�j��|��d�S�r����)r)���delete�r�����itemr����r����r�����_delete(��s����zTurtleScreenBase._deletec�����������������C���s���|�j�����d�S�r����)r)��r,���r����r����r����r�����_update.��s����zTurtleScreenBase._updatec�����������������C���s���|�j��|��d�S�r����)r)���after�r����r���r����r����r�����_delay3��s����zTurtleScreenBase._delayc�����������������C���s4���z|�j��|�}d}W�n�tjk r.���d}Y�nX�|S�)NTF)r)��Z winfo_rgbr����ZTclError)r����r9���Zrgb�okr����r����r�����_iscolorstring7��s���� zTurtleScreenBase._iscolorstringc�����������������C���s0���|d�k r |�j�j|d��|�����n|�j��d�S�d�S�)N)r����r����)r)��r��rE��r��)r����r9���r����r����r�����_bgcolorA��s���� zTurtleScreenBase._bgcolorc�����������������C���st���|\}}||�j��}||�j�}dddd�}|�jj|d�|�|||�||d�} |�j�| �\} }}} |�j����| |d�fS�)N�swr����Zse)rP����centerr_���r����)�text�anchorr���font)r/��r0��r)��Zcreate_textr��r,���)r����r[����txt�alignrP��rW���r����r����rO��rC��Zx0Zy0Zx1Zy1r����r����r�����_writeJ��s���� �� zTurtleScreenBase._writer����c��������������������sD�����d�kr�j��|d|���n$���fdd�}�j��|d|�||��d�S�)N�<Button-%s>c��������������������s:����j��|�j��j��j��|�j���j��}}��||��d�S�r�����r)���canvasxr����r/���canvasyr����r0���r��r����r������funr����r����r�����eventfune��s�����z+TurtleScreenBase._onclick.<locals>.eventfun�r)��Z tag_unbindZtag_bind�r����rC��rZ���num�addr[��r����rY��r�����_onclick\��s����zTurtleScreenBase._onclickc��������������������sD�����d�kr�j��|d|���n$���fdd�}�j��|d|�||��d�S�)Nz<Button%s-ButtonRelease>c��������������������s:����j��|�j��j��j��|�j���j��}}��||��d�S�r����rU��rX��rY��r����r����r[��w��s�����z-TurtleScreenBase._onrelease.<locals>.eventfunr\��r]��r����rY��r����� _onreleasek��s���� ��zTurtleScreenBase._onreleasec��������������������sD�����d�kr�j��|d|���n$���fdd�}�j��|d|�||��d�S�)Nz<Button%s-Motion>c��������������������sT���z:�j��|�j��j��j��|�j���j��}}��||��W�n�tk rN���Y�nX�d�S�r����)r)��rV��r����r/��rW��r����r0��r����rX��rY��r����r����r[�����s�����z*TurtleScreenBase._ondrag.<locals>.eventfunr\��r]��r����rY��r�����_ondrag~��s���� zTurtleScreenBase._ondragc��������������������s@�����d�kr�j��d|���n"���fdd�}�j��d|�||��d�S�)NrT��c��������������������s:����j��|�j��j��j��|�j���j��}}��||��d�S�r����rU��rX��rY��r����r����r[�����s�����z1TurtleScreenBase._onscreenclick.<locals>.eventfun�r)��r��r��)r����rZ��r^��r_��r[��r����rY��r�����_onscreenclick���s���� zTurtleScreenBase._onscreenclickc��������������������s>�����d�kr|�j��d|�d���n��fdd�}|�j��d|�|��d�S�)Nz<KeyRelease-%s>c��������������������s ��������d�S�r����r�����r���rZ��r����r����r[�����s����z0TurtleScreenBase._onkeyrelease.<locals>.eventfunrc���r����rZ��r����r[��r����rf��r����� _onkeyrelease���s����zTurtleScreenBase._onkeyreleasec��������������������sn�����d�kr4|d�kr |�j��dd���qj|�j��d|�d���n6��fdd�}|d�krX|�j��d|��n|�j��d|�|��d�S�)Nz <KeyPress>z <KeyPress-%s>c��������������������s ��������d�S�r����r����re��rf��r����r����r[�����s����z.TurtleScreenBase._onkeypress.<locals>.eventfunrc��rg��r����rf��r�����_onkeypress���s����zTurtleScreenBase._onkeypressc�����������������C���s���|�j�����d�S�r����)r)��r��r����r����r����r�����_listen���s����zTurtleScreenBase._listenc�����������������C���s(���|dkr|�j��|��n|�j��||��d�S��Nr���)r)��Z after_idlerF���r����rZ���tr����r����r�����_ontimer���s����zTurtleScreenBase._ontimerc�����������������C���s���|�j�jdd|d�S�)Nr�����image)r)��Zcreate_image)r����rp��r����r����r�����_createimage���s����zTurtleScreenBase._createimagec�����������������C���s<���|\}}|�j��|||�j�|�|�j�f��|�j�j||d��d�S��Nro��)r)��r:��r/��r0��� itemconfig)r����rC��r[���rp��r����r����r����r����r����� _drawimage���s���� zTurtleScreenBase._drawimagec�����������������C���s ���|�j�j||d��|�j��|��d�S�rr��)r)��rs��Z tag_lower)r����rC��rp��r����r����r����� _setbgpic���s����zTurtleScreenBase._setbgpicc�����������������C���s���|�j��|�S�r����)r)��r����rB��r����r����r�����_type���s����zTurtleScreenBase._typec��������������������s.���|�j��|�����fdd�tdt���d�D��}|S�)Nc��������������������s"���g�|�]}��|���|d����f�qS�)r����r������.0�i�r=��r����r����� <listcomp>���s�����z/TurtleScreenBase._pointlist.<locals>.<listcomp>r���r����)r)��r:���range�len)r����rC���plr����rz��r����� _pointlist���s����zTurtleScreenBase._pointlistc�����������������C���s���|�j�j||||fd��d�S�)Nr.��)r)��r��)r�����srx1�sry1�srx2�sry2r����r����r�����_setscrollregion���s����z!TurtleScreenBase._setscrollregionc����������� ������C���s|���|�j����}|D�]h}t|�j��|��}g�}|rd|d�d��\}}|�||���|�||���|dd���}q&|�j�j|f|����qd�S��Nr����)r)��Zfind_allr����r:��r9��) r����ZxscalefactorZyscalefactorr����rC��ZcoordinatesZnewcoordlistr����r����r����r����r�����_rescale���s���� zTurtleScreenBase._rescalec�����������������C���sz���t�|�jt�s|�j|�jfS�||��kr6|��kr6d�krJn�n|�jj|�jjfS�|d�k rX||�_|d�k rf||�_|�j�|||��d�S�r����)r����r)��r���r����r����r`���r��r����r����r�����_resize��s����"zTurtleScreenBase._resizec�����������������C���s@���|�j����}|dkr|�j�d�}|�j����}|dkr8|�j�d�}||fS�)Nr����rz���r����)r)��r ��r��)r����rz���r����r����r����r�����_window_size��s���� zTurtleScreenBase._window_sizec�����������������C���s���|�j�j����d�S�r����)r)��Ztkr���r����r����r����r����r�����s���� zTurtleScreenBase.mainloopc�����������������C���s���t�j|||�jd�S�)N)�parent)r���Z askstringr)��)r����r)����promptr����r����r����r(���.��s���� zTurtleScreenBase.textinputc�����������������C���s���t�j||||||�jd�S�)N)ZinitialvalueZminvalueZmaxvaluer���)r���Zaskfloatr)��)r����r)���r����defaultZminvalZmaxvalr����r����r����r���=��s ���� ��zTurtleScreenBase.numinput)NNNF)NNNF)N)r����N)r����N)r����N)r����N)N)NNN)NNN)$r����r����r����r+��r-��r����r5��r>��r?��r@��rD��rE��rH��rJ��rK��rS��r`��ra��rb��rd��rh��ri��rj��rn��rq��rt��ru��rv��r��r���r���r���r���r���r(���r���r����r����r����r����r'�����sR��� ������� ������� r'��c�������������������@���s���e�Zd�ZdS�)r����N�r����r����r����r����r����r����r����r����Y��s���c�������������������@���s���e�Zd�ZdS�)�TurtleGraphicsErrorNr���r����r����r����r����r���b��s���r���c�������������������@���s ���e�Zd�Zddd�Zddd�ZdS�)r���Nc�����������������C���sz���||�_�|dkr"t|t�rpt|�}nN|dkrVt|t�rp|����d�rpt|�rpt� |�}n|dkrdg�}nt d|���||�_d�S�)N�polygonrp���.gif�compoundzThere is no shape type %s)rv��r����r����r����r�����lower�endswithr���r���r-��r����_data)r����Ztype_�datar����r����r����r����n��s���� zShape.__init__c�����������������C���s:���|�j�dkrtd|�j����|d�kr$|}|�j�|||g��d�S�)Nr���z Cannot add component to %s Shape)rv��r���r���r9��)r�����polyr��r4��r����r����r�����addcomponent~��s���� �zShape.addcomponent)N)N)r����r����r����r����r���r����r����r����r����r���g��s��� c�������������������@���s@���e�Zd�Zddd�Zddd�Zdd��Zd d ��Zdd��Zd d��ZdS�)�Tbufferr����c�����������������C���s$���||�_�d�gg|�|�_d|�_d|�_d�S�)Nr����F)�bufsize�buffer�ptr�cumulate)r����r���r����r����r����r�������s����zTbuffer.__init__Nc�����������������C���sD���|d�kr&t�|�j�D�]}d�g|�j|<�qn||�_d�gg|�|�_d|�_d�S�)Nr����)r|��r���r���r���)r����r���ry��r����r����r����r`������s����z Tbuffer.resetc�����������������C���sF���|�j�dkrB|�js0|�jd�|�j��|�_||�j|�j<�n|�j|�j��|��d�S�r����)r���r���r���r���r9��rB��r����r����r�����push���s ���� zTbuffer.pushc�����������������C���sJ���|�j�dkrF|�j|�j�}|d�kr"d�S�d�g|�j|�j<�|�jd�|�j��|�_|S�d�S�r����)r���r���r���rB��r����r����r�����pop���s���� zTbuffer.popc�����������������C���s���|�j�|�j�d�g��S�r����)r���r����countr����r����r����r�����nr_of_items���s����zTbuffer.nr_of_itemsc�����������������C���s���t�|�j�d�t�|�j��S�)N� )r����r���r���r����r����r����r����r�������s����zTbuffer.__repr__)r����)N) r����r����r����r����r`���r���r���r���r����r����r����r����r����r������s��� r���c�������������������@���s��e�Zd�ZdZed�ed�ed�fdd�Zdd��Zd<d d�Zdd ��Zd=dd�Z dd��Z dd��Zd>dd�Zdd��Z dd��Zdd��Zd?dd�Zd@dd�Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��ZdAd-d.�Zd/d0��ZdBd1d2�ZdCd3d4�ZdDd6d7�ZdEd8d9�ZdFd:d;�ZeZe Z eZ!e Z"eZ#d S�)Gr���Tr���r���r���c�������������� ���C���s����t��|�|��tdd�tdd�tdd�tdd�tdd�tdd�td|�����d �|�_d di|�_||�_||�_td�|�_ g�|�_ |�����tj d kr�|���}|�ddddd��|�ddddd��d�S�)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���r����)r���r���)r���r���)r���r���)r���r���)r����r����)r����r���)r���)��Q�#@���Q�@)�G�z. @��Q��@)r���r���)r���r���r���)���Q��r���)��Q���r���)�G�z. �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������G�z�)r���g�����'@)r���r���)�r���r���)r���r���r���)r���r���rp��)Zarrowr����r4���ZsquareZtriangler����r*���nopicr����r����darwinZwmZ attributesr����z-topmost�1�0)r'��r����r���r+���_shapes�_bgpics�_mode�_delayvaluer����� _colormode�_keysr5����sys�platformr����Zcall)r����r)��r���r���r���Z rootwindowr����r����r����r�������s&����� zTurtleScreen.__init__c�����������������C���s����t�d�|�_t�d�|�_|��d��|��d�|�_d|�_d|�_d|�_g�|�_ |�� d��d D�]}|��d�|��qP|��d���|�j d�d���D�]}|��d�|��|��d�|��qzd�t_d�S�) Nr���r����allr����r���r����r���r����)r����r��������)r����r���r���rD��rq���_bgpic� _bgpicname�_tracing�_updatecounter�_turtlesr���rR���r���r���r���r����_pen)r�����btnr����r����r����r����r5������s ���� zTurtleScreen.clearNc�����������������C���s|���|d�kr|�j�S�|���}|dkr*td|���||�_�|dkrp|��|�j�d�|�j�d�|�jd�|�jd���d�|�_|�_|�����d�S�)N�r�����logo�worldzNo turtle-graphics-mode %s)r����r���r����r����) r���r���r���r���r����r����r/��r0��r`����r����r���r����r����r����r�����s������zTurtleScreen.modec�����������������C���s����|�����dkr|���d��t||��}t||��}|����\}}|��|d�|d���|�j|�j�} } |�j|�|�_|�j|�|�_||�j�}|�|�j�}|�j|�} |�j|�}|��||| |��|�� |�j| �|�j| ���|�� ���d�S�)Nr�������)r���r����r���r%���r/��r0��r����r����r���r���r,���)r����ZllxZllyZurxZuryZxspanZyspanZwxZwyZ oldxscaleZ oldyscaler���r���r���r���r����r����r����r'���-��s ���� z TurtleScreen.setworldcoordinatesc�����������������C���sT���|d�kr2|�����d�r(td|��|��}qFtd��nt|t�rFtd|�}||�j|<�d�S�)Nr���rp��z;Bad arguments for register_shape. Use help(register_shape)r���)r���r���r���r-��r���r����r����r���)r�����namerk���r����r����r����r#���T��s���� zTurtleScreen.register_shapec�������������� ���C���s��t�|�dkr|d�}t|t�rD|��|�s0|dkr4|S�tdt|����z|\}}}W�n(�ttfk rz���tdt|����Y�nX�|�jdkr�dd��|||fD��\}}}d|��kr�d kr�n�n.d|��kr�d kr�n�nd|��kr�d ks�n�td t|����d|||f�S�)Nr����r���r����zbad color string: %s�bad color arguments: %sr����c�����������������S���s���g�|�]}t�d�|���qS��g������o@��round�rx��r����r����r����r����r{�����s�����z*TurtleScreen._colorstr.<locals>.<listcomp>�����bad color sequence: %s� #%02x%02x%02x)r}��r����r����rJ��r���� TypeErrorr����r���)r����r9���r�����g�br����r����r����� _colorstrw��s���� FzTurtleScreen._colorstrc��������������������sx�������d�s��S�t���dkr.��fdd�dD��}n4t���dkrV��fdd���dd���D��}ntd �����t�fd d�|D���S�)Nr����r���c��������������������s"���g�|�]}t���||d����d��qS�)r����r����r����rw����cstrr����r����r{�����s�����z'TurtleScreen._color.<locals>.<listcomp>)r����r���r���r���c��������������������s���g�|�]}d�t���|�d����qS�)r���r���)rx��r2��r���r����r����r{�����s�����r����zbad colorstring: %sc�����������������3���s���|�]}|��j��d��V��qdS�)r���N)r���)rx��r����r����r����r����� <genexpr>���s�����z&TurtleScreen._color.<locals>.<genexpr>)r����r}��r���r����)r����r���r=��r����)r���r����r�����_color���s���� zTurtleScreen._colorc�����������������C���s8���|d�kr|�j�S�|dkr"t|�|�_�n|dkr4t|�|�_�d�S�)Nr����r���)r���r����r����)r����Zcmoder����r����r����r������s����zTurtleScreen.colormodec�����������������C���s$���|�j�D�]}|�|�j��|����qd�S�r����)r����_setmoder���r`���)r����r����r����r����r����r`������s���� zTurtleScreen.resetc�����������������C���s���|�j�S�r����)r���r����r����r����r����r+������s����zTurtleScreen.turtlesc�����������������G���s4���|r|���|�}nd�}|��|�}|d�k r0|��|�}|S�r����)r���rK��r����r����r��r9���r����r����r����r������s���� zTurtleScreen.bgcolorc�����������������C���sB���|d�kr|�j�S�t|�|�_�d|�_|d�k r0t|�|�_|�j�r>|�����d�S�rk��)r���r����r���r���r,���)r�����nr���r����r����r����r*������s���� zTurtleScreen.tracerc�����������������C���s���|d�kr|�j�S�t|�|�_�d�S�r����)r���r����rG��r����r����r����r������s����zTurtleScreen.delayc�����������������C���s<���t�jsdt�_t�|�jdkr8|��jd7��_|��j|�j;��_d�S�)NTr���r����)r����_RUNNINGr����r���r���r����r����r����r����� _incrementudc ��s���� zTurtleScreen._incrementudcc�����������������C���s<���|�j�}d|�_�|����D�]}|����|����q||�_�|�����d�S��NT)r���r+����_update_data�_drawturtlerE��)r�����tracingrm��r����r����r����r,�����s���� zTurtleScreen.updatec�����������������C���s���|�����d�S�rk���r���r����r����r����r����r.�����s����zTurtleScreen.window_widthc�����������������C���s���|�����d�S��Nr����r���r����r����r����r����r-���&��s����zTurtleScreen.window_heightc�����������������C���s���|�j�S�r����)r)��r����r����r����r����r���/��s���� zTurtleScreen.getcanvasc�����������������C���s���t�|�j����S�r����)�sortedr���r����r����r����r����r����r���;��s���� zTurtleScreen.getshapesr����c�����������������C���s���|���|||��d�S�r����)rd���r����rZ��r���r_��r����r����r����rR���F��s����zTurtleScreen.onclickc�����������������C���sF���|d�kr ||�j�kr6|�j��|��n||�j�kr6|�j��|��|��||��d�S�r����)r����remover9��rh���r����rZ��r����r����r����r����r���W��s���� zTurtleScreen.onkeyc�����������������C���sN���|d�kr ||�j�kr>|�j��|��n|d�k r>||�j�kr>|�j��|��|��||��d�S�r����)r���r���r9��ri��r���r����r����r����r���u��s���� zTurtleScreen.onkeypressc�����������������C���s���|������d�S�r����)rj��)r�����xdummy�ydummyr����r����r����r������s���� zTurtleScreen.listenr���c�����������������C���s���|���||��d�S�r����)rn��rl��r����r����r����r"������s����zTurtleScreen.ontimerc�����������������C���sF���|d�kr|�j�S�||�jkr(|��|�|�j|<�|��|�j|�j|���||�_�d�S�r����)r���r���r-��ru��r���)r����Zpicnamer����r����r����r������s���� zTurtleScreen.bgpicc�����������������C���s���|���|||�S�r����)r���r��r����r����r����r%������s����zTurtleScreen.screensize)N)N)N)NN)N)r����N)N)NN)r���)N)NNN)$r����r����r����r���r����r����r5���r���r'���r#���r���r���r���r`���r+���r���r*���r���r���r,���r.���r-���r���r���rR���r���r���r���r"���r���r%���r!���r$���r���r���r ���r����r����r����r����r������sF����� ( "' # c�������������������@���sP��e�Zd�Zedd�edd�edd�d�ZdZdZdZefdd�Zd d ��Z dAdd �Z dd��ZdBdd�Zdd��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��Zd'd(��ZdCd)d*�Zd+d,��Zd-d.��Zd/d0��ZdDd1d2�ZdEd3d4�Zd5d6��Zd7d8��ZdFd9d:�Z dGd;d<�Z!dHd=d>�Z"dId?d@�Z#eZ$eZ%eZ&eZ'eZ(eZ)eZ*eZ+eZ,dS�)J� TNavigatorr�������������)r����r���r���r����r���r����c�����������������C���sB���|�j�|�_|�j|�_||�_d�|�_|�����d�|�_|��|��t� |���d�S�r����) �DEFAULT_ANGLEOFFSET�_angleOffset�DEFAULT_ANGLEORIENT�_angleOrientr���� undobufferr:���r���r���r`���r���r����r����r����r�������s���� zTNavigator.__init__c�����������������C���s���t�dd�|�_tj|�j�|�_d�S�)Nr���)r���� _positionr����START_ORIENTATIONr����_orientr����r����r����r����r`������s����zTNavigator.resetNc�����������������C���sL���|d�kr|�j�S�|dkrd�S�||�_�|dkr6d|�_d|�_n|�jd�|�_d|�_d�S�)Nr���)r����r���r���r�����������@r����)r���r���r���_fullcircler���r����r����r����r�����s����zTNavigator._setmodec�����������������C���s0���||�_�d|�|�_|�jdkr"d|�_n |d�|�_d�S�)Nih��r����r���r��)r��� _degreesPerAUr���r����r����Z fullcircler����r����r�����_setDegreesPerAU��s ���� zTNavigator._setDegreesPerAU�������v@c�����������������C���s���|���|��d�S�r����)r��r ��r����r����r����r:�����s����zTNavigator.degreesc�����������������C���s���|���dtj���d�S�r���)r��r����r����r����r����r����r����r^���5��s����zTNavigator.radiansc�����������������C���s���|�j�|�j|��}|��|��d�S�r����)r��r���_goto)r����r;���Zender����r����r�����_goC��s����zTNavigator._goc�����������������C���s���||�j�9�}|�j�|�|�_d�S�r����)r ��r��r�����r����r����r����r����r�����_rotateH��s���� zTNavigator._rotatec�����������������C���s ���||�_�d�S�r�����r��)r�����endr����r����r����r ��M��s����zTNavigator._gotoc�����������������C���s���|���|��d�S�r�����r���r����r;���r����r����r����rC���Q��s����zTNavigator.forwardc�����������������C���s���|���|���d�S�r����r��r��r����r����r����r/���h��s����zTNavigator.backc�����������������C���s���|���|���d�S�r�����r��r��r����r����r����r_���|��s����zTNavigator.rightc�����������������C���s���|���|��d�S�r����r��r��r����r����r����rP������s����zTNavigator.leftc�����������������C���s���|�j�S�r����r��r����r����r����r����r[������s����zTNavigator.posc�����������������C���s ���|�j�d�S�rk��r��r����r����r����r����r|������s����zTNavigator.xcorc�����������������C���s ���|�j�d�S�r���r��r����r����r����r����r}������s����zTNavigator.ycorc�����������������C���s,���|d�kr|���t|����n|���t||���d�S�r����)r ��r���)r����r����r����r����r����r����rI������s����zTNavigator.gotoc�����������������C���s���|���dd��|��d��d�S�rk��)rI���rd���r����r����r����r����rL������s����zTNavigator.homec�����������������C���s���|���t||�jd����d�S�r����r ��r���r��)r����r����r����r����r����ri�����s����zTNavigator.setxc�����������������C���s���|���t|�jd�|���d�S�rk��r��)r����r����r����r����r����rj�����s����zTNavigator.setyc�����������������C���sT���|d�k rt�||�}t|t��r"|}n$t|t�r6t�|��}nt|t�rF|j}t||�j��S�r����)r���r����r����r���r���abs)r����r����r����r[���r����r����r����r;���%��s���� zTNavigator.distancec�����������������C���s����|d�k rt�||�}t|t��r"|}n$t|t�r6t�|��}nt|t�rF|j}||�j�\}}tt�||�d�tj�d�d�}||�j �}|�j |�j|��|�j�S��Nr����r����r��) r���r����r����r���r��r���r�����atan2r����r ��r���r��r��)r����r����r����r[����resultr����r����r����ru���E��s���� zTNavigator.towardsc�����������������C���sJ���|�j�\}}tt�||�d�tj�d�d�}||�j�}|�j|�j|��|�j�S�r��) r��r���r����r��r����r ��r���r��r��)r����r����r����r��r����r����r����rJ���h��s���� zTNavigator.headingc�����������������C���s>���||������|�j�}|�j}||d��|�|d��}|��|��d�S�)N��������@)rJ���r��r��r��)r����Zto_angler����Zfullr����r����r����rd���w��s����zTNavigator.setheadingc�����������������C���sp��|�j�r|�j��dg��d|�j�_|����}|d�kr2|�j}|d�krjt|�|�j�}dttdt|�d��d�|���}d|�|�}d|�}d |�t� |tj �d �|�j���}|dk�r�|�|�|���}}}|����} |�� ��} |dkr�|��dd��n |��d��|��|��t|�D�].}|��|��|��|��|��d��|��|���q�|��|���|dk�rR|��| | ��|��|��|�j��rld|�j�_d�S�) N�seqTr��������g������@g������M@r����r����r��r����r���F)r��r���r���rp���r��r��r�����minr����r����r����r ���_tracerrH��r��r|��r��)r�����radiusZextent�stepsrp���Zfracr1��Zw2�lZtrZdlry��r����r����r����r4������s>����"" zTNavigator.circlec�����������������C���s���d�S�r����r����)r����r����r����r����r����rp������s����zTNavigator.speedc�����������������C���s���d�S�r����r����)r�����ar���r����r����r����r�����s����zTNavigator._tracerc�����������������C���s���d�S�r����r����)r����r���r����r����r����rH�����s����zTNavigator._delay)N)r��)N)N)N)NN)r���)NN)N)-r����r����r����r���r��ZDEFAULT_MODEr���r��r����r`���r���r��r:���r^���r��r��r ��rC���r/���r_���rP���r[���r|���r}���rI���rL���ri���rj���r;���ru���rJ���rd���r4���rp���r��rH��r@���r3���r0���rb���rQ���r\���re���rf���rc���r����r����r����r����r������sX���� # # A r���c�������������������@���s����e�Zd�Zed�fdd�Zed�ed�fdd�Zd-d d �Zd.dd�Zd d��Zdd��Z dd��Z d/dd�Zdd��Zdd��Z dd��Zdd��Zdd��Zdd ��Zd0d!d"�Zd1d$d%�Zd2d'd(�Zd)d*��Zd+d,��ZeZeZeZe Ze ZeZeZdS�)3�TPenra���c�����������������C���s���||�_�d�|�_t�|���d�S�r����)�_resizemoder��r$���_reset)r����ra���r����r����r����r�������s����z TPen.__init__rW���rA���c�����������������C���sF���d|�_�d|�_||�_||�_d|�_d|�_d|�_d|�_d|�_d|�_ d|�_ d�S�)Nr����Tr���)r����r����r���)r����r���r���r����)�_pensize�_shown� _pencolor� _fillcolor�_drawing�_speed�_stretchfactor�_shearfactor�_tilt�_shapetrafo� _outlinewidth)r����rW���rA���r����r����r����r&�����s����zTPen._resetNc�����������������C���s.���|d�kr|�j�S�|���}|dkr*|�j|d��d�S�)N)�auto�userr�����ra���)r%��r���rV���)r����Zrmoder����r����r����ra������s ����zTPen.resizemodec�����������������C���s���|d�kr|�j�S�|�j|d��d�S�)N)rY���)r'��rV���)r����rz���r����r����r����rY�����s����zTPen.pensizec�����������������C���s���|�j�s d�S�|�jdd��d�S�)NF�rX����r+��rV���r����r����r����r����rZ���0��s���� z TPen.penupc�����������������C���s���|�j�r d�S�|�jdd��d�S�)NTr5��r6��r����r����r����r����rX���>��s���� zTPen.pendownc�����������������C���s���|�j�S�r����)r+��r����r����r����r����rN���L��s���� zTPen.isdownc�����������������C���sj���dddddd�}|d�kr|�j�S�||kr0||�}n*d|��k�rDdk�rVn�ntt|��}nd}|�j|d ��d�S�) Nr���r����r���r���r����)ZfastestZfast�normalZslowZslowestr����g������%@)rp���)r,��r����r���rV���)r����rp���Zspeedsr����r����r����rp���[��s���� z TPen.speedc�����������������G���s����|rht�|�}|dkr"|d��}}n"|dkr4|\}}n|dkrD|�}}|��|�}|��|�}|�j||d��n|��|�j�|��|�j�fS�d�S�)Nr����r���r����r���)rW���rA���)r}��r���rV���r���r)��r*��)r����r��r"��ZpcolorZfcolorr����r����r����r9������s���� z TPen.colorc�����������������G���s:���|r*|���|�}||�jkrd�S�|�j|d��n|��|�j�S�d�S�)N)rW���)r���r)��rV���r���r���r����r����r����rW������s���� z TPen.pencolorc�����������������G���s:���|r*|���|�}||�jkrd�S�|�j|d��n|��|�j�S�d�S�)N)rA���)r���r*��rV���r���r���r����r����r����rA������s���� zTPen.fillcolorc�����������������C���s���|�j�dd��d�S�)NT��shown�rV���r����r����r����r����ro������s����zTPen.showturtlec�����������������C���s���|�j�dd��d�S�)NFr8��r:��r����r����r����r����rK��� ��s����zTPen.hideturtlec�����������������C���s���|�j�S�r����)r(��r����r����r����r����rO��� ��s���� zTPen.isvisiblec�����������������K���s���|�j�|�j|�j|�j|�j|�j|�j|�j|�j|�j |�j d�}|s>|s>|S�t|t�rN|}ni�}|� |��i�}|D�]}||�||<�qd|�jr�|�j�d|f��d}d|kr�|�j|d�kr�d}d|kr�t|d�t�r�|��|d�f�|d<�|�j|d�kr�d}d|k�r|�j|d�k�rd}|�r|�����d|k�r&|d�|�_d|k�r:|d�|�_d|k�rN|d�|�_d|k�r�t|d�t��r||��|d�f�|d<�|d�|�_d |k�r�|d �|�_d |k�r�|d �|�_d|k�r�|d�}t|ttf��r�||f}||�_d|k�r�|d�|�_d |k�r|d �|�_ d|k�r|d�|�_�d|k�r.|d�|�_ d|k�sLd|k�sLd|k�r�|�j\} } |�j}t�|�j �t�|�j ��}} | | �| || �|��| �|�| | ||���f|�_|�����d�S�)N)r9��rX���rW���rA���rY���rp���ra���� stretchfactorrn���r4��rs���rV���FrX���TrW���rY���rA���rp���ra���r;��rn���r4��r9��rs���)r(��r+��r)��r*��r'��r,��r%��r-��r.��r1��r/��r�����dictr,���r��r���r����r����_newLiner����r����r����r����r����r0��rE��)r����rV���ZpendictZ_pd�pZ_p_bufr����ZnewLineZsfZscxZscyZshf�sa�car����r����r����rV���! ��s�����/� ��zTPen.penTc�����������������C���s���d�S�r����r�����r����ZusePosr����r����r����r=��� ��s����z TPen._newLineFc�����������������C���s���d�S�r����r����)r����r���Zforcedr����r����r����rE��� ��s����zTPen._updatec�����������������C���s���d�S�r����r����r��r����r����r����r���� ��s����zTPen._colorc�����������������C���s���d�S�r����r����r��r����r����r����r���� ��s����zTPen._colorstr)N)N)N)N)T)TF)r����r����r����r����r����r&��ra���rY���rZ���rX���rN���rp���r9���rW���rA���ro���rK���rO���rV���r=��rE��r���r���rz���ry���r]���rU���r=���rq���rM���r����r����r����r����r$�����s8���� &.%$ r$��c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�_TurtleImagec�����������������C���s���||�_�d�|�_|��|��d�S�r����)r����rv��� _setshape)r����r����� shapeIndexr����r����r����r����� ��s����z_TurtleImage.__init__c��������������������s����|�j���||�_|�jd��kr*��j|�jkr2n�nd�S�|�jd��krP��j|�jkrXn�nd�S�|�jdkrp���|�j��n |�jdkr�|�jD�]}���|��q���j|�j|�_|�jdkr������|�_nF|�jdkrԈ����jd�j�|�_n&|�jdkr���fdd���j|�jD��|�_d�S�)Nr���rp��)rp��r���r���r*��c��������������������s���g�|�]}�������qS�r�����r5���rx��rC���r����r����r����r{��� ��s�����z*_TurtleImage._setshape.<locals>.<listcomp>) r����rD��rv��r���rD���_itemr5��rq��r���)r����rD��rC��r����rG��r����rC��� ��s(����"" �z_TurtleImage._setshapeN)r����r����r����r����rC��r����r����r����r����rB��� ��s���rB��c�������������������@���s���e�Zd�Zg�Zded�ed�ed�fdd�Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdldd�Z dd��Zdd��Zdd��Zdd��Zdmdd �Zdnd!d"�Zdod#d$�Zd%d&��Zdpd'd(�Zd)d*��Zdqd+d,�Zd-d.��Zd/d0��Zdrd2d3�Zd4d5��Zd6d7��Zd8d9��Zd:d;��Zdsd<d=�Z d>d?��Z!d@dA��Z"dBdC��Z#dtdEdF�Z$dGdH��Z%dIdJ��Z&dKdL��Z'dudMdN�Z(dOdP��Z)dvdSdT�Z*dUdV��Z+dWdX��Z,dYdZ��Z-d[d\��Z.d]d^��Z/e/Z0dwd_d`�Z1dxdbdc�Z2dyddde�Z3dzdfdg�Z4dhdi��Z5djdk��Z6eZ7dS�){r ���Nrk���r����r����c�����������������C���s4��t�|t�r||�_n|t�|t�r:|tjkr2tj�|��||�_nTt�|ttf�r�tjD�]}|j |krN||�_�q�qNt|�|�_tj�|�j��nt d|���|�j}t�|�|� ����t�|���|j�|���|���|�_t||�|�_d�|�_d|�_d��|�_|�_||�_d|�_|���|�_|�jg|�_|�jg|�_g�|�_||�_t |�|�_!|��"���d�S�)Nzbad canvas argument %sF)#r�����_Screenr����r���r ����screensr9��r���r����r)��r���r���r����r���r$��r���r?���drawingLineItemrB��r�����_poly� _creatingPoly� _fillitem� _fillpathr(���_hidden_from_screen�currentLineItemr���currentLiner����� stampItems�_undobuffersizer���r��rE��)r����Zcanvasrk���r����r����r����r����r����r����r����� ��s@���� zRawTurtle.__init__c�����������������C���s0���t��|���t�|���|�����|�����|�����d�S�r����)r���r`���r$��r&���_clearr���rE��r����r����r����r����r`���� ��s ���� zRawTurtle.resetc�����������������C���s&���|d�ks|dkrd�|�_�n t|�|�_�d�S�rk��)r��r���)r�����sizer����r����r����rh��� ��s����zRawTurtle.setundobufferc�����������������C���s���|�j�d�krdS�|�j����S�rk��)r��r���r����r����r����r����rx���, ��s���� zRawTurtle.undobufferentriesc�����������������C���sl���d��|�_�|�_|�jD�]}|�j�|��q|�j���|�_g�|�_|�jrJ|�j� |�j ��|�jg|�_|�����|��|�j ��d�S�r����)rN��rO��r����r����rD��r?��rQ��rR��r+��r9��r��r7���rh���rT��rB��r����r����r����rU��9 ��s���� zRawTurtle._clearc�����������������C���s���|������|�����d�S�r����)rU��rE��r����r����r����r����r5���G ��s����zRawTurtle.clearc�����������������C���sF���|�j�����|�j�jdkrd�S�t|�j�dkrB|�j��|�j|�j|�j|�j��d�S�r����) r����r���r���r}��rR��r@��rQ��r)��r'��r����r����r����r����r���V ��s���� ��zRawTurtle._update_datac�����������������C���sx���|�j�}|jdkrd�S�|jdkrD|�����|�����|����|�|j��n0|�����|jdkrt|���D�]}|����q^|����d�S�r����) r����r���r���r���rE��rH��r���r���r+���)r����r����rm��r����r����r����rE��^ ��s���� zRawTurtle._updatec�����������������C���s���|�j��||�S�r����)r����r*���)r�����flagr���r����r����r����r��p ��s����zRawTurtle._tracerc�����������������C���s���|�j��|�S�r����)r����r���r��r����r����r����r���� ��s����zRawTurtle._colorc�����������������C���s���|�j��|�S�r����)r����r���r��r����r����r����r���� ��s����zRawTurtle._colorstrc�������������� ���C���s����t�|t�r|S�z|\}}}W�n(�ttfk rD���tdt|����Y�nX�|�jjdkrldd��|||fD��\}}}d|��kr�dkr�n�n.d|��kr�dkr�n�nd|��kr�dks�n�tdt|����d|||f�S�) Nr���r����c�����������������S���s���g�|�]}t�d�|���qS�r���r���r���r����r����r����r{��� ��s�����z!RawTurtle._cc.<locals>.<listcomp>r���r���r���r���)r����r����r���r����r���r����r���)r����r��r����r���r���r����r����r�����_cc� ��s���� Fz RawTurtle._ccc��������������������s����|�j���|��|�j��|�j}d�|�_�d�|�_t|��}��|�_�||�_��|_�t��|�jj�|_��j�|����j |�jj�j }|dkr������|j_nJ|dkr���� ��j d�j�|j_n*|dkrʇ�fdd���j |�jj�jD��|j_�����|_|����|S�)Nr���rp��r*��r���c��������������������s���g�|�]}�������qS�r����rE��rF��rG��r����r����r{��� ��s�����z#RawTurtle.clone.<locals>.<listcomp>)r����r=��r+��r����r���rB��rD��r���r9��r���rv��r5��rH��rq��r���r?��rQ��rE��)r����r�����q�ttyper����rG��r����r8���� ��s.���� � zRawTurtle.clonec�����������������C���sB���|d�kr|�j�jS�||�j���kr*td|���|�j��|��|�����d�S�)NzThere is no shape named %s)r����rD��r����r���r���rC��rE��)r����r���r����r����r����rk���� ��s����zRawTurtle.shapec�����������������C���s����||��kr|��krd�kr8n�n|�j�\}}|||�jfS�|dksH|dkrPtd��|d�k rt|d�krj||f}q�||f}n|d�k r�|�j�d�|f}n|�j�}|d�kr�|�j}|�jd||d��d�S�)Nr���z(stretch_wid/stretch_len must not be zeror3��)ra���r;��r4��)r-��r1��r���rV���)r����Zstretch_widZstretch_lenr4��r;��r����r����r����rl���� ��s$����" ��zRawTurtle.shapesizec�����������������C���s ���|d�kr|�j�S�|�jd|d��d�S�)Nr3��)ra���rn���)r.��rV���)r����Zshearr����r����r����rn�����s����zRawTurtle.shearfactorc�����������������C���s<���|�|�j��|�j�}|tj�d�dtj��}|�jd|d��d�S�)Nr����r����r3��)ra���rs���)r ��r��r����r����rV����r����r����rs���r����r����r����rg�����s����zRawTurtle.settiltanglec�����������������C���s>���|d�kr0|�j��dtj��|�j�}||�j�|�j�S�|��|��d�S�)Nr����)r/��r����r����r��r ��r��rg���r[��r����r����r����rt���4��s����zRawTurtle.tiltanglec�����������������C���s���|���||�������d�S�r����)rg���rt���r��r����r����r����rs���N��s����zRawTurtle.tiltc�����������������C���s6��||��kr(|��kr(|��kr(d�kr2n�n|�j�S�|�j�\}}}}|d�k rL|}|d�k rX|}|d�k rd|}|d�k rp|}||�||��dkr�td��||||f|�_�t�|�|�dtj��} t�| �t�| ��} }||�| |��||�| |��| |�||��| |�||��f\}} }}||f|�_| |�|�_| |�_ |�j dd��d�S�)Nr���z0Bad shape transform matrix: must not be singularr����r3��r4��)r0��r���r����r��r����r����r����r-��r.��r/��rV���)r�����t11�t12�t21�t22Zm11Zm12Zm21Zm22Zalfar?��r@��Za11Za12Za21Za22r����r����r����rm���a��s0����,������ zRawTurtle.shapetransformc��������������������s^���|�j��|�j\��|�j\���t����j��j��}dt|��|�\���������fdd�|D��S�)Nr����c��������������������sF���g�|�]>\}}��|���|���j�������|��|���j��f�qS�r����)r/��r0���rx��r����r�����Ze0Ze1Zp0Zp1r����r����r����r{�����s����z(RawTurtle._polytrafo.<locals>.<listcomp>)r����r��r��r���r0��r/��r��)r����r����er����ra��r����� _polytrafo���s���� �zRawTurtle._polytrafoc�����������������C���s2���|�j�j|�jj�}|jdkr.|��|j|jdk�S�d�S�)Nr���r���)r����r���r����rD��rv��� _getshapepolyr���)r����rk���r����r����r����rG������s���� zRawTurtle.get_shapepolyFc��������������������sx���|�j�dks|r|�j\�����n>|�j�dkrNtd|�jd��}|dd|f\�����n|�j�dkr\|S�t�����fdd�|D���S�) Nr3��r2��r����g������@r���r����c�����������������3���s2���|�]*\}}��|��|���|��|��fV��qd�S�r����r����r`���r\��r]��r^��r_��r����r����r������s�����z*RawTurtle._getshapepoly.<locals>.<genexpr>)r%��r0���maxr'��r����)r����r���r���r"��r����re��r����rd�����s���� zRawTurtle._getshapepolyc�������������� ���C���s���|�j�}|j|�jj�}|j}|�jj}|�j�r*|jdk�r*|jdk�r*d|�_ |j }|dkr�|�jdkrfd}n|�jdkrx|�j}n|�j }|��|��|��}|�j|�j�}}|j|||||dd��nt|d kr�|�||�j|��nZ|d k�r�t||�D�]D\} \} }}|��|��| d��} |j| | |��|�|��|�|�j dd��q�nx|�j �r6d�S�|dk�rR|�|ddd��nJ|d k�rv|�||�j|jd �j ��n&|d k�r�|D�]} |�| ddd���q�d|�_ d�S�)Nr���Fr���r����r����r2��T�r��r4��rz���r<��rp��r����r���r���r���r����r*��)r����r���r����rD��rv��rH��r(��r���r���rP��r���r%��r'��r1��rc��rd��r*��r)��r>��rt��r���ziprX��)r����r����rk���rZ��Ztitem�tshaper1���fc�ocrC��r���r����r����r����r������sR���� � ��� ��� � zRawTurtle._drawturtlec�������������� ���C���sT��|�j�}|j|�jj�}|j}|j}|dkr�|���}|�jdkr@d}n|�jdkrR|�j}n|�j }|�� |��|��}|�j|�j �}}|j|||||dd��n�|dkr�|�d�}|�||�j|��n�|d k�r4g�}|D�]} |���} |�| ��q�t|�}t||�D�]D\} \}}}|�� |��|d��}|j| ||��|�|��|�|�j dd��q�|�j�|��|�j�d |f��|S�)Nr���r����r����r2��Trg��rp��r����r���rr���)r����r���r����rD��rv��r���r5��r%��r'��r1��rc��rd��r*��r)��r>��rq��rt��r��r9��r����ri��rX��rS��r��r���)r����r����rk���rZ��rj���stitemr1��rk��rl��ZelementrC��r���r����r����r����rr������sH���� � ��� ���zRawTurtle.stampc�����������������C���s����||�j�krDt|t�r,|D�]}|�j�|��qn|�j�|��|�j��|��d|f}|�j}||jkr`d�S�|j�|�}|j�|��||j kr�|j d�|j �|_ |j�|j d�|j �d�g��d�S�)Nrr���r����)rS��r����r����r����rD��r���r��r����indexr���r����insert)r�����stampidZsubitemrC��Zbufrn��r����r����r�����_clearstamp��s���� zRawTurtle._clearstampc�����������������C���s���|���|��|�����d�S�r����)rq��rE��)r����rp��r����r����r����r6�����s���� zRawTurtle.clearstampc�����������������C���s^���|d�kr|�j�d�d���}n&|dkr0|�j�d�|��}n|�j�|d���}|D�]}|��|��qB|�����d�S�rk��)rS��rq��rE��)r����r���ZtoDeleterC��r����r����r����r7���-��s����zRawTurtle.clearstampsc�������������� ���C���s���|�j�|�j|�jt|�jt�f}|�j}d|�j|||�j|�j d�d���|� |�j�|�jd�d���ff}|�jrh|�j� |��|�j}|�j�rZ|jdk�rZ||�}|d�|j�d�|d�|j�d��}dt|d�dd|�j��|�j����}|d|��} td|�D�]R} | dkr�d }nd }|| | ��|�_|�j��r2|�|�j||�jf|�j|�j|��|�����q�|�j��rZ|j|�jdd|�jd ��|�j��rn|�j �|��t|�jt��r�|�j�|��||�_|�j�r�|�j�|��t|�j �dk�r�|�����|�����d�S�)N�gor����r���r����r����r���皙�����?r����TF�r���r���r�����r��rz����*���)r+��r)��r'��r����rO��r����r����r��rQ��rR��r��r����r��r���r,��r���r/��r0��r����r|��r@��rK��rE��r9��rM��rL��r}��r=��)r����r���go_modesr����Z undo_entry�start�diff�diffsq�nhops�deltar���r<��r����r����r����r ��I��sb���� � ��$$��� ��zRawTurtle._gotoc��������������������s��|\}}}}|\}}}} |\} }}��|�j��t|�j|��dkrDtd��| |�_||�_|ddgkrbd} n|} �j| || |d�����fdd�|�jD��}|D�]}��|��|�j� |��q�|}|�j �r��jdk�r�||�}|d ��j�d �|d��j �d ��}dt|d�dd|�j ��|�j ����}|d |��}td|�D�]P}|dk�r@d}nd}|||��|�_|�rr��|�j||�jf|||��|������q,|�r��j|�jdd|d��||�_|�j�r�t|�j�d k�r�|�j����|�jg�k�r�d|�_d�|�_| �r|�jg�k�r�d�|�_td��n|�jd�k �r|�j����|�����d�S�)Nr����z$undogoto: HALLO-DA-STIMMT-WAS-NICHT!r���r����ru��c��������������������s&���g�|�]}|��kr���|�d�kr|�qS�)r����)rv��rw���r����r����r����r����r{�����s������z'RawTurtle._undogoto.<locals>.<listcomp>r����r���r����r���rs��r����TFrt��zUnwahrscheinlich in _undogoto!)r����r��r��r����rQ��rR��r@��r����rD��r���r,��r���r/��r0��r����r|��rK��rE��rM��r}��rL��r���rO��)r�����entry�old�newrw��ZcoodataZdrawingZpcZpsrB���ZcLIZcLr~��ZusepcZtodeletery��rx��ry��rz��r{��r|��r���r<��r����r}��r����� _undogoto~��sl���� $$ ��� �� zRawTurtle._undogotoc�����������������C���s����|�j�r|�j��d||�jf��||�j9�}|�j�|�}|�jj}|dkr�|�jdkr�d|�j�}dtt |�|���}d|�|�}t |�D�]}|�j�|�|�_|�����q|||�_|�����d�S�)N�rotr����r���g������@r����)r��r���r ��r��r����r����r���r,��r����r��r|��rE��)r����r����Z neworientr���Zanglevelr!��r|��r����r����r����r����r�����s���� zRawTurtle._rotateTc�����������������C���sn���t�|�j�dkrD|�j�|�j|�j|�j|�j��|�j���|�_|�j� |�j��n|�jj|�jdd��g�|�_|rj|�j g|�_d�S�)Nr����T)r<��)r}��rR��r����r@��rQ��r)��r'��r?��r����r9��r��rA��r����r����r����r=�����s������zRawTurtle._newLinec�����������������C���s���t�|�jt�S�r����)r����rO��r����r����r����r����r����rB������s����zRawTurtle.fillingc�����������������C���sX���|�����s"|�j���|�_|�j�|�j��|�jg|�_|�����|�j rL|�j � d|�jf��|�����d�S�)N� beginfill)rB���r����r5��rN��r����r9��r��rO��r=��r��r���rE��r����r����r����r����r1������s���� zRawTurtle.begin_fillc�����������������C���s^���|�����rZt|�j�dkrF|�jj|�j|�j|�jd��|�jrF|�j�d|�jf��d��|�_|�_|�� ���d�S�)Nr����r6���dofill) rB���r}��rO��r����r>��rN��r*��r��r���rE��r����r����r����r����r>��� ��s�����zRawTurtle.end_fillc�������������� ���G���s8��|sNt�|ttf�r0|��|�}|�jt|�jd��}qr|�j}|sr|�jt|�jd��}n$|d�krh|�jt|�jd��}|��|�}t|�jd�r�|�j� |�j ||�}|�j�|��|�j r�|�j �d|f��n�|����}|�j r�|�j �dg��d|�j _z>|����dkr�|�����|�����|��|��|��|��|��d��W�5�|��|��X�|�j �r4d|�j _d�S�) Nr����_dotr<���r��Tr2��r���F)r����r����r����r���r'��rf��r)���hasattrr����r���r��r����r9��r��r���rV���r���ra���rM���rX���rY���rW���rC���)r����rV��r9���rC��rV���r����r����r����r<��� ��s:���� z RawTurtle.dotc�����������������C���sB���|�j��|�j||||�j�\}}|�j�|��|�jr>|�j�d|f��|S�)N�wri)r����rS��r��r)��r����r9��r��r���)r����rQ��rR��rP��rC��r��r����r����r����rS��H ��s�����zRawTurtle._writerP�����Arialr���r7��c�����������������C���s`���|�j�r|�j��dg��d|�j�_|��t|�|���|�}|rN|����\}}|��||��|�j�r\d|�j�_d�S�)Nr��TF)r��r���r���rS��r����r���r[���re���)r�����argZmoverR��rP��r��r����r����r����r����r����r{���R ��s����zRawTurtle.writec�����������������C���s���|�j�g|�_d|�_d�S�r���)r��rL��rM��r����r����r����r����r2���o ��s���� zRawTurtle.begin_polyc�����������������C���s ���d|�_�d�S��NF)rM��r����r����r����r����r?���} ��s����zRawTurtle.end_polyc�����������������C���s���|�j�d�k rt|�j��S�d�S�r����)rL��r����r����r����r����r����rD���� ��s���� zRawTurtle.get_polyc�����������������C���s���|�j�S�r����rG��r����r����r����r����rF���� ��s����zRawTurtle.getscreenc�����������������C���s���|�S�r����r����r����r����r����r����rH���� ��s����zRawTurtle.getturtlec�����������������C���s���|�j��|�S�r����)r����r���rG��r����r����r����rH��� ��s����zRawTurtle._delayr����c�����������������C���s"���|�j��|�jj|||��|�����d�S�r����)r����r`��r����rH��rE��r���r����r����r����rR���� ��s����zRawTurtle.onclickc�����������������C���s"���|�j��|�jj|||��|�����d�S�r����)r����ra��r����rH��rE��r���r����r����r����rT���� ��s����zRawTurtle.onreleasec�����������������C���s���|�j��|�jj|||��d�S�r����)r����rb��r����rH��r���r����r����r����rS���� ��s����zRawTurtle.ondragc�����������������C���s,��|�j�d�krd�S�|dkr@|\}}|��|�|�|�j���|�j����}n�|dkr\|d�}|��|��n�|dkrp|��|��n�|dkr�|d�}|�j�|��|�j� |��n�|dkr�|d�}|�jj |dddd ��nh|d k�r|d�}d��|�_|�_||�jk�r(|�j�|��|�j� |��n$|dk�r(t �|�|d���|�j�����d�S�)Nr���rr���r���rr��)r���r<���r���rh��r����r3��r���rV���)r��r��r ��r���r6���r���r����rD��r����r���r>��rN��rO��r$��rV���)r�����actionr���r����ZdegPAUZdummyrm��rC��r����r����r�����_undo��s<���� �� zRawTurtle._undoc�����������������C���sl���|�j�d�krd�S�|�j����}|d�}|dd���}|dkr\|rh|���}|��|d�|dd�����q4n|��||��d�S�)Nr���r����r��)r��r���r���)r����rC��r���r���r����r����r����rw���'��s���� zRawTurtle.undo)NN)N)NNN)N)N)NNNN)F)N)T)N)FrP���r���)N)r����N)r����N)r����N)8r����r����r����rJ��r����r����r`���rh���rx���rU��r5���r���rE��r��r���r���rX��r8���rk���rl���rn���rg���rt���rs���rm���rc��rG���rd��r���rr���rq��r6���r7���r ��r���r��r=��rB���r1���r>���r<���rS��r{���r2���r?���rD���rF���rH���rE���rH��rR���rT���rS���r���rw���rv���r����r����r����r����r ���� ��sp���� ( ( ( ( (- 5A 0 c�������������������C���s���t�jd�krt��t�_t�jS�r����)r����_screenrI��r����r����r����r����r ���J��s���� c�������������������@���sf���e�Zd�ZdZdZed�Zdd��Zed�ed�ed�ed�fd d �Zdd��Z d d��Z dd��Zdd��ZdS�)rI��Nr)���c�����������������C���s����t�jd�kr4t���t�_|�_|�j�t�j��|�j�|�j��t�jd�kr�td�}td�}td�}td�}td�}td�}|�j� ||||��|�j� ��t�_t�|�t�j��|�� ||||��d�S�)Nrz���r����r����r����r����r����)rI���_rootr��r)����_titler$���_destroyr����r����r��r��r���r����r&���)r����rz���r����r����r����r����r����r����r����r����r����X��s���� z_Screen.__init__rz���r����r����r����c�����������������C���s����t�|�jd�sd�S�|�j���}|�j���}t|t�rNd|��krBdkrNn�n||�}|d�krb||�d�}t|t�r�d|��kr�dkr�n�n||�}|d�kr�||�d�}|�j�||||��|�����d�S�)Nr"��r���r����r����)r���r���r%��r&��r����r����r"��r,���)r����rz���r����r ��r!��rL��Zshr����r����r����r&���n��s���� ""z _Screen.setupc�����������������C���s ���t�jd�k rt�j�|��|t�_d�S�r����)rI��r���r)���r���)r����Ztitlestringr����r����r����r)������s���� z _Screen.titlec�����������������C���s:���|�j�}|tj�kr(d�t_d�t_d�t_�d�t_dt_|����d�S�r���) r���rI��r���r���r���r����r���r���r#��)r�����rootr����r����r����r������s���� z_Screen._destroyc�����������������C���s���|������d�S�r����)r���r����r����r����r����r������s����z_Screen.byec��������������������sN�����fdd�}����|��td�r"d�S�z t���W�n�tk rH���td��Y�nX�d�S�)Nc��������������������s����������d�S�r����)r���)r����r����r����r����r�����exitGracefully���s����z+_Screen.exitonclick.<locals>.exitGracefullyr����r���)rR���r����r����AttributeError�exit)r����r���r����r����r����r������s���� z_Screen.exitonclick) r����r����r����r���r����r����r���r����r&���r)���r���r���r���r����r����r����r����rI��R��s����� ( rI��c�������������������@���s0���e�Zd�ZdZdZed�ed�ed�fdd�ZdS�)r���Nrk���r����r����c�����������������C���s,���t�jd�krt��t�_tj|�t�j|||d��d�S�)N)rk���r����r����)r���r���r ���r ���r����)r����rk���r����r����r����r����r����r�������s���� �zTurtle.__init__)r����r����r����r���r���r����r����r����r����r����r����r������s�����turtle_docstringdictc�������������� ���C���s����i�}t�D�]}d|�}t|�j||<�qtD�]}d|�}t|�j||<�q(td|��d���}tdd��|D���}|�d��|d�d��D�](}|�d t|����|�d ||����q||d�}|�d t|����|�d||����|�d��|����W�5�Q�R�X�d�S�) Nz_Screen.zTurtle.z%s.pyr1��c�����������������s���s$���|�]}|��d��d�tkr|V��qdS�)r����r����N)r����_alias_listr���r����r����r����r�����s�����z&write_docstringdict.<locals>.<genexpr>zdocsdict = { r����z%s : z """%s """, z """%s """ z} ) �_tg_screen_functionsr�����__doc__�_tg_turtle_functionsr����r���r{����repr�close)r�����docsdict� methodnamer����r����r����r����r����r����r~������s$���� c�������������� ���C���s`���dd|�����i�}t|�}|j}|D�]8}z||�t|�_W�q"�tk rX���td|���Y�q"X�q"d�S�)Nz!turtle_docstringdict_%(language)sr����zBad docstring-entry: %s)r���� __import__r���r����r���r����r����)Zlang�modname�moduler���r����r����r����r�����read_docstrings��s����r���r����zCannot find docsdict forz;Unknown Error when trying to import %s-docstring-dictionaryc����������� ������C���s����d�}}t��|�j�\}}}|dd���}|dd���}|�jp:g�}dd��|D��}dgt|�t|���|�}dd��t||�D��} |d�k r�| �d|���|�d|���|d�k r�| �d|���|�d|���d�| �}d |�}d�|�}d |�}||fS�) Nr����r����c�����������������S���s���g�|�]}d�|f��qS�)z=%rr����)rx��r����r����r����r����r{��<��s�����z"getmethparlist.<locals>.<listcomp>c�����������������S���s���g�|�]\}}||��qS�r����r����)rx��r���Zdfltr����r����r����r{��>��s������*z**z, z(%s))�inspectZgetargs�__code__�__defaults__r}��ri��r9��r���) ZobZdefTextZcallTextr��ZvarargsZvarkwZitems2ZrealArgs�defaultsZitems1r����r����r�����getmethparlist,��s&���� r���c�����������������C���sJ���dd�l�}|�d�krd�S�td�}|��d|�d�}|�d|��}|�d|�}|S�)Nr���r�����%s.r����� \(.+ %s\):�:��rer�����replace�compile�sub)�docstrr���Z turtlename� newdocstr�parexpr����r����r�����_turtle_docreviseK��s����r���c�����������������C���sJ���dd�l�}|�d�krd�S�td�}|��d|�d�}|�d|��}|�d|�}|S�)Nr���r����r���r����r���r���r���)r���r���Z screennamer���r���r����r����r�����_screen_docreviseW��s����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����������� ������C���sl���|�D�]b}t�||�}t|�\}}|dkr4td||��qtj|||||d�} t| t����||j�t��|�_qd�S�)Nr����z>>>>>>)�obj�initr���Z paramslistZargslist)�getattrr���r�����__func_body�formatr�����globalsr���) Z functionsr����r���r���Z docreviser���r����Zpl1Zpl2Zdefstrr����r����r�����_make_global_funcsw��s���� ��r���zTurtle._screenzScreen()zTurtle._penzTurtle()�__main__c�������������������C���s���t���rt���nt���d�S�r����)rN���r]���rU���r����r����r����r����� switchpen���s����r���c������������������C���sl��t����td��t���td��t���td��td�D�]Z}�|�dkrDt���td�D�]}td��t d��qL|�dkrxt d��t���t���td ��t���q2td ��t d��td��t���td��td��td��td��td ��t���t dd ��t dd ��t d��td�D�]$}�td��t d��td��td��q�td��t���td�D�]&}�td��t d��td��td���q:t���d�S�)NT�d���r���r����r���r����Z���Zmaroonr��r����r����F����Z startstartrx���redr���)r`���r*���ry���r0���r=���rz���r|��r1���rC���rP���r9���r>���r_���r{���)ry��r����r����r����r�����demo1���sX���� r���c������������������C���sB��t�d��t���td��ttdd���tdd�d�}�td��td�D�]}t���t |�d��qBt d��t��rnt���q`t ���td��td ��d}td ��td��td��tdd �D�]p}|dkr�t���td d|��dd|���td�D�]}t|��td��q�t���|d7�}td��t�t���d�d���q�td��t���td��td��t���tdd��t�d��t���td�D�](}t dd��td��td��td���q`t���td��t���td��t���td��t��}|�d��t��}|�d��|�d��|� ���|�d��|��d��|����|�dd��|�d��|����|��d��|�dd��|�d��|��d��tt|���d}|�|�dk�r�|�d��|�d ��|�|�|���|�d��|d!�dk�r�|� ���|� ���t���|d7�}�qZ|j d"d#d$d%��|�d&��|�d��d'd(��}t!�"d��t���r|����|�����q�|�d��|j d)d*d+��|�#|d��d�S�),Nr����r���r���r��r�������r����zwait a moment...r���Zgreenr���r���r��������x��������F���r��r���Zyellowr����2���r����r2��i���(���r���ZblueZoranger����g������@g333333�?r���zCAUGHT! )r���r����boldr_���)rP��rR��r����c�����������������S���s���t����t���d�S�r����)r���r���)r���r���r����r����r�����baba��s����zdemo2.<locals>.babaz Click me!)ZCourierr���r���)rP��)$rp���rq���rY���rd���ru���r;���rb���r|��r���r4���r{���rx���rw���r`���rQ���r���rW���r1���rA���r@���r>���r]���rU���r9���rk���rH���ra���r���rP���ry���rI���r=���rr����time�sleeprR���)r ��r����Zlaengery��Ztrir����r���r���r����r����r�����demo2���s����� r���)r����)r���)EZ_verZtkinterr����r����r����r���r���r���Zos.pathr���r���r����copyr���r���Z_tg_classesr���r���Z _tg_utilities�__all__r���r����r����r����r����r����r����r���r����r����r����r����r����r���r����r��r���objectr'��r����r���r���r���r���r���r$��rB��r ���r���r ���rI��r���r ���r~���r���Z _LANGUAGE�ImportErrorr���r���r���r���r���r���r���r����r���r���r���r���r����r����r����r�����<module>g���s������������������������������� ��������������������������������������������������������������� �����������5 � c��� /&����/�������O��������}� " ������� 5c