§
    øÛgdk  ã                   ó€  — d dl Z d dlZd dlmZmZmZ eZe j         	                    dd¦  «        Z
ej        d          dk    rd dlmZ nd dlmZ d dlZ G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z eddd¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z  G d&„ d'e¦  «        Z!i Z"d,d)„Z#d,d*„Z$d-d+„Z%dS ).é    N)Ú
CO_VARARGSÚCO_VARKEYWORDSÚisclassÚreprÚreprlibé   )Úformat_exception_onlyc                   ó^   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
dd	„Zd
S )ÚCodez$ wrapper around Python code objects c                 ó  — t          |d¦  «        st          j                             |¦  «        }	 |j        | _        |j        dz
  | _        |j        | _	        n # t          $ r t          d|›�¦  «        ‚w xY w|| _        d S )NÚco_filenameé   znot a code object: )ÚhasattrÚpyÚcodeÚ
getrawcoder   ÚfilenameÚco_firstlinenoÚfirstlinenoÚco_nameÚnameÚAttributeErrorÚ	TypeErrorÚraw)ÚselfÚrawcodes     úC/granary/edev/quantum/lib/python3.11/site-packages/py/_code/code.pyÚ__init__zCode.__init__   s“   € Ý�w Ñ.Ô.ð 	2Ý”g×(Ò(¨Ñ1Ô1ˆGð	BØ#Ô/ˆDŒMØ&Ô5¸Ñ9ˆDÔØœˆDŒIˆIøÝð 	Bð 	Bð 	BÝ�)°w°wÐ@ÑAÔAÐAð	BøøøàˆŒˆˆs   ±'A ÁA6c                 ó"   — | j         |j         k    S ©N)r   ©r   Úothers     r   Ú__eq__zCode.__eq__   s   € ØŒx˜5œ9Ò$Ð$ó    c                 ó   — | |k     S r    © r!   s     r   Ú__ne__zCode.__ne__!   s   € Ø˜5’=Ð Ð r$   c                 ó˜   — t           j                             | j        j        ¦  «        }|                     ¦   «         s| j        j        }|S )zs return a path object pointing to source code (note that it
        might not point to an actually existing file). )r   ÚpathÚlocalr   r   Úcheck)r   Úps     r   r)   z	Code.path$   s=   € õ ŒG�MŠM˜$œ(Ô.Ñ/Ô/ˆà�wŠw‰yŒyð 	%ð ”Ô$ˆAØˆr$   c                 óL   — ddl m} |                     | j        ¦  «        \  }}|S )zM return a py.code.Source object for the full source file of the code
        r   )Úsource)Úpy._coder.   Ú
findsourcer   )r   r.   ÚfullÚ_s       r   Ú
fullsourcezCode.fullsource0   s4   € ð 	$Ð#Ð#Ð#Ð#Ð#Ø×#Ò# D¤HÑ-Ô-‰ˆˆaØˆr$   c                 óJ   — t           j                             | j        ¦  «        S )zJ return a py.code.Source object for the code object's source only
        )r   r   ÚSourcer   ©r   s    r   r.   zCode.source8   s   € õ Œw�~Š~˜dœhÑ'Ô'Ð'r$   Fc                 óˆ   — | j         }|j        }|r$||j        t          z  z  }||j        t          z  z  }|j        d|…         S )z» return a tuple with the argument names for the code object

            if 'var' is set True also return the names of the variable and
            keyword arguments when present
        N)r   Úco_argcountÚco_flagsr   r   Úco_varnames)r   Úvarr   Úargcounts       r   ÚgetargszCode.getargs>   sM   € ð ŒhˆØ”?ˆØð 	6Ø˜œ¥zÑ1Ñ1ˆHØ˜œ¥~Ñ5Ñ5ˆHØŒ˜y ˜yÔ)Ð)r$   N©F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   r'   Úpropertyr)   r3   r.   r=   r&   r$   r   r   r      s    € € € € € Ø.Ð.ð	ð 	ð 	ð%ð %ð %ð!ð !ð !ð ð	ð 	ñ „Xð	ð ðð ñ „Xðð(ð (ð (ð*ð *ð *ð *ð *ð *r$   r   c                   óN   — e Zd ZdZd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
dd	„Zd
S )ÚFramezgWrapper around a Python frame holding f_locals and f_globals
    in which expressions can be evaluated.c                 ó´   — |j         dz
  | _        |j        | _        |j        | _        || _        t
          j                             |j        ¦  «        | _        d S ©Nr   )	Úf_linenoÚlinenoÚ	f_globalsÚf_localsr   r   r   r   Úf_code)r   Úframes     r   r   zFrame.__init__P   sD   € Ø”n qÑ(ˆŒØœˆŒØœˆŒØˆŒÝ”G—L’L ¤Ñ.Ô.ˆŒ	ˆ	ˆ	r$   c                 ó    — | j         j        €t          j                              d¦  «        S | j         j                             | j        ¦  «        S )z statement this frame is at NÚ )r   r3   r   r5   ÚgetstatementrI   r6   s    r   Ú	statementzFrame.statementW   s>   € ð Œ9ÔÐ'Ý”7—>’> "Ñ%Ô%Ð%ØŒyÔ#×0Ò0°´Ñ=Ô=Ð=r$   c                 óŠ   — | j                              ¦   «         }|                     |¦  «         t          || j        |¦  «        S )z” evaluate 'code' in the frame

            'vars' are optional additional local variables

            returns the result of the evaluation
        )rK   ÚcopyÚupdateÚevalrJ   ©r   r   ÚvarsrK   s       r   rU   z
Frame.eval^   s=   € ð ”=×%Ò%Ñ'Ô'ˆØ�Š˜ÑÔÐÝ�D˜$œ.¨(Ñ3Ô3Ð3r$   c                 ó®   — | j                              ¦   «         }|                     |¦  «         t          j                             || j        |¦  «         dS )z^ exec 'code' in the frame

            'vars' are optiona; additional local variables
        N)rK   rS   rT   r   ÚbuiltinÚexec_rJ   rV   s       r   rZ   zFrame.exec_i   sK   € ð
 ”=×%Ò%Ñ'Ô'ˆØ�Š˜ÑÔÐÝ
Œ
×Ò˜˜tœ~¨xÑ8Ô8Ð8Ð8Ð8r$   c                 ó@   — t           j                             |¦  «        S )zL return a 'safe' (non-recursive, one-line) string repr for 'object'
        ©r   ÚioÚsaferepr©r   Úobjects     r   r   z
Frame.reprr   s   € õ Œu�~Š~˜fÑ%Ô%Ð%r$   c                 ó   — |S r    r&   r_   s     r   Úis_truezFrame.is_truew   s   € Øˆr$   Fc                 óª   — g }| j                              |¦  «        D ]5}	 |                     || j        |         f¦  «         Œ&# t          $ r Y Œ2w xY w|S )z¬ return a list of tuples (name, value) for all arguments

            if 'var' is set True also include the variable and keyword
            arguments when present
        )r   r=   ÚappendrK   ÚKeyError)r   r;   ÚretvalÚargs       r   r=   zFrame.getargsz   ss   € ð ˆØ”9×$Ò$ SÑ)Ô)ð 	ð 	ˆCðØ—’˜s D¤M°#Ô$6Ð7Ñ8Ô8Ð8Ð8øÝð ð ð Ø�ðøøøàˆs    "AÁ
AÁANr>   )r?   r@   rA   rB   r   rC   rQ   rU   rZ   r   rb   r=   r&   r$   r   rE   rE   L   s˜   € € € € € ð.ð .ð/ð /ð /ð ð>ð >ñ „Xð>ð	4ð 	4ð 	4ð9ð 9ð 9ð&ð &ð &ð
ð ð ðð ð ð ð ð r$   rE   c                   óþ   — e Zd ZdZdZdZd„ Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zed„ ¦   «         Zed	„ ¦   «         Zd
„ Z eeddd¦  «        Zd„ Zd„ Zdd„Z ee¦  «        Zd„ Zd„ Zd„ Z eeddd¦  «        ZdS )ÚTracebackEntryz a single entry in a traceback Nc                 ó2   — || _         |j        dz
  | _        d S rG   )Ú	_rawentryÚ	tb_linenorI   )r   Úrawentrys     r   r   zTracebackEntry.__init__�   s   € Ø!ˆŒØÔ(¨1Ñ,ˆŒˆˆr$   c                 ó    — |dv sJ ‚|| _         d S )N©ÚshortÚlong)Ú_repr_style)r   Úmodes     r   Úset_repr_stylezTracebackEntry.set_repr_style“   s"   € ØÐ(Ð(Ð(Ð(Ð(ØˆÔÐÐr$   c                 óT   — t           j                             | j        j        ¦  «        S r    )r   r   rE   rk   Útb_framer6   s    r   rM   zTracebackEntry.frame—   s   € åŒw�}Š}˜Tœ^Ô4Ñ5Ô5Ð5r$   c                 ó4   — | j         | j        j        j        z
  S r    )rI   rM   r   r   r6   s    r   ÚrellinezTracebackEntry.relline›   s   € àŒ{˜TœZœ_Ô8Ñ8Ð8r$   c                 ó>   — d| j         j        j        | j        dz   fz  S )Nz<TracebackEntry %s:%d>r   )rM   r   r)   rI   r6   s    r   Ú__repr__zTracebackEntry.__repr__Ÿ   s   € Ø'¨4¬:¬?Ô+?ÀÄÈQÁÐ*OÑOÐOr$   c                 óX   — | j         j        j        }|                     | j        ¦  «        S )z1 py.code.Source object for the current statement )rM   r   r3   rP   rI   )r   r.   s     r   rQ   zTracebackEntry.statement¢   s&   € ð ””Ô+ˆØ×"Ò" 4¤;Ñ/Ô/Ð/r$   c                 ó$   — | j         j        j        S )z path to the source code )rM   r   r)   r6   s    r   r)   zTracebackEntry.path¨   s   € ð ŒzŒÔ#Ð#r$   c                 ó   — | j         j        S r    )rM   rK   r6   s    r   Ú	getlocalszTracebackEntry.getlocals­   s   € ØŒzÔ"Ð"r$   zlocals of underlaying framec                 ó  — | j         €{t          | j        ¦  «                             ¦   «         }t          j                             || j        d¬¦  «        }t          |t          ¦  «        st          d|›�¦  «        ‚|| _         | j         S )ztReinterpret the failing statement and returns a detailed information
           about what operations are performed.NT)Úshould_failzinterpret returned non-string )
ÚexprinfoÚstrrQ   Ústripr   r   Ú_reinterpretrM   Ú
isinstancer   )r   r.   Úxs      r   ÚreinterpretzTracebackEntry.reinterpret±   s|   € ð Œ=Ð Ý˜œÑ(Ô(×.Ò.Ñ0Ô0ˆFÝ”×$Ò$ V¨T¬ZÀTÐ$ÑJÔJˆAÝ˜a¥Ñ%Ô%ð KÝ�iÀaÀaÐ IÑJÔJÐJØˆDŒMØŒ}Ðr$   c                 ó@   — t          | j        j        j        d¦  «        S ©Nr   )ÚmaxrM   r   r   r6   s    r   Úgetfirstlinesourcez!TracebackEntry.getfirstlinesource¼   s   € å�4”:”?Ô.°Ñ2Ô2Ð2r$   c                 óF  — ddl m} | j        j        j        }|€dS dx}}|�)| j        j        j        }|�|                     |d¦  «        }|                      ¦   «         }	  || j        ||¬¦  «        \  }}}|�|||<   n# t          $ r | j        dz   }Y nw xY w|||…         S )z return failing source code. r   )Úgetstatementrange_astN)Úastnoder   )
Úpy._code.sourcer�   rM   r   r3   r)   Úgetr‹   rI   ÚSyntaxError)	r   Úastcacher�   r.   ÚkeyrŽ   Ústartr2   Úends	            r   Ú	getsourcezTracebackEntry.getsourceÀ   sí   € ð 	:Ð9Ð9Ð9Ð9Ð9Ø””Ô+ˆØˆ>Ø�4ØÐˆˆgØÐØ”*”/Ô&ˆCØˆØ"Ÿ,š, s¨DÑ1Ô1�Ø×'Ò'Ñ)Ô)ˆð	(Ø3Ð3°D´KÀØ<CðEñ Eô E‰OˆG�Q˜ð
 ˆØ '�˜‘øøõ	 ð 	"ð 	"ð 	"Ø”+ ‘/ˆCˆCˆCð	"øøøð
 �e˜C�iÔ Ð s   Á A? Á?BÂBc                 ó’   — 	 | j         j        d         S # t          $ r( 	 | j         j        d         cY S # t          $ r Y Y dS w xY ww xY w)z‰ return True if the current frame has a var __tracebackhide__
            resolving to True

            mostly for internal use
        Ú__tracebackhide__F)rM   rK   re   rJ   r6   s    r   ÚishiddenzTracebackEntry.ishiddenÚ   ss   € ð	Ø”:Ô&Ð':Ô;Ð;øÝð 	ð 	ð 	ðØ”zÔ+Ð,?Ô@Ð@Ð@Ð@øÝð ð ð Ø�u�u�uðøøøð	øøøs(   ‚ ”
AŸ3°A³
A½AÁAÁAc                 ó   — 	 t          | j        ¦  «        }n# t          j        j        $ r d}Y nw xY w| j        j        j        }	 t          | j        ¦  «         	                    ¦   «         }n# t          $ r ‚  d}Y nxY wd|| j        dz   ||fz  S )Nú???z  File %r:%d in %s
  %s
r   )r‚   r)   r   ÚerrorÚErrorrM   r   r   rQ   ÚlstripÚKeyboardInterruptrI   )r   Úfnr   Úlines       r   Ú__str__zTracebackEntry.__str__è   s­   € ð	Ý�T”Y‘”ˆBˆBøÝŒxŒ~ð 	ð 	ð 	ØˆBˆBˆBð	øøøàŒzŒÔ#ˆð	Ý�t”~Ñ&Ô&×-Ò-Ñ/Ô/ˆDˆDøÝ ð 	ð 	ð 	Øð	ØˆDˆDˆDøøøØ+¨r°4´;¸q±=À$ÈÐ.MÑMÐMs   ‚ —0¯0Á&A, Á,A<c                 ó.   — | j         j        j        j        S r    )rM   r   r   r   r6   s    r   r   zTracebackEntry.nameö   s   € ØŒzŒÔ"Ô*Ð*r$   zco_name of underlaying coder    )r?   r@   rA   rB   rr   r�   r   rt   rC   rM   rx   rz   rQ   r)   r~   Úlocalsr‡   r‹   r–   r.   r™   r¢   r   r&   r$   r   ri   ri   ‰   sh  € € € € € Ø)Ð)à€KØ€Hð-ð -ð -ð ð  ð  ð ð6ð 6ñ „Xð6ð ð9ð 9ñ „Xð9ðPð Pð Pð ð0ð 0ñ „Xð0ð
 ð$ð $ñ „Xð$ð#ð #ð #àˆX�i  tÐ-JÑKÔK€Fð	ð 	ð 	ð3ð 3ð 3ð!ð !ð !ð !ð0 ˆX�iÑ Ô €Fðð ð ðNð Nð Nð+ð +ð +àˆ8�D˜$ Ð&CÑDÔD€D€D€Dr$   ri   c                   óL   ‡ — e Zd ZdZeZd„ Zd
d„Zˆ fd„Zd„ fd„Z	d„ Z
d	„ Zˆ xZS )Ú	Tracebackz_ Traceback objects encapsulate and offer higher level
        access to Traceback entries.
    c                 ó´   ‡ — t          |d¦  «        r+ˆ fd„}t                               ‰  ||¦  «        ¦  «         dS t                               ‰ |¦  «         dS )z0 initialize from given python traceback object. Útb_nextc              3   óT   •K  — | �"‰                      | ¦  «        V — | j        } | ­ d S d S r    )ÚEntryr¨   )Úcurr   s    €r   ÚfzTraceback.__init__.<locals>.f  s8   øè è € Ø�oØŸ*š* S™/œ/Ð)Ð)Ð)Øœ+�Cð �o�o�o�o�or$   N)r   Úlistr   )r   Útbr¬   s   `  r   r   zTraceback.__init__  sl   ø€ å�2�yÑ!Ô!ð 	$ð&ð &ð &ð &ð &õ �MŠM˜$   "¡¤Ñ&Ô&Ð&Ð&Ð&å�MŠM˜$ Ñ#Ô#Ð#Ð#Ð#r$   Nc                 ó  — | D ]~}|j         j        }|j        }|�||k    ra|�%t          |d¦  «        r|                     |¦  «        s:|�|j        |k    r-|�|j         j        j        |k    rt          |j        ¦  «        c S Œ| S )a±   return a Traceback instance wrapping part of this Traceback

            by provding any combination of path, lineno and firstlineno, the
            first frame to start the to-be-returned traceback is determined

            this allows cutting the first part of a Traceback instance e.g.
            for formatting reasons (removing some uninteresting bits that deal
            with handling of the exception/traceback)
        NÚrelto)	rM   r   r)   r   r°   rI   r   r¦   rk   )r   r)   rI   r   Úexcludepathr†   r   Úcodepaths           r   ÚcutzTraceback.cut  sŸ   € ð ð 	.ð 	.ˆAØ”7”<ˆDØ”yˆHØ� ¨TÒ!1Ð!1ØÐ$­G°H¸gÑ,FÔ,FÐ$Ø—^’^ KÑ0Ô0ð %à� 1¤8¨vÒ#5Ð#5ØÐ$¨¬¬Ô(@ÀKÒ(OÐ(OÝ  ¤Ñ-Ô-Ð-Ð-Ð-øØˆr$   c                 óÖ   •— t          t          | ¦  «                             |¦  «        }t          |t	          t          d¦  «        ¦  «        ¦  «        r|                      |¦  «        }|S r‰   )Úsuperr¦   Ú__getitem__r…   ÚtypeÚsliceÚ	__class__)r   r“   Úvalr¹   s      €r   r¶   zTraceback.__getitem__!  sT   ø€ Ý•I˜tÑ$Ô$×0Ò0°Ñ5Ô5ˆÝ�c�4¥ a¡¤™>œ>Ñ*Ô*ð 	&Ø—.’. Ñ%Ô%ˆCØˆ
r$   c                 ó,   — |                       ¦   «          S r    )r™   )r†   s    r   ú<lambda>zTraceback.<lambda>'  s   €  a§j¢j¡l¤lÐ"2€ r$   c                 ó<   — t          t          || ¦  «        ¦  «        S )as   return a Traceback instance with certain items removed

            fn is a function that gets a single argument, a TracebackItem
            instance, and should return True when the item should be added
            to the Traceback, False when not

            by default this removes all the TracebackItems which are hidden
            (see ishidden() above)
        )r¦   Úfilter)r   r    s     r   r¾   zTraceback.filter'  s   € õ �  DÑ)Ô)Ñ*Ô*Ð*r$   c                 óœ   — t          dt          | ¦  «         dz
  d¦  «        D ]"}| |         }|                     ¦   «         s|c S Œ#| d         S )zc return last non-hidden traceback entry that lead
        to the exception of a traceback.
        éÿÿÿÿr   )ÚrangeÚlenr™   )r   ÚiÚentrys      r   ÚgetcrashentryzTraceback.getcrashentry3  s]   € õ �r�C ™IœI˜: a™<¨Ñ,Ô,ð 	ð 	ˆAØ˜”GˆEØ—>’>Ñ#Ô#ð Ø���ðà�BŒxˆr$   c           	      óž  — i }t          | ¦  «        D ]º\  }}|j        j        j        t	          |j        j        j        ¦  «        |j        f}|                     |g ¦  «        }|rI|j        }|j        }|D ]8}| 	                    | 
                    t          ||¬¦  «        ¦  «        r|c c S Œ9|                     |j        j        ¦  «         Œ»dS )zŠ return the index of the frame/TracebackItem where recursion
            originates if appropriate, None if no recursion occurred
        )Ú__recursioncache_locals_1Ú__recursioncache_locals_2N)Ú	enumeraterM   r   r)   Úidr   rI   Ú
setdefaultrK   rb   rU   Úco_equalrd   )	r   ÚcacherÃ   rÄ   r“   Úlr¬   ÚlocÚotherlocs	            r   ÚrecursionindexzTraceback.recursionindex=  sì   € ð ˆÝ! $™œð 	+ð 	+‰HˆAˆuð
 ”+Ô"Ô'­¨E¬KÔ,<Ô,@Ñ)AÔ)AÀ5Ä<ÐOˆCà× Ò   bÑ)Ô)ˆAØð !Ø”K�Ø”j�Ø !ð !ð !�HØ—y’y §¢­Ø25Ø2:ð "(ñ "<ô "<ñ =ô =ð !ð  !˜˜˜˜˜ð!ð �HŠH�U”[Ô)Ñ*Ô*Ð*Ð*Øˆtr$   )NNNN)r?   r@   rA   rB   ri   rª   r   r³   r¶   r¾   rÅ   rÑ   Ú__classcell__)r¹   s   @r   r¦   r¦   û   s¦   ø€ € € € € ðð ð €Eð	$ð 	$ð 	$ðð ð ð ð*ð ð ð ð ð 3Ð2ð 
+ð 
+ð 
+ð 
+ðð ð ðð ð ð ð ð ð r$   r¦   z6__recursioncache_locals_1 == __recursioncache_locals_2ú?rU   c                   óP   — e Zd ZdZdZdd„Zd„ Zdd„Zd„ Zd	„ Z		 	 dd„Z
d„ Zd„ ZdS )ÚExceptionInfozX wraps sys.exc_info() objects and offers
        help for navigating the traceback.
    rO   Nc                 óÒ  — |€|t          j        ¦   «         }|€gt          |d         t          ¦  «        rLt	          |d         dd ¦  «        }|€t          |d         ¦  «        }|r|                     d¦  «        rd| _        || _        |d         | _	        |d         | _
        |d         | _        | j	        j        | _        t          j                             | j        ¦  «        | _        d S )Nr   Úmsgzassert zAssertionError: r   é   )ÚsysÚexc_infor…   ÚAssertionErrorÚgetattrr‚   Ú
startswithÚ
_striptextÚ_excinfor·   Úvaluer®   r?   Útypenamer   r   r¦   Ú	traceback)r   Útupr�   s      r   r   zExceptionInfo.__init__]  sÊ   € Øˆ;Ý”,‘.”.ˆCØÐ¥J¨s°1¬vµ~Ñ$FÔ$FÐÝ" 3 q¤6¨5°$Ñ7Ô7�ØÐ#Ý" 3 q¤6™{œ{�HØð 9 × 3Ò 3°IÑ >Ô >ð 9Ø&8�D”OØˆŒà˜”FˆŒ	à˜”VˆŒ
à�a”&ˆŒàœ	Ô*ˆŒåœ×*Ò*¨4¬7Ñ3Ô3ˆŒˆˆr$   c                 ó>   — d| j         t          | j        ¦  «        fz  S )Nz<ExceptionInfo %s tblen=%d>)rá   rÂ   râ   r6   s    r   rz   zExceptionInfo.__repr__r  s%   € Ø,ØŒM�3˜tœ~Ñ.Ô.ð00ñ 0ð 	0r$   Fc                 óü   — t          | j        | j        ¦  «        }d                     |¦  «        }|                     ¦   «         }|r6|                     | j        ¦  «        r|t          | j        ¦  «        d…         }|S )a.   return the exception as a string

            when 'tryshort' resolves to True, and the exception is a
            py.code._AssertionError, only the actual exception part of
            the exception representation is returned (so 'AssertionError: ' is
            removed from the beginning)
        rO   N)r	   r·   rà   ÚjoinÚrstriprÝ   rÞ   rÂ   )r   ÚtryshortÚlinesÚtexts       r   ÚexconlyzExceptionInfo.exconlyv  sp   € õ & d¤i°´Ñ<Ô<ˆØ�wŠw�u‰~Œ~ˆØ�{Š{‰}Œ}ˆØð 	3Ø�Š˜tœÑ/Ô/ð 3Ø�C ¤Ñ0Ô0Ð1Ð1Ô2�Øˆr$   c                 ó,   — t          | j        |¦  «        S )z4 return True if the exception is an instance of exc )r…   rà   )r   Úexcs     r   ÚerrisinstancezExceptionInfo.errisinstance†  s   € å˜$œ* cÑ*Ô*Ð*r$   c                 óÂ   — |                       d¬¦  «        }| j                             ¦   «         }|j        j        j        j        |j        }}t          ||dz   |¦  «        S )NT©rè   r   )	rë   râ   rÅ   rM   r   r   r   rI   ÚReprFileLocation)r   rë   rÄ   r)   rI   s        r   Ú_getreprcrashzExceptionInfo._getreprcrashŠ  sT   € Ø—,’,¨�,Ñ-Ô-ˆØ”×,Ò,Ñ.Ô.ˆØ”{Ô'Ô+Ô7¸¼ˆfˆÝ  f¨Q¡h°Ñ8Ô8Ð8r$   rq   Tc           
      ó  — |dk    r]t          t          t          j        | j        | j        | j        d         j        ¦  «        ¦  «        |                      ¦   «         ¦  «        S t          |||||¬¦  «        }| 	                    | ¦  «        S )aA   return str()able representation of this exception info.
            showlocals: show locals per traceback entry
            style: long|short|no|native traceback style
            tbfilter: hide entries (where __tracebackhide__ is true)

            in case of style==native, tbfilter and showlocals is ignored.
        Únativer   )Ú
showlocalsÚstyleÚabspathÚtbfilterÚfuncargs)
ÚReprExceptionInfoÚReprTracebackNativerâ   Úformat_exceptionr·   rà   rk   rò   ÚFormattedExcinfoÚrepr_excinfo)r   rõ   rö   r÷   rø   rù   Úfmts          r   ÚgetreprzExceptionInfo.getrepr�  s¡   € ð �HÒÐÝ$Õ%8ÝÔ*Ø”IØ”JØ”N 1Ô%Ô/ñô ñ&ô &ð
 ×&Ò&Ñ(Ô(ñ*ô *ð *õ Ø!¨Ø h¸ðCñ Cô Cˆð ×Ò Ñ%Ô%Ð%r$   c                 óš   — | j         d         }t          |j        |j        dz   |                      ¦   «         ¦  «        }t          |¦  «        S ©NrÀ   r   )râ   rñ   r)   rI   rë   r‚   ©r   rÄ   rÏ   s      r   r¢   zExceptionInfo.__str__¦  s;   € Ø”˜rÔ"ˆÝ˜uœz¨5¬<¸!Ñ+;¸T¿\º\¹^¼^ÑLÔLˆÝ�3‰xŒxˆr$   c                 ó¤   — | j         d         }t          |j        |j        dz   |                      ¦   «         ¦  «        }|                     ¦   «         S r  )râ   rñ   r)   rI   rë   Ú__unicode__r  s      r   r  zExceptionInfo.__unicode__«  s@   € Ø”˜rÔ"ˆÝ˜uœz¨5¬<¸!Ñ+;¸T¿\º\¹^¼^ÑLÔLˆØ�ŠÑ Ô Ð r$   )NNr>   )Frq   FTF)r?   r@   rA   rB   rÞ   r   rz   rë   rî   rò   r   r¢   r  r&   r$   r   rÕ   rÕ   X  s´   € € € € € ðð ð €Jð4ð 4ð 4ð 4ð*0ð 0ð 0ðð ð ð ð +ð +ð +ð9ð 9ð 9ð /5Ø7<ð&ð &ð &ð &ð,ð ð ð
!ð !ð !ð !ð !r$   rÕ   c                   ón   — e Zd ZdZdZdZ	 	 dd„Zd„ Zd	„ Zd
„ Z	d„ Z
dd„Zdd„Zd„ Zdd„Zd„ Zd„ Zd„ ZdS )rý   z@ presenting information about failing Functions and Generators. ú>ÚEFrq   Tc                 óZ   — || _         || _        || _        || _        || _        i | _        d S r    )rõ   rö   rø   rù   r÷   r’   )r   rõ   rö   r÷   rø   rù   s         r   r   zFormattedExcinfo.__init__·  s0   € à$ˆŒØˆŒ
Ø ˆŒØ ˆŒØˆŒØˆŒˆˆr$   c                 óH  — 	 t          |                     t          |¦  «        dz
  ¦  «        ¦  «        }n;# t          $ r ‚  	 t          |d         ¦  «        }n# t          $ r ‚  Y Y dS xY wY nxY wdt          |¦  «        t          |                     ¦   «         ¦  «        z
  z   S )Nr   rÀ   r   é   )r‚   rP   rÂ   rŸ   rž   )r   r.   Úss      r   Ú
_getindentzFormattedExcinfo._getindentÀ  s¶   € ð
	Ý�F×'Ò'­¨F©¬°A©Ñ6Ô6Ñ7Ô7ˆAˆAøÝ ð 	ð 	ð 	Øð	ðÝ˜˜rœ
‘O”O��øÝ$ð ð ð ØðØ�q�q�qøøøð	 �øøøð
 •C˜‘F”F�S §¢¡¤™_œ_Ñ,Ñ-Ð-s'   ‚25 µA-ÁAÁA-ÁA(Á$A-Á(A-c                 óf   — |                      | j        ¦  «        }|�|                     ¦   «         }|S r    )r–   r’   Údeindent)r   rÄ   r.   s      r   Ú_getentrysourcez FormattedExcinfo._getentrysourceÏ  s/   € Ø—’ ¤Ñ/Ô/ˆØÐØ—_’_Ñ&Ô&ˆFØˆr$   c                 ó@   — t           j                             |¦  «        S r    r\   )r   Úobjs     r   Ú	_safereprzFormattedExcinfo._safereprÕ  s   € ÝŒu�~Š~˜cÑ"Ô"Ð"r$   c                 óÌ   — | j         r\g }|j                             d¬¦  «        D ]/\  }}|                     ||                      |¦  «        f¦  «         Œ0t          |¦  «        S d S )NT)r;   )rù   rM   r=   rd   r  ÚReprFuncArgs)r   rÄ   ÚargsÚargnameÚargvalues        r   Ú	repr_argszFormattedExcinfo.repr_argsØ  sx   € ØŒ=ð 	&ØˆDØ%*¤[×%8Ò%8¸TÐ%8Ñ%BÔ%Bð Að AÑ!�˜Ø—’˜W d§n¢n°XÑ&>Ô&>Ð?Ñ@Ô@Ð@Ð@Ý Ñ%Ô%Ð%ð		&ð 	&r$   rÀ   Nc                 ó´  — g }|�|t          |j        ¦  «        k    r!t          j                             d¦  «        }d}|dk     r|t          |¦  «        z  }d}|r6|                     ||j        |                              ¦   «         z   ¦  «         n‚|j        d|…         D ]}|                     ||z   ¦  «         Œ|                     | j        dz   |j        |         z   ¦  «         |j        |dz   d…         D ]}|                     ||z   ¦  «         Œ|�D|rdn|                      |¦  «        }| 	                    |  
                    ||d¬	¦  «        ¦  «         |S )
z. return formatted and marked up source lines. Nr›   r   z    z   r   r  T)ÚindentÚmarkall)rÂ   ré   r   r   r5   rd   rƒ   Úflow_markerr  ÚextendÚget_exconly)	r   r.   Ú
line_indexÚexcinforp   ré   Úspace_prefixr¡   r  s	            r   Ú
get_sourcezFormattedExcinfo.get_sourceß  si  € àˆØˆ>˜Z­3¨v¬|Ñ+<Ô+<Ò<Ð<Ý”W—^’^ EÑ*Ô*ˆFØˆJØ˜Š>ˆ>Ø�#˜f™+œ+Ñ%ˆJØˆØð 	2Ø�LŠL˜¨¬°ZÔ(@×(FÒ(FÑ(HÔ(HÑHÑIÔIÐIÐIàœ [ j [Ô1ð 2ð 2�Ø—’˜\¨DÑ0Ñ1Ô1Ð1Ð1Ø�LŠL˜Ô)¨EÑ1°F´LÀÔ4LÑLÑMÔMÐMØœ Z°¡\ ] ]Ô3ð 2ð 2�Ø—’˜\¨DÑ0Ñ1Ô1Ð1Ð1ØÐØÐ<�Q�Q T§_¢_°VÑ%<Ô%<ˆFØ�LŠL˜×)Ò)¨'¸&È$Ð)ÑOÔOÑPÔPÐPØˆr$   r  c                 óÌ   — g }d|z  }|                      d¬¦  «                             d¦  «        }| j        |dd …         z   }|D ]}|                     ||z   ¦  «         |s|}Œ|S )Nú Trð   ú
r   )rë   ÚsplitÚfail_markerrd   )r   r!  r  r  ré   ÚexlinesÚ
failindentr¡   s           r   r  zFormattedExcinfo.get_exconlyõ  s   € ØˆØ�v‘ˆà—/’/¨4�/Ñ0Ô0×6Ò6°tÑ<Ô<ˆØÔ%¨¨q¨r¨r¬
Ñ2ˆ
Øð 	$ð 	$ˆDØ�LŠL˜ dÑ*Ñ+Ô+Ð+Øð $Ø#�
øØˆr$   c                 ó(  — | j         rŠg }d„ |D ¦   «         }|                     ¦   «          |D ]V}||         }|dk    r|                     d¦  «         Œ&|                      |¦  «        }|                     |d›d|›�¦  «         ŒWt	          |¦  «        S d S )Nc                 ó*   — g | ]}|d          dk    ¯|‘ŒS )r   ú@r&   )Ú.0rÏ   s     r   ú
<listcomp>z0FormattedExcinfo.repr_locals.<locals>.<listcomp>  s!   € Ð;Ð;Ð;˜C¨S°¬V°sª]¨]�C¨]¨]¨]r$   Ú__builtins__z__builtins__ = <builtins>Ú10ú = )rõ   Úsortrd   r  Ú
ReprLocals)r   r¤   ré   Úkeysr   rà   Ústr_reprs          r   Úrepr_localszFormattedExcinfo.repr_locals  s½   € ØŒ?ð 	%ØˆEØ;Ð; 6Ð;Ñ;Ô;ˆDØ�IŠI‰KŒKˆKØð Að A�Ø˜tœ�Ø˜>Ò)Ð)Ø—L’LÐ!<Ñ=Ô=Ð=Ð=ð
  $Ÿ~š~¨eÑ4Ô4�Hð —L’L°°°°°h°hÐ!?Ñ@Ô@Ð@Ð@õ
 ˜eÑ$Ô$Ð$ð)	%ð 	%r$   c                 ó  — |                       |¦  «        }|€"t          j                             d¦  «        }d}n*|j        t          |                     ¦   «         d¦  «        z
  }g }|j        }|€| j        }|dv rÉ|dk    }|s|  	                    |¦  «        nd }|  
                    ||||¬¦  «        }	|                     |	¦  «         |rd|j        z  }
n|r|j        pd}
|                      |j        ¦  «        }t!          ||j        dz   |
¦  «        }d }|s|                      |j        ¦  «        }t'          |||||¦  «        S |r*|                     |                      |d	¬
¦  «        ¦  «         t'          |d d d |¦  «        S )Nr›   r   ro   rp   )rp   zin %srO   r   r  )r  )r  r   r   r5   rI   rŠ   r‹   rr   rö   r  r#  r  r   rá   Ú	_makepathr)   rñ   r7  r¤   Ú	ReprEntryr  )r   rÄ   r!  r.   r   ré   rö   rp   Úreprargsr  Úmessager)   ÚfilelocreprÚ
localsreprs                 r   Úrepr_traceback_entryz%FormattedExcinfo.repr_traceback_entry  s—  € Ø×%Ò% eÑ,Ô,ˆØˆ>Ý”W—^’^ EÑ*Ô*ˆFØˆJˆJð œ­¨E×,DÒ,DÑ,FÔ,FÈÑ(JÔ(JÑJˆJàˆØÔ!ˆØˆ=Ø”JˆEØÐ%Ð%Ð%Ø˜WÒ$ˆEØ49ÐC�t—~’~ eÑ,Ô,Ð,¸tˆHØ—’ ¨
°GÀ5�ÑIÔIˆAØ�LŠL˜‰OŒOˆOØð =Ø! E¤JÑ/��à!Ð6 gÔ&6Ð<¸"�Ø—>’> %¤*Ñ-Ô-ˆDÝ*¨4°´¸a±ÀÑIÔIˆKØˆJØð =Ø"×.Ò.¨u¬|Ñ<Ô<�
Ý˜U H¨j¸+ÀuÑMÔMÐMØð 	>Ø�LŠL˜×)Ò)¨'¸!Ð)Ñ<Ô<Ñ=Ô=Ð=Ý˜  d¨D°%Ñ8Ô8Ð8r$   c                 óü   — | j         st	 t          j                             ¦   «                              |¦  «        }n# t
          $ r |cY S w xY wt          |¦  «        t          t          |¦  «        ¦  «        k     r|}|S r    )r÷   r   r)   r*   ÚbestrelpathÚOSErrorrÂ   r‚   )r   r)   Únps      r   r9  zFormattedExcinfo._makepath8  s{   € ØŒ|ð 	ðÝ”W—]’]‘_”_×0Ò0°Ñ6Ô6��øÝð ð ð Ø���ðøøøå�2‰wŒw��S ™YœY™œÒ'Ð'Ø�Øˆs   ‰1; »A
Á	A
c                 ó¬  — |j         }| j        r |j        ¦   «         }d }|                     t          ¦  «        r%dt          |j        ¦  «        v r |j        ¦   «         }|d         }g }d }t          |¦  «        D ]D\  }}||k    r|pd }	|  	                    ||	¦  «        }
| 
                    |
¦  «         ||k    rd} nŒEt          ||| j        ¬¦  «        S )Nz maximum recursion depth exceededrÀ   z/!!! Recursion detected (same locals & position))rö   )râ   rø   r¾   rî   ÚRuntimeErrorr‚   rà   rÑ   rÉ   r?  rd   ÚReprTracebackrö   )r   r!  râ   rÑ   ÚlastÚentriesÚ	extralineÚindexrÄ   ÚeinfoÚ	reprentrys              r   Úrepr_tracebackzFormattedExcinfo.repr_tracebackB  sÿ   € ØÔ%ˆ	ØŒ=ð 	+Ø(˜	Ô(Ñ*Ô*ˆIØˆØ× Ò ¥Ñ.Ô.ð 	<Ø1µS¸¼Ñ5GÔ5GÐGÐGØ!9 Ô!9Ñ!;Ô!;�Ø˜Œ}ˆØˆØˆ	Ý% iÑ0Ô0ð 	ð 	‰LˆE�5Ø˜U’]Ð/¨Ð7°4ˆEØ×1Ò1°%¸Ñ?Ô?ˆIØ�NŠN˜9Ñ%Ô%Ð%Ø˜Ò&Ð&ØM�	Ø�ð 'õ ˜W i°t´zÐBÑBÔBÐBr$   c                 ót   — |                       |¦  «        }|                     ¦   «         }t          ||¦  «        S r    )rM  rò   rú   )r   r!  ÚreprtracebackÚ	reprcrashs       r   rþ   zFormattedExcinfo.repr_excinfoV  s6   € Ø×+Ò+¨GÑ4Ô4ˆØ×)Ò)Ñ+Ô+ˆ	Ý  °	Ñ:Ô:Ð:r$   )Frq   TTF)rÀ   NF)r  Fr    )r?   r@   rA   rB   r  r(  r   r  r  r  r  r#  r  r7  r?  r9  rM  rþ   r&   r$   r   rý   rý   ±  sö   € € € € € ØJÐJà€KØ€Kà/5Ø7<ðð ð ð ð.ð .ð .ðð ð ð#ð #ð #ð&ð &ð &ðð ð ð ð,
ð 
ð 
ð 
ð%ð %ð %ð.9ð 9ð 9ð 9ð@ð ð ðCð Cð Cð(;ð ;ð ;ð ;ð ;r$   rý   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTerminalReprc                 ó„   — |                       ¦   «         }t          j        d         dk     r|                     d¦  «        }|S )Nr   r   zutf-8)r  rÙ   Úversion_infoÚencode)r   r  s     r   r¢   zTerminalRepr.__str__\  s<   € Ø×ÒÑÔˆÝÔ˜AÔ Ò"Ð"Ø—’˜Ñ!Ô!ˆAØˆr$   c                 óô   — t           j                             ¦   «         }t           j                             |¬¦  «        }|                      |¦  «         |                     ¦   «                              ¦   «         S )N)Úfile)r   r]   ÚTextIOÚTerminalWriterÚ
toterminalÚgetvaluerƒ   )r   r]   Útws      r   r  zTerminalRepr.__unicode__b  sW   € õ ŒU�\Š\‰^Œ^ˆÝŒU×!Ò! rÐ!Ñ*Ô*ˆØ�Š˜ÑÔÐØ�{Š{‰}Œ}×"Ò"Ñ$Ô$Ð$r$   c                 ó4   — d| j         t          | ¦  «        fz  S )Nz<%s instance at %0x>)r¹   rÊ   r6   s    r   rz   zTerminalRepr.__repr__j  s   € Ø%¨¬½¸4¹¼Ð'AÑAÐAr$   N)r?   r@   rA   r¢   r  rz   r&   r$   r   rR  rR  [  sF   € € € € € ðð ð ð%ð %ð %ðBð Bð Bð Bð Br$   rR  c                   ó"   — e Zd Zd„ Zdd„Zd„ ZdS )rú   c                 ó0   — || _         || _        g | _        d S r    )rO  rP  Úsections)r   rO  rP  s      r   r   zReprExceptionInfo.__init__o  s   € Ø*ˆÔØ"ˆŒØˆŒˆˆr$   ú-c                 ó@   — | j                              |||f¦  «         d S r    )r`  rd   )r   r   ÚcontentÚseps       r   Ú
addsectionzReprExceptionInfo.addsectiont  s%   € ØŒ×Ò˜d G¨SÐ1Ñ2Ô2Ð2Ð2Ð2r$   c                 ó¬   — | j                              |¦  «         | j        D ]1\  }}}|                     ||¦  «         |                     |¦  «         Œ2d S r    )rO  rZ  r`  rd  r¡   )r   r\  r   rc  rd  s        r   rZ  zReprExceptionInfo.toterminalw  sd   € ØÔ×%Ò% bÑ)Ô)Ð)Ø"&¤-ð 	ð 	ÑˆD�'˜3Ø�FŠF�3˜ÑÔÐØ�GŠG�GÑÔÐÐð	ð 	r$   N)ra  )r?   r@   rA   r   re  rZ  r&   r$   r   rú   rú   n  sF   € € € € € ðð ð ð
3ð 3ð 3ð 3ðð ð ð ð r$   rú   c                   ó   — e Zd ZdZd„ Zd„ ZdS )rF  ú_ c                 ó0   — || _         || _        || _        d S r    )ÚreprentriesrI  rö   )r   rj  rI  rö   s       r   r   zReprTraceback.__init__€  s   € Ø&ˆÔØ"ˆŒØˆŒ
ˆ
ˆ
r$   c                 óº  — d }t          | j        ¦  «        D ] \  }}|j        dk    r|                     d¦  «         |                     |¦  «         |t          | j        ¦  «        dz
  k     rK| j        |dz            }|j        dk    s|j        dk    r%|j        dk    r|                     | j        ¦  «         Œ¡| j        r|                     | j        ¦  «         d S d S )Nrq   rO   r   rp   )	rÉ   rj  rö   r¡   rZ  rÂ   rd  ÚentryseprI  )r   r\  Ú
last_stylerÃ   rÄ   Ú
next_entrys         r   rZ  zReprTraceback.toterminal…  së   € àˆ
Ý! $Ô"2Ñ3Ô3ð 	*ð 	*‰HˆAˆuØŒ{˜fÒ$Ð$Ø—’˜‘”�Ø×Ò˜RÑ Ô Ð Ø•3�tÔ'Ñ(Ô(¨1Ñ,Ò,Ð,Ø!Ô-¨a°©cÔ2�
Ø”; &Ò(Ð(Ø”; 'Ò)Ð)¨jÔ.>À&Ò.HÐ.HØ—F’F˜4œ=Ñ)Ô)Ð)øàŒ>ð 	$Ø�GŠG�D”NÑ#Ô#Ð#Ð#Ð#ð	$ð 	$r$   N)r?   r@   rA   rl  r   rZ  r&   r$   r   rF  rF  }  s7   € € € € € Ø€Hðð ð ð
$ð $ð $ð $ð $r$   rF  c                   ó   — e Zd Zd„ ZdS )rû   c                 óL   — d| _         t          |¦  «        g| _        d | _        d S )Nrô   )rö   ÚReprEntryNativerj  rI  ©r   Útbliness     r   r   zReprTracebackNative.__init__–  s'   € ØˆŒ
Ý+¨GÑ4Ô4Ð5ˆÔØˆŒˆˆr$   N)r?   r@   rA   r   r&   r$   r   rû   rû   •  s#   € € € € € ðð ð ð ð r$   rû   c                   ó   — e Zd ZdZd„ Zd„ ZdS )rq  rô   c                 ó   — || _         d S r    ©ré   rr  s     r   r   zReprEntryNative.__init__ž  s   € ØˆŒ
ˆ
ˆ
r$   c                 ó`   — |                      d                     | j        ¦  «        ¦  «         d S )NrO   )Úwriteræ   ré   )r   r\  s     r   rZ  zReprEntryNative.toterminal¡  s(   € Ø
�Š�—’˜œÑ$Ô$Ñ%Ô%Ð%Ð%Ð%r$   N)r?   r@   rA   rö   r   rZ  r&   r$   r   rq  rq  ›  s7   € € € € € Ø€Eðð ð ð&ð &ð &ð &ð &r$   rq  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )r:  rh  c                 óL   — || _         || _        || _        || _        || _        d S r    )ré   ÚreprfuncargsÚ
reprlocalsÚreprfilelocrö   )r   ré   r{  r|  r=  rö   s         r   r   zReprEntry.__init__§  s+   € ØˆŒ
Ø(ˆÔØ$ˆŒØ&ˆÔØˆŒ
ˆ
ˆ
r$   c                 ó\  — | j         dk    rS| j                             |¦  «         | j        D ]/}|                     d¦  «        }|                     |d|¬¦  «         Œ0d S | j        r| j                             |¦  «         | j        D ]/}|                     d¦  «        }|                     |d|¬¦  «         Œ0| j        r/|                     d¦  «         | j                             |¦  «         | j        r8| j        r|                     d¦  «         | j                             |¦  «         d S d S )Nrp   zE   T)ÚboldÚredrO   )rö   r}  rZ  ré   rÝ   r¡   r{  r|  )r   r\  r¡   r€  s       r   rZ  zReprEntry.toterminal®  sA  € ØŒ:˜Ò Ð ØÔ×'Ò'¨Ñ+Ô+Ð+Øœ
ð 2ð 2�Ø—o’o fÑ-Ô-�Ø—’˜ 4¨S�Ñ1Ô1Ð1Ð1àˆFØÔð 	-ØÔ×(Ò(¨Ñ,Ô,Ð,Ø”Jð 	.ð 	.ˆDØ—/’/ &Ñ)Ô)ˆCØ�GŠG�D˜t¨ˆGÑ-Ô-Ð-Ð-ØŒ?ð 	+à�GŠG�B‰KŒKˆKØŒO×&Ò& rÑ*Ô*Ð*ØÔð 	,ØŒzð Ø—’˜‘”�ØÔ×'Ò'¨Ñ+Ô+Ð+Ð+Ð+ð	,ð 	,r$   c                 óZ   — d                      | j        ¦  «        ›d| j        ›d| j        ›�S )Nr&  )ræ   ré   r|  r}  r6   s    r   r¢   zReprEntry.__str__Ä  s5   € Ø#Ÿyšy¨¬Ñ4Ô4Ð4Ð4Ø#œ˜˜Ø#Ô/Ð/ð1ð 	1r$   N)r?   r@   rA   Ú	localssepr   rZ  r¢   r&   r$   r   r:  r:  ¤  sF   € € € € € Ø€Iðð ð ð,ð ,ð ,ð,1ð 1ð 1ð 1ð 1r$   r:  c                   ó   — e Zd Zd„ Zd„ ZdS )rñ   c                 óJ   — t          |¦  «        | _        || _        || _        d S r    )r‚   r)   rI   r<  )r   r)   rI   r<  s       r   r   zReprFileLocation.__init__Ê  s!   € Ý˜‘I”IˆŒ	ØˆŒØˆŒˆˆr$   c                 ó¬   — | j         }|                     d¦  «        }|dk    r
|d |…         }|                     | j        ›d| j        ›d|›�¦  «         d S )Nr&  rÀ   ú:z: )r<  Úfindr¡   r)   rI   )r   r\  r×   rÃ   s       r   rZ  zReprFileLocation.toterminalÏ  s]   € ð ŒlˆØ�HŠH�T‰NŒNˆØ�Š7ˆ7Ø�b�q�b”'ˆCØ
�Š˜dœi˜i˜i¨¬¨¨°c°cÐ:Ñ;Ô;Ð;Ð;Ð;r$   N©r?   r@   rA   r   rZ  r&   r$   r   rñ   rñ   É  s2   € € € € € ðð ð ð
<ð <ð <ð <ð <r$   rñ   c                   ó   — e Zd Zd„ Zd„ ZdS )r4  c                 ó   — || _         d S r    rv  )r   ré   s     r   r   zReprLocals.__init__Ù  s   € ØˆŒ
ˆ
ˆ
r$   c                 óD   — | j         D ]}|                     |¦  «         Œd S r    )ré   r¡   )r   r\  r¡   s      r   rZ  zReprLocals.toterminalÜ  s.   € Ø”Jð 	ð 	ˆDØ�GŠG�D‰MŒMˆMˆMð	ð 	r$   Nrˆ  r&   r$   r   r4  r4  Ø  s2   € € € € € ðð ð ðð ð ð ð r$   r4  c                   ó   — e Zd Zd„ Zd„ ZdS )r  c                 ó   — || _         d S r    )r  )r   r  s     r   r   zReprFuncArgs.__init__á  s   € ØˆŒ	ˆ	ˆ	r$   c                 ó@  — | j         r–d}| j         D ]^\  }}|›d|›�}t          |¦  «        t          |¦  «        z   dz   |j        k    r|r|                     |¦  «         |}ŒQ|r	|d|z   z  }Œ\|}Œ_|r|                     |¦  «         |                     d¦  «         d S d S )NrO   r2  rØ   z, )r  rÂ   Ú	fullwidthr¡   )r   r\  Ú	linesofarr   rà   Únss         r   rZ  zReprFuncArgs.toterminalä  sÐ   € ØŒ9ð 	ØˆIØ#œyð 
'ð 
'‘��eØ!%   u uÐ-�Ý�r‘7”7�S ™^œ^Ñ+¨aÑ/°"´,Ò>Ð>Ø ð +ØŸš 	Ñ*Ô*Ð*Ø!#�I�Ià ð 'Ø! T¨B¡YÑ.˜	˜	à$&˜	˜	Øð #Ø—’˜	Ñ"Ô"Ð"Ø�GŠG�B‰KŒKˆKˆKˆKð	ð 	r$   Nrˆ  r&   r$   r   r  r  à  s2   € € € € € ðð ð ðð ð ð ð r$   r  Tc                 ó®  — | reddl m}  t                               dg ¦  «        }|                     t
          j        j        j        ¦  «         | j        t
          j        j        _        |rkt                               dg ¦  «        }|                     t
          j        j        j	        ¦  «         t
          j
        j	        t
          j        j        _	        dS dS )z? put compile and AssertionError builtins to Python's builtins. r   )Ú	assertionrÛ   ÚcompileN)r/   r“  ÚoldbuiltinsrË   rd   r   rY   ÚbuiltinsrÛ   r”  r   )r“  r”  rÎ   s      r   Úpatch_builtinsr—  ú  sµ   € àð FØ&Ð&Ð&Ð&Ð&Ð&Ý×"Ò"Ð#3°RÑ8Ô8ˆØ	�Š•”Ô$Ô3Ñ4Ô4Ð4Ø-6Ô-E�Œ
ÔÔ*Øð 6Ý×"Ò" 9¨bÑ1Ô1ˆØ	�Š•”Ô$Ô,Ñ-Ô-Ð-Ý&(¤g¤o�Œ
ÔÔ#Ð#Ð#ð6ð 6r$   c                 óÞ   — | r3t           d                              ¦   «         t          j        j        _        |r5t           d                              ¦   «         t          j        j        _        dS dS )zB remove compile and AssertionError builtins from Python builtins. rÛ   r”  N)r•  Úpopr   rY   r–  rÛ   r”  )r“  r”  s     r   Úunpatch_builtinsrš    sc   € àð QÝ-8Ð9IÔ-J×-NÒ-NÑ-PÔ-P�Œ
ÔÔ*Øð CÝ&1°)Ô&<×&@Ò&@Ñ&BÔ&B�Œ
ÔÔ#Ð#Ð#ðCð Cr$   c                 ót  — 	 | j         S # t          $ r¤ t          | d| ¦  «        } t          | d| ¦  «        } t          | d| ¦  «        } t          | d| ¦  «        } |rYt          | d¦  «        sIt          | d¦  «        r9t	          | ¦  «        s*t          | j        d¬¦  «        }t          |d¦  «        r|cY S | cY S w xY w)	z( return code object for given function. Úim_funcÚ	func_coderL   Ú__code__r   Ú__call__F)Útrycall)rž  r   rÜ   r   r   r   rŸ  )r  r   r†   s      r   r   r     sà   € ðØŒ|ÐøÝð 
ð 
ð 
Ý�c˜9 cÑ*Ô*ˆÝ�c˜;¨Ñ,Ô,ˆÝ�c˜8 SÑ)Ô)ˆÝ�c˜: sÑ+Ô+ˆØð 	�7 3Ð(8Ñ9Ô9ð 	Ý�s˜JÑ'Ô'ð µ¸±´ð Ý˜sœ|°UÐ;Ñ;Ô;�Ý˜1Ð.Ñ/Ô/ð Ø�H�H�HØˆ
ˆ
ˆ
ð
øøøs   ‚	 ‰B'B7Â2B7Â6B7)TT)T)&r   rÙ   Úinspectr   r   r   r   Úbuiltin_reprrY   Ú
_tryimportr   rT  râ   r	   Úpy._code._py2tracebackr`   r   rE   ri   r­   r¦   r”  rÌ   rÕ   rý   rR  rú   rF  rû   rq  r:  rñ   r4  r  r•  r—  rš  r   r&   r$   r   ú<module>r¥     s®  ðØ 	€	€	€	Ø 
€
€
€
Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à€à
Œ*×
Ò
 ¨	Ñ
2Ô
2€àÔ�AÔ˜!ÒÐØ/Ð/Ð/Ð/Ð/Ð/Ð/à<Ð<Ð<Ð<Ð<Ð<à Ð Ð Ð ð9*ð 9*ð 9*ð 9*ð 9*ˆ6ñ 9*ô 9*ð 9*ðv:ð :ð :ð :ð :ˆFñ :ô :ð :ðzoEð oEð oEð oEð oE�Vñ oEô oEð oEðdXð Xð Xð Xð X�ñ Xô Xð Xðt ˆ7ÐKØ˜ñ ô  €ðV!ð V!ð V!ð V!ð V!�Fñ V!ô V!ð V!ðrh;ð h;ð h;ð h;ð h;�vñ h;ô h;ð h;ðTBð Bð Bð Bð Bñ Bô Bð Bð&ð ð ð ð ˜ñ ô ð ð$ð $ð $ð $ð $�Lñ $ô $ð $ð0ð ð ð ð ˜-ñ ô ð ð&ð &ð &ð &ð &�lñ &ô &ð &ð#1ð #1ð #1ð #1ð #1�ñ #1ô #1ð #1ðJ<ð <ð <ð <ð <�|ñ <ô <ð <ðð ð ð ð �ñ ô ð ðð ð ð ð �<ñ ô ð ð0 €ð
6ð 
6ð 
6ð 
6ðCð Cð Cð Cðð ð ð ð ð r$   