Ë
    �š¾jÅ·  ã                   ó®  — d Z ddlZddlZddlZddlZddlZddlZddlmZ  G d„ d«      Z	 G d„ d«      Z
ej                  d	   j                  e
«      d	   Zd
„ Z ee«      Z ee	«      d   Zd„ Zd„ Z G d„ de«      Zd„ Z G d„ de
e¬«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z ed«      Z G d„ de«      Z G d„ d e«      Z y)!z7Core object proxy and function wrapper implementations.é    Né   )ÚWrapperNotInitializedErrorc                   óÜ   — e Zd Zed„ «       Zej                  d„ «       Zej
                  d„ «       Zed„ «       Zej                  d„ «       Zej
                  d„ «       Zed„ «       Zed„ «       Zy	)
Ú_ObjectProxyMethodsc                 ó.   — | j                   j                  S ©N©Ú__wrapped__Ú
__module__©Úselfs    úX/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/wrapt/wrappers.pyr   z_ObjectProxyMethods.__module__   s   € à×Ñ×*Ñ*Ð*ó    c                 ó&   — || j                   _        y r   r	   ©r   Úvalues     r   r   z_ObjectProxyMethods.__module__#   s   € à&+ˆ×ÑÕ#r   c                 ó   — | j                   `y r   r	   r   s    r   r   z_ObjectProxyMethods.__module__'   s   € à×ÑÑ'r   c                 ó.   — | j                   j                  S r   ©r
   Ú__doc__r   s    r   r   z_ObjectProxyMethods.__doc__+   s   € à×Ñ×'Ñ'Ð'r   c                 ó&   — || j                   _        y r   r   r   s     r   r   z_ObjectProxyMethods.__doc__/   s   € à#(ˆ×ÑÕ r   c                 ó   — | j                   `y r   r   r   s    r   r   z_ObjectProxyMethods.__doc__3   s   € à×ÑÑ$r   c                 ó.   — | j                   j                  S r   )r
   Ú__dict__r   s    r   r   z_ObjectProxyMethods.__dict__:   ó   € à×Ñ×(Ñ(Ð(r   c                 ó.   — | j                   j                  S r   )r
   Ú__weakref__r   s    r   r   z_ObjectProxyMethods.__weakref__C   s   € à×Ñ×+Ñ+Ð+r   N)	Ú__name__r   Ú__qualname__ÚpropertyÚsetterÚdeleterr   r   r   © r   r   r   r      s¶   „ ð$ ñ+ó ð+ð ×Ññ,ó ð,ð ×Ññ(ó ð(ð ñ(ó ð(ð ‡^�^ñ)ó ð)ð ‡_�_ñ%ó ð%ð ñ)ó ð)ð ñ,ó ñ,r   r   c                   ó   — e Zd ZdZy)Ú_ObjectProxyDictBaseaˆ  Base class whose sole purpose is to provide a ``getset_descriptor``
    for ``__dict__`` that is valid for all ``ObjectProxy`` subclasses.
    The metaclass installs this descriptor as ``__self_dict__`` so that
    the real instance dictionary of the proxy can always be accessed,
    even though ``ObjectProxy`` replaces ``__dict__`` with a property
    that delegates to the wrapped object.N)r   r   r   r   r#   r   r   r%   r%   H   s   „ ñ-ð 	r   r%   r   c                 ó,   — t         j                  | «      S r   )Ú_REAL_DICT_DESCRIPTORÚ__get__r   s    r   Ú_get_self_dictr)   X   s   € Ü ×(Ñ(¨Ó.Ð.r   r   c                 óR   — | �t        | t        «      ryt        t        | «      d«      S )NFr(   )Ú
isinstanceÚstrÚhasattrÚtype)Úentrys    r   Ú_is_doc_descriptorr0   j   s&   € ð
 €}œ
 5¬#Ô.ØÜ”4˜“; 	Ó*Ð*r   c                 ó    — | D ]I  }|j                   D ]8  }t        |«      j                  d«      }|t        u r  y t	        |«      sŒ4|c c S  ŒK y )Nr   )Ú__mro__ÚvarsÚgetÚ_DEFAULT_DOC_PROPERTYr0   )ÚbasesÚbaseÚklassr/   s       r   Ú_inherited_doc_descriptorr9   t   sV   € ð ò ˆØ—\‘\ò 	ˆEÜ˜“K—O‘O IÓ.ˆEØÔ-Ñ-ÚÜ! %Õ(Ø”ñ	ðð r   c                   óz   — e Zd Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zd„ Zy)Ú_ObjectProxyMetaTypec                 ó:   — | j                   j                  dd«      S )NÚ_cls_real_moduleÚbuiltins©r   r4   ©Úclss    r   r   z_ObjectProxyMetaType.__module__Ž   s   € à�|‰|×ÑÐ 2°JÓ?Ð?r   c                 ó2   — t         j                  | d|«       y )Nr=   ©r.   Ú__setattr__©rA   r   s     r   r   z_ObjectProxyMetaType.__module__’   s   € ä×Ñ˜Ð0°%Õ8r   c                 ó8   — | j                   j                  d«      S ©NÚ_cls_real_docr?   r@   s    r   r   z_ObjectProxyMetaType.__doc__–   s   € à�|‰|×Ñ Ó0Ð0r   c                 ó2   — t         j                  | d|«       y rG   rC   rE   s     r   r   z_ObjectProxyMetaType.__doc__š   s   € ä×Ñ˜˜o¨uÕ5r   c                 óº  — |j                  d«      }|j                  d«      }|j                  d«      }t        |«      r|}d }nt        |«      }|j                  t	        t
        «      «       |�||d<   |�||d<   |j                  dt        «       t        j                  | |||«      }|�t        j                  |d|«       |�t        j                  |d|«       |S )Nr   r   r   Ú__self_dict__r=   rH   )r4   r0   r9   Úupdater3   r   Ú
setdefaultÚ_SELF_DICT_PROPERTYr.   Ú__new__rD   )	rA   Únamer6   Ú
dictionaryÚreal_moduleÚreal_docÚcustom_dictÚ
custom_docr8   s	            r   rO   z_ObjectProxyMetaType.__new__ž   sÝ   € ð !—n‘n \Ó2ˆØ—>‘> )Ó,ˆð !—n‘n ZÓ0ˆô ˜hÔ'Ø!ˆJØ‰Hä2°5Ó9ˆJà×Ñœ$Ô2Ó3Ô4àÐ"Ø%0ˆJ�zÑ"àÐ!Ø$.ˆJ�yÑ!à×Ñ˜oÔ/BÔCä—‘˜S $¨¨zÓ:ˆàÐ"Ü×Ñ˜UÐ$6¸ÔDØÐÜ×Ñ˜U O°XÔ>àˆr   N)r   r   r   r    r!   r   rO   r#   r   r   r;   r;   …   sc   „ ð ñ@ó ð@ð ×Ññ9ó ð9ð ñ1ó ð1ð ‡^�^ñ6ó ð6ó8r   r;   c                 óP   — t        t        | «      t        «      r| j                  S | S r   )Ú
issubclassr.   ÚObjectProxyr
   )Úothers    r   Ú_unwrap_operandrZ   Ù   s#   € ô ”$�u“+œ{Ô+Ø× Ñ Ð Ø€Lr   c                   ó¶  ‡ — e Zd ZdZed„ «       Zˆ fd„Zd„ Zed„ «       Z	d„ Z
ed„ «       Z e j                  d„ «       Z ed	„ «       Zej                  d
„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd`d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6d5„ Z7d6„ Z8d7„ Z9d8„ Z:d9„ Z;d:„ Z<d;„ Z=d<„ Z>d=„ Z?d>„ Z@d?„ ZAd@„ ZBdA„ ZCdB„ ZDdC„ ZEdD„ ZFdE„ ZGdF„ ZHdG„ ZIdH„ ZJdI„ ZKdJ„ ZLdK„ ZMdL„ ZNdM„ ZOdN„ ZPdO„ ZQdP„ ZRdQ„ ZSdR„ ZTdS„ ZUdT„ ZVdU„ ZWdV„ ZXdW„ ZYdX„ ZZdY„ Z[dZ„ Z\d[„ Z]d\„ Z^d]„ Z_d^„ Z`d_„ Zaˆ xZbS )arX   zSA transparent object proxy that delegates attribute access to a
    wrapped object.c                ó.   — t        j                  | |«      S r   )ÚtypesÚGenericAlias)rA   Úitems     r   Ú__class_getitem__zObjectProxy.__class_getitem__ï   s   € ä×!Ñ! # tÓ,Ð,r   c                 ó"   •— t         ‰| �  | «      S r   )ÚsuperrO   )rA   ÚargsÚkwargsÚ	__class__s      €r   rO   zObjectProxy.__new__ó   s   ø€ ô ‰w‰˜sÓ#Ð#r   c                 ó8  — |€2	 t         j                  | d«      }|�n/t         j                  | d|«       nt         j                  | d|«       t         j                  | dd«       	 t         j                  | d|j                  «       t
        j                  dk\  r#	 t         j                  | d|j                  «       y	 t         j                  | d	|j                  «       y# t        $ r d}Y ŒÑw xY w# t        $ r Y Œuw xY w# t        $ r Y yw xY w# t        $ r Y yw xY w)
z/Create an object proxy around the given object.NÚ__wrapped_factory__r
   Ú__init_called__Tr   ©é   é   Ú__annotate__Ú__annotations__)	ÚobjectÚ__getattribute__ÚAttributeErrorrD   r   ÚsysÚversion_inforl   rm   )r   ÚwrappedÚcallbacks      r   Ú__init__zObjectProxy.__init__   s  € ð ˆ?ð Ü!×2Ñ2°4Ð9NÓO�ð Ð#ð ô ×"Ñ" 4¨¸Õ@ä×Ñ˜t ]°GÔ<ä×Ñ˜4Ð!2°DÔ9ð	Ü×Ñ˜t ^°W×5IÑ5IÔJô ×Ñ˜wÒ&ðÜ×"Ñ" 4¨¸×9MÑ9MÕNðÜ×"Ñ" 4Ð):¸G×<SÑ<SÕTøôS "ò  Ø’ð ûô0 ò 	Ùð	ûô "ò Ùðûô
 "ò ÙðúsG   „C Á$!C/ Â!C> Â<!D ÃC,Ã+C,Ã/	C;Ã:C;Ã>	D
Ä	D
Ä	DÄDc                 ó   — t         S r   )rX   r   s    r   Ú__object_proxy__zObjectProxy.__object_proxy__3  s   € äÐr   c                 ó2   — t         j                  | ||«       y r   )rn   rD   )r   rP   r   s      r   Ú__self_setattr__zObjectProxy.__self_setattr__7  s   € Ü×Ñ˜4  uÕ-r   c                 ó.   — | j                   j                  S r   ©r
   r   r   s    r   r   zObjectProxy.__name__:  r   r   c                 ó&   — || j                   _        y r   r{   r   s     r   r   zObjectProxy.__name__>  s   € à$)ˆ×ÑÕ!r   c                 ó.   — | j                   j                  S r   ©r
   re   r   s    r   re   zObjectProxy.__class__B  s   € à×Ñ×)Ñ)Ð)r   c                 ó&   — || j                   _        y r   r~   r   s     r   re   zObjectProxy.__class__F  s   € à%*ˆ×ÑÕ"r   c                 ó,   — t        | j                  «      S r   )Údirr
   r   s    r   Ú__dir__zObjectProxy.__dir__J  ó   € Ü�4×#Ñ#Ó$Ð$r   c                 ó,   — t        | j                  «      S r   )r,   r
   r   s    r   Ú__str__zObjectProxy.__str__M  rƒ   r   c                 ó,   — t        | j                  «      S r   )Úbytesr
   r   s    r   Ú	__bytes__zObjectProxy.__bytes__P  ó   € Ü�T×%Ñ%Ó&Ð&r   c           
      ó¼   — dt        | «      j                  › dt        | «      d›dt        | j                  «      j                  › dt        | j                  «      d›d�	S )Nú<z at 0xÚxz for ú>)r.   r   Úidr
   r   s    r   Ú__repr__zObjectProxy.__repr__S  sY   € Ø”4˜“:×&Ñ&Ð' v¬b°«h°q¨\¸¼tÀD×DTÑDTÓ?U×?^Ñ?^Ð>_Ð_eÔfhÐim×iyÑiyÓfzÐ{|Ðe}Ð}~ÐÐr   c                 ó.   — t        | j                  |«      S r   )Úformatr
   )r   Úformat_specs     r   Ú
__format__zObjectProxy.__format__V  s   € Ü�d×&Ñ&¨Ó4Ð4r   c                 ó,   — t        | j                  «      S r   )Úreversedr
   r   s    r   Ú__reversed__zObjectProxy.__reversed__Y  s   € Ü˜×(Ñ(Ó)Ð)r   c                 ó.   — t        | j                  |«      S r   )Úroundr
   )r   Úndigitss     r   Ú	__round__zObjectProxy.__round__\  s   € Ü�T×%Ñ% wÓ/Ð/r   c                 ó@   — t        j                  | j                  «      S r   )ÚmathÚtruncr
   r   s    r   Ú	__trunc__zObjectProxy.__trunc___  ó   € Ü�z‰z˜$×*Ñ*Ó+Ð+r   c                 ó@   — t        j                  | j                  «      S r   )rœ   Úfloorr
   r   s    r   Ú	__floor__zObjectProxy.__floor__b  rŸ   r   c                 ó@   — t        j                  | j                  «      S r   )rœ   Úceilr
   r   s    r   Ú__ceil__zObjectProxy.__ceil__e  s   € Ü�y‰y˜×)Ñ)Ó*Ð*r   c                 ó²   — t        | j                  t        «      s1t        | j                  d«      r| j                  j	                  |«      S | j                  fS )NÚ__mro_entries__)r+   r
   r.   r-   r§   )r   r6   s     r   r§   zObjectProxy.__mro_entries__h  sM   € Ü˜$×*Ñ*¬DÔ1´gØ×ÑÐ/ô7
ð ×#Ñ#×3Ñ3°EÓ:Ð:Ø× Ñ Ð"Ð"r   c                 ó    — | j                   |k  S r   ©r
   ©r   rY   s     r   Ú__lt__zObjectProxy.__lt__o  ó   € Ø×Ñ %Ñ'Ð'r   c                 ó    — | j                   |k  S r   r©   rª   s     r   Ú__le__zObjectProxy.__le__r  ó   € Ø×Ñ 5Ñ(Ð(r   c                 ó    — | j                   |k(  S r   r©   rª   s     r   Ú__eq__zObjectProxy.__eq__u  r¯   r   c                 ó    — | j                   |k7  S r   r©   rª   s     r   Ú__ne__zObjectProxy.__ne__x  r¯   r   c                 ó    — | j                   |kD  S r   r©   rª   s     r   Ú__gt__zObjectProxy.__gt__{  r¬   r   c                 ó    — | j                   |k\  S r   r©   rª   s     r   Ú__ge__zObjectProxy.__ge__~  r¯   r   c                 ó,   — t        | j                  «      S r   )Úhashr
   r   s    r   Ú__hash__zObjectProxy.__hash__�  ó   € Ü�D×$Ñ$Ó%Ð%r   c                 ó,   — t        | j                  «      S r   )Úboolr
   r   s    r   Ú__bool__zObjectProxy.__bool__„  r»   r   c                 ó¼  — |j                  d«      rt        j                  | ||«       y |dk(  rît        j                  | ||«       	 t        j                  | d«       	 t        j                  | d|j
                  «       t        j                  dk\  r:	 t        j                  | d«       	 t        j                  | d|j                  «       n9	 t        j                  | d«       	 t        j                  | d|j                  «       t        | dd «      }|� |«        y y |dk(  r/t        | j                  ||«       t        j                  | ||«       y |dk(  r/t        | j                  ||«       t        j                  | ||«       y |dk(  r/t        | j                  ||«       t        j                  | ||«       y t        t        | «      |«      rt        j                  | ||«       y t        | j                  ||«       y # t        $ r Y �Œ­w xY w# t        $ r Y �Œ›w xY w# t        $ r Y �Œ�w xY w# t        $ r Y �Œ5w xY w# t        $ r Y �Œgw xY w# t        $ r Y �ŒUw xY w)NÚ_self_r
   r   ri   rl   rm   Ú__wrapped_setattr_fixups__)Ú
startswithrn   rD   Ú__delattr__rp   r   rq   rr   rl   rm   ÚgetattrÚsetattrr
   r-   r.   )r   rP   r   rÁ   s       r   rD   zObjectProxy.__setattr__‡  s9  € Ø�?‰?˜8Ô$Ü×Ñ˜t T¨5Õ1à�]Ò"Ü×Ñ˜t T¨5Ô1ðÜ×"Ñ" 4¨Ô8ðÜ×"Ñ" 4¨¸×9KÑ9KÔLô ×Ñ 7Ò*ðÜ×&Ñ& t¨^Ô<ðÜ×&Ñ& t¨^¸U×=OÑ=OÕPðÜ×&Ñ& tÐ->Ô?ðÜ×&Ñ& tÐ->À×@UÑ@UÔVô *1ØÐ2°Dó*Ð&ð *Ð5Ù*Õ,ð 6ð �^Ò#Ü�D×$Ñ$ d¨EÔ2Ü×Ñ˜t T¨5Õ1àÐ&Ò&Ü�D×$Ñ$ d¨EÔ2Ü×Ñ˜t T¨5Õ1à�^Ò#Ü�D×$Ñ$ d¨EÔ2Ü×Ñ˜t T¨5Õ1ä”T˜$“Z Ô&Ü×Ñ˜t T¨5Õ1ô �D×$Ñ$ d¨EÕ2øôa "ò Úðûô "ò Úðûô
 &ò Úðûô &ò Úðûô
 &ò Úðûô &ò Úðúsl   ÁG> Á!H ÂH Â*!H. ÃH> Ã$!I Ç>	HÈ
HÈ	HÈHÈ	H+È*H+È.	H;È:H;È>	IÉ
IÉ	IÉIc                 óZ  — |dk(  r1	 t         j                  | d«       t        j                  | d«      «       S t        | j                  |«      S # t        $ r Y nw xY w	 t         j                  | d«       t        d«      ‚# t        $ r# t        dt        | «      j                  › d�«      ‚w xY w)Nr
   rg   Ú__wrapped_get__rh   ú'z'' object has no attribute '__wrapped__'z;wrapper is in an inconsistent state: __wrapped__ is not set)rn   ro   rp   r.   r   r   rÄ   r
   ©r   rP   s     r   Ú__getattr__zObjectProxy.__getattr__Â  sÃ   € ð
 �=Ò ðJÜ×'Ñ'¨Ð.CÔDô ×.Ñ.¨tÐ5FÓGÓIÐIô$ �t×'Ñ'¨Ó.Ð.øô+ "ò ÙðúðÜ×'Ñ'¨Ð.?Ô@ô -ØMóð øô "ò Ü$Øœ˜T›
×+Ñ+Ð,Ð,WÐXóð ðús   ‡A Á	AÁAÁA> Á>,B*c                 ód  — |j                  d«      rt        j                  | |«       y |dk(  rt        d«      ‚|dk(  r-t        j                  | |«       t	        | j
                  |«       y |dk(  r.	 t        j                  | |«       t	        | j
                  |«       y |dk(  r.	 t        j                  | |«       t	        | j
                  |«       y t        t        | «      |«      rt        j                  | |«       y t	        | j
                  |«       y # t        $ r Y Œ˜w xY w# t        $ r Y Œtw xY w)NrÀ   r
   z"can't delete __wrapped__ attributer   rm   rl   )	rÂ   rn   rÃ   Ú	TypeErrorÚdelattrr
   rp   r-   r.   rÉ   s     r   rÃ   zObjectProxy.__delattr__è  s  € Ø�?‰?˜8Ô$Ü×Ñ˜t TÕ*à�]Ò"ÜÐ@ÓAÐAà�^Ò#Ü×Ñ˜t TÔ*Ü�D×$Ñ$ dÕ+àÐ&Ò&ðÜ×"Ñ" 4¨Ô.ô �D×$Ñ$ dÕ+à�^Ò#ðÜ×"Ñ" 4¨Ô.ô �D×$Ñ$ dÕ+ä”T˜$“Z Ô&Ü×Ñ˜t TÕ*ô �D×$Ñ$ dÕ+øô "ò Ùðûô "ò Ùðús$   Á1D Â$D# Ä	D ÄD Ä#	D/Ä.D/c                 ó6   — t        |«      }| j                  |z   S r   ©rZ   r
   rª   s     r   Ú__add__zObjectProxy.__add__  ó   € Ü Ó&ˆØ×Ñ %Ñ'Ð'r   c                 ó6   — t        |«      }| j                  |z
  S r   rÏ   rª   s     r   Ú__sub__zObjectProxy.__sub__  rÑ   r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__mul__zObjectProxy.__mul__  rÑ   r   c                 óX   — t        |«      }t        j                  | j                  |«      S r   ©rZ   ÚoperatorÚtruedivr
   rª   s     r   Ú__truediv__zObjectProxy.__truediv__  s%   € Ü Ó&ˆÜ×Ñ × 0Ñ 0°%Ó8Ð8r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__floordiv__zObjectProxy.__floordiv__  ó   € Ü Ó&ˆØ×Ñ 5Ñ(Ð(r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__mod__zObjectProxy.__mod__  rÑ   r   c                 óD   — t        |«      }t        | j                  |«      S r   ©rZ   Údivmodr
   rª   s     r   Ú
__divmod__zObjectProxy.__divmod__  s   € Ü Ó&ˆÜ�d×&Ñ&¨Ó.Ð.r   c                 óF   — t        |«      }t        | j                  |g|¢­Ž S r   ©rZ   Úpowr
   ©r   rY   rc   s      r   Ú__pow__zObjectProxy.__pow__#  s$   € Ü Ó&ˆÜ�4×#Ñ# UÐ2¨TÒ2Ð2r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú
__lshift__zObjectProxy.__lshift__'  rÝ   r   c                 ó6   — t        |«      }| j                  |z	  S r   rÏ   rª   s     r   Ú
__rshift__zObjectProxy.__rshift__+  rÝ   r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__and__zObjectProxy.__and__/  rÑ   r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__xor__zObjectProxy.__xor__3  rÑ   r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú__or__zObjectProxy.__or__7  rÑ   r   c                 ó6   — t        |«      }|| j                  z   S r   rÏ   rª   s     r   Ú__radd__zObjectProxy.__radd__;  ó   € Ü Ó&ˆØ�t×'Ñ'Ñ'Ð'r   c                 ó6   — t        |«      }|| j                  z
  S r   rÏ   rª   s     r   Ú__rsub__zObjectProxy.__rsub__?  rõ   r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rmul__zObjectProxy.__rmul__C  rõ   r   c                 óX   — t        |«      }t        j                  || j                  «      S r   r×   rª   s     r   Ú__rtruediv__zObjectProxy.__rtruediv__G  s%   € Ü Ó&ˆÜ×Ñ  t×'7Ñ'7Ó8Ð8r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rfloordiv__zObjectProxy.__rfloordiv__K  ó   € Ü Ó&ˆØ˜×(Ñ(Ñ(Ð(r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rmod__zObjectProxy.__rmod__O  rõ   r   c                 óD   — t        |«      }t        || j                  «      S r   rá   rª   s     r   Ú__rdivmod__zObjectProxy.__rdivmod__S  s   € Ü Ó&ˆÜ�e˜T×-Ñ-Ó.Ð.r   c                 óF   — t        |«      }t        || j                  g|¢­Ž S r   rå   rç   s      r   Ú__rpow__zObjectProxy.__rpow__W  s$   € Ü Ó&ˆÜ�5˜$×*Ñ*Ð2¨TÒ2Ð2r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rlshift__zObjectProxy.__rlshift__[  rþ   r   c                 ó6   — t        |«      }|| j                  z	  S r   rÏ   rª   s     r   Ú__rrshift__zObjectProxy.__rrshift___  rþ   r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rand__zObjectProxy.__rand__c  rõ   r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rxor__zObjectProxy.__rxor__g  rõ   r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__ror__zObjectProxy.__ror__k  rõ   r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z   «      S )NÚ__iadd__©rZ   r-   r
   rw   rª   s     r   r  zObjectProxy.__iadd__o  óN   € Ü Ó&ˆÜ�4×#Ñ# ZÔ0Ø×Ò Ñ%ÕØˆKà×(Ñ(¨×)9Ñ)9¸EÑ)AÓBÐBr   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z
  «      S )NÚ__isub__r  rª   s     r   r  zObjectProxy.__isub__w  r  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__imul__r  rª   s     r   r  zObjectProxy.__imul__  r  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__itruediv__r  rª   s     r   r  zObjectProxy.__itruediv__‡  sN   € Ü Ó&ˆÜ�4×#Ñ# ^Ô4Ø×Ò Ñ%ÕØˆKà×(Ñ(¨×)9Ñ)9¸EÑ)AÓBÐBr   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__ifloordiv__r  rª   s     r   r  zObjectProxy.__ifloordiv__�  sN   € Ü Ó&ˆÜ�4×#Ñ# _Ô5Ø×Ò Ñ&ÕØˆKà×(Ñ(¨×)9Ñ)9¸UÑ)BÓCÐCr   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__imod__r  rª   s     r   r  zObjectProxy.__imod__—  r  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__ipow__r  rª   s     r   r  zObjectProxy.__ipow__Ÿ  sN   € Ü Ó&ˆÜ�4×#Ñ# ZÔ0Ø×Ò Ñ&ÕØˆKà×(Ñ(¨×)9Ñ)9¸5Ñ)@ÓAÐAr   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__ilshift__r  rª   s     r   r   zObjectProxy.__ilshift__§  óN   € Ü Ó&ˆÜ�4×#Ñ# ]Ô3Ø×Ò Ñ&ÕØˆKà×(Ñ(¨×)9Ñ)9¸UÑ)BÓCÐCr   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z	  «      S )NÚ__irshift__r  rª   s     r   r#  zObjectProxy.__irshift__¯  r!  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__iand__r  rª   s     r   r%  zObjectProxy.__iand__·  r  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__ixor__r  rª   s     r   r'  zObjectProxy.__ixor__¿  r  r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__ior__r  rª   s     r   r)  zObjectProxy.__ior__Ç  sN   € Ü Ó&ˆÜ�4×#Ñ# YÔ/Ø×Ò Ñ%ÕØˆKà×(Ñ(¨×)9Ñ)9¸EÑ)AÓBÐBr   c                 ó   — | j                    S r   r©   r   s    r   Ú__neg__zObjectProxy.__neg__Ï  ó   € Ø× Ñ Ð Ð r   c                 ó   — | j                   ­S r   r©   r   s    r   Ú__pos__zObjectProxy.__pos__Ò  r,  r   c                 ó,   — t        | j                  «      S r   )Úabsr
   r   s    r   Ú__abs__zObjectProxy.__abs__Õ  rƒ   r   c                 ó   — | j                    S r   r©   r   s    r   Ú
__invert__zObjectProxy.__invert__Ø  r,  r   c                 ó,   — t        | j                  «      S r   )Úintr
   r   s    r   Ú__int__zObjectProxy.__int__Û  rƒ   r   c                 ó,   — t        | j                  «      S r   )Úfloatr
   r   s    r   Ú	__float__zObjectProxy.__float__Þ  r‰   r   c                 ó,   — t        | j                  «      S r   )Úcomplexr
   r   s    r   Ú__complex__zObjectProxy.__complex__á  s   € Ü�t×'Ñ'Ó(Ð(r   c                 ó@   — t        j                  | j                  «      S r   )rØ   Úindexr
   r   s    r   Ú	__index__zObjectProxy.__index__ä  s   € Ü�~‰~˜d×.Ñ.Ó/Ð/r   c                 ó6   — t        |«      }| j                  |z  S r   rÏ   rª   s     r   Ú
__matmul__zObjectProxy.__matmul__ç  rÑ   r   c                 ó6   — t        |«      }|| j                  z  S r   rÏ   rª   s     r   Ú__rmatmul__zObjectProxy.__rmatmul__ë  rõ   r   c                 ó®   — t        |«      }t        | j                  d«      r| xj                  |z  c_        | S | j                  | j                  |z  «      S )NÚ__imatmul__r  rª   s     r   rE  zObjectProxy.__imatmul__ï  sN   € Ü Ó&ˆÜ�4×#Ñ# ]Ô3Ø×Ò Ñ%ÕØˆKà×(Ñ(¨×)9Ñ)9¸EÑ)AÓBÐBr   c                 ó,   — t        | j                  «      S r   )Úlenr
   r   s    r   Ú__len__zObjectProxy.__len__÷  rƒ   r   c                 ó   — || j                   v S r   r©   r   s     r   Ú__contains__zObjectProxy.__contains__ú  s   € Ø˜×(Ñ(Ð(Ð(r   c                 ó    — | j                   |   S r   r©   ©r   Úkeys     r   Ú__getitem__zObjectProxy.__getitem__ý  s   € Ø×Ñ Ñ$Ð$r   c                 ó"   — || j                   |<   y r   r©   )r   rM  r   s      r   Ú__setitem__zObjectProxy.__setitem__   s   € Ø %ˆ×Ñ˜Òr   c                 ó   — | j                   |= y r   r©   rL  s     r   Ú__delitem__zObjectProxy.__delitem__  s   € Ø×Ñ˜SÑ!r   c                 ó6   — | j                   j                  «       S r   )r
   Ú	__enter__r   s    r   rT  zObjectProxy.__enter__  s   € Ø×Ñ×)Ñ)Ó+Ð+r   c                 ó:   —  | j                   j                  |i |¤ŽS r   )r
   Ú__exit__©r   rc   rd   s      r   rV  zObjectProxy.__exit__	  s    € Ø(ˆt×Ñ×(Ñ(¨$Ð9°&Ñ9Ð9r   c                 ó6   — | j                   j                  «       S r   )r
   Ú
__aenter__r   s    r   rY  zObjectProxy.__aenter__  s   € Ø×Ñ×*Ñ*Ó,Ð,r   c                 ó:   —  | j                   j                  |i |¤ŽS r   )r
   Ú	__aexit__rW  s      r   r[  zObjectProxy.__aexit__  s    € Ø)ˆt×Ñ×)Ñ)¨4Ð:°6Ñ:Ð:r   c                 ó   — t        d«      ‚)Nz#object proxy must define __copy__()©ÚNotImplementedErrorr   s    r   Ú__copy__zObjectProxy.__copy__  s   € Ü!Ð"GÓHÐHr   c                 ó   — t        d«      ‚)Nz'object proxy must define __deepcopy__()r]  )r   Úmemos     r   Ú__deepcopy__zObjectProxy.__deepcopy__  s   € Ü!Ð"KÓLÐLr   c                 ó   — t        d«      ‚)Nz%object proxy must define __reduce__()r]  r   s    r   Ú
__reduce__zObjectProxy.__reduce__  s   € Ü!Ð"IÓJÐJr   c                 ó.   — t        || j                  «      S r   )r+   r
   )r   Úinstances     r   Ú__instancecheck__zObjectProxy.__instancecheck__  s   € Ü˜( D×$4Ñ$4Ó5Ð5r   c                 ó†   — t        |d«      r t        |j                  | j                  «      S t        || j                  «      S )Nr
   )r-   rW   r
   )r   Úsubclasss     r   Ú__subclasscheck__zObjectProxy.__subclasscheck__  s8   € Ü�8˜]Ô+Ü˜h×2Ñ2°D×4DÑ4DÓEÐEä˜h¨×(8Ñ(8Ó9Ð9r   r   )cr   r   r   r   Úclassmethodr`   rO   ru   r    rw   ry   r!   re   r‚   r…   rˆ   r�   r“   r–   rš   rž   r¢   r¥   r§   r«   r®   r±   r³   rµ   r·   rº   r¾   rD   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%  r'  r)  r+  r.  r1  r3  r6  r9  r<  r?  rA  rC  rE  rH  rJ  rN  rP  rR  rT  rV  rY  r[  r_  rb  rd  rg  rj  Ú__classcell__©re   s   @r   rX   rX   ë   sV  ø„ ñð ñ-ó ð-ô$ò1ðf ñó ðò.ð ñ)ó ð)ð ‡_�_ñ*ó ð*ð ñ*ó ð*ð ×Ññ+ó ð+ò%ò%ò'ò@ò5ò*ó0ò,ò,ò+ò#ò(ò)ò)ò)ò(ò)ò&ò&ò93òv$/òL,ò>(ò(ò(ò9ò)ò(ò/ò3ò)ò)ò(ò(ò(ò(ò(ò(ò9ò)ò(ò/ò3ò)ò)ò(ò(ò(òCòCòCòCòDòCòBòDòDòCòCòCò!ò!ò%ò!ò%ò'ò)ò0ò(ò(òCò%ò)ò%ò&ò"ò,ò:ò-ò;òIòMòKò6ö:r   rX   )Ú	metaclassc                   ó   — e Zd ZdZd„ Zy)ÚCallableObjectProxyz>An object proxy for callable objects that also forwards calls.c                  ó<   — d„ } || Ž \  }}  |j                   | i |¤ŽS )Nc                 ó
   — | |fS r   r#   ©r   rc   s     r   Ú_unpack_selfz2CallableObjectProxy.__call__.<locals>._unpack_self)  ó   € Ø˜�:Ðr   r©   )rc   rd   rt  r   s       r   Ú__call__zCallableObjectProxy.__call__(  s/   € ò	ñ " 4Ð(‰
ˆˆdàˆt×Ñ Ð0¨Ñ0Ð0r   N)r   r   r   r   rv  r#   r   r   rp  rp  %  s
   „ ÙHó1r   rp  c                   ó   — e Zd ZdZdd„Zy)Ú_PartialSignatureDescriptoraƒ  Descriptor providing the ``__signature__`` attribute of instances of
    ``PartialCallableObjectProxy``.

    The signature reported is that of the wrapped callable with the bound
    positional and keyword arguments removed, matching what ``inspect``
    reports for ``functools.partial``. It must be defined on the proxy type
    itself, since attribute lookup on the proxy would otherwise be forwarded
    to the wrapped callable, and ``inspect.signature()`` stops following
    ``__wrapped__`` at the first object which has a ``__signature__``
    attribute.

    A plain property cannot be used because it would also be visible when
    accessed on the class, and ``inspect.signature()`` applied to the class
    itself would then fail on finding a property object rather than a
    ``Signature``. Raising ``AttributeError`` on class access leaves the
    signature of the class unchanged.
    Nc                 ó´   — |€t        d«      ‚t        j                  |j                  g|j                  ¢­i |j
                  ¤Ž}t        j                  |«      S )NÚ__signature__)rp   Ú	functoolsÚpartialr
   Ú
_self_argsÚ_self_kwargsÚinspectÚ	signature)r   rf  Úownerr|  s       r   r(   z#_PartialSignatureDescriptor.__get__D  s[   € ØÐÜ  Ó1Ð1ä×#Ñ#Ø× Ñ ð
Ø#+×#6Ñ#6ò
Ø:B×:OÑ:Oñ
ˆô × Ñ  Ó)Ð)r   r   )r   r   r   r   r(   r#   r   r   rx  rx  1  s   „ ñô$*r   rx  c                   ó6   ‡ — e Zd ZdZ e«       Zˆ fd„Zd„ Zˆ xZS )ÚPartialCallableObjectProxyz]A callable object proxy that supports partial application of arguments
    and keywords.
    c                  óÐ   •— d„ } || Ž \  }} t        | «      dk  rt        d«      ‚| d   | dd } }t        |«      st        d«      ‚t        t        |�  |«       | |_        ||_        y)a  Create a callable object proxy with partial application of the given
        arguments and keywords. This behaves the same as `functools.partial`, but
        implemented using the `ObjectProxy` class to provide better support for
        introspection.
        c                 ó
   — | |fS r   r#   rs  s     r   rt  z9PartialCallableObjectProxy.__init__.<locals>._unpack_self]  ru  r   r   z(partial type takes at least one argumentr   Nz#the first argument must be callable)rG  rÌ   Úcallablerb   rƒ  ru   r}  r~  )rc   rd   rt  r   rs   re   s        €r   ru   z#PartialCallableObjectProxy.__init__V  sw   ø€ ò	ñ " 4Ð(‰
ˆˆdäˆt‹9�qŠ=ÜÐFÓGÐGà˜Q™  a b �ˆä˜Ô ÜÐAÓBÐBô
 	Ô(¨$Ñ8¸ÔAàˆŒØ"ˆÕr   c                  ó¦   — d„ } || Ž \  }} |j                   | z   }t        |j                  «      }|j                  |«        |j                  |i |¤ŽS )Nc                 ó
   — | |fS r   r#   rs  s     r   rt  z9PartialCallableObjectProxy.__call__.<locals>._unpack_selfs  ru  r   )r}  Údictr~  rL   r
   )rc   rd   rt  r   Ú_argsÚ_kwargss         r   rv  z#PartialCallableObjectProxy.__call__r  sY   € ò	ñ " 4Ð(‰
ˆˆdà—‘ $Ñ&ˆä�t×(Ñ(Ó)ˆØ�‰�vÔàˆt×Ñ Ð2¨'Ñ2Ð2r   )	r   r   r   r   rx  rz  ru   rv  rl  rm  s   @r   rƒ  rƒ  O  s   ø„ ññ 0Ó1€Mô#ö83r   rƒ  c                   ó<   ‡ — e Zd Z	 	 	 	 dˆ fd„	Zdd„Zd„ Zd„ Zˆ xZS )Ú_FunctionWrapperBasec                 ó@  •— t         t        | �  |«       t        j	                  | d|«       t        j	                  | d|«       t        j	                  | d|«       t        j	                  | d|«       t        j	                  | d|«       t        j	                  | d|«       y )NÚ_self_instanceÚ_self_wrapperÚ_self_enabledÚ_self_bindingÚ_self_parentÚ_self_owner)rb   r�  ru   rn   rD   )	r   rs   rf  ÚwrapperÚenabledÚbindingÚparentr�  re   s	           €r   ru   z_FunctionWrapperBase.__init__‚  s‚   ø€ ô 	Ô" DÑ2°7Ô;ä×Ñ˜4Ð!1°8Ô<Ü×Ñ˜4 °'Ô:Ü×Ñ˜4 °'Ô:Ü×Ñ˜4 °'Ô:Ü×Ñ˜4 °Ô8Ü×Ñ˜4 °Õ6r   c           	      ó&  — | j                   €{| j                  dk(  r| S | j                  dk(  r| S t        | j                  dd «      }|€| S  |||«      }| j	                  ||| j
                  | j                  | j                  | |«      S | j                  €}| j                  dv ro| j                   j                  j                  ||«      }| j                   j	                  ||| j
                  | j                  | j                  | j                   |«      S | S )NÚbuiltinÚclassr(   )ÚfunctionÚinstancemethodr†  )	r“  r’  rÄ   r
   Ú__bound_function_wrapper__r�  r‘  r�  r(   )r   rf  r�  ÚbinderÚ
descriptors        r   r(   z_FunctionWrapperBase.__get__™  s*  € ð* ×ÑÐ$ð ×!Ñ! YÒ.Ø�à×!Ñ! WÒ,Ø�ä˜T×-Ñ-¨y¸$Ó?ˆFàˆ~Ø�á ¨%Ó0ˆJà×2Ñ2ØØØ×"Ñ"Ø×"Ñ"Ø×"Ñ"ØØóð ð$ ×ÑÐ&¨4×+=Ñ+=ð B
ñ ,
ð
 ×*Ñ*×6Ñ6×>Ñ>¸xÈÓOˆJà×$Ñ$×?Ñ?ØØØ×"Ñ"Ø×"Ñ"Ø×"Ñ"Ø×!Ñ!Øóð ð ˆr   c                  óÌ  — d„ } || Ž \  }} |j                   �Ut        |j                   «      r"|j                  «       s0 |j                  | i |¤ŽS |j                   s |j                  | i |¤ŽS |j                  dv rC|j                  €7t        |j                  dd «      }|�|j                  |j                  || |«      S |j                  |j                  |j                  | |«      S )Nc                 ó
   — | |fS r   r#   rs  s     r   rt  z3_FunctionWrapperBase.__call__.<locals>._unpack_selfå  ru  r   )rœ  r�  rk  r†  Ú__self__)r‘  r†  r
   r’  r�  rÄ   r�  )rc   rd   rt  r   rf  s        r   rv  z_FunctionWrapperBase.__call__ä  sø   € ò	ñ " 4Ð(‰
ˆˆdð ×ÑÐ)Ü˜×*Ñ*Ô+Ø×)Ñ)Ô+Ø+˜4×+Ñ+¨TÐ<°VÑ<Ð<Ø×'Ò'Ø'�t×'Ñ'¨Ð8°Ñ8Ð8ð ×Ñð "
ñ 
ð ×"Ñ"Ð*Ü" 4×#3Ñ#3°ZÀÓF�ØÐ'Ø×-Ñ-¨d×.>Ñ.>ÀÈ$ÐPVÓWÐWð ×!Ñ! $×"2Ñ"2°D×4GÑ4GÈÈvÓVÐVr   c                 ój   — t        | j                  d«      r| j                  j                  ||«       y y )NÚ__set_name__)r-   r
   r¥  )r   r�  rP   s      r   r¥  z!_FunctionWrapperBase.__set_name__  s/   € ô �4×#Ñ# ^Ô4Ø×Ñ×)Ñ)¨%°Õ6ð 5r   )Nr†  NNr   )r   r   r   ru   r(   rv  r¥  rl  rm  s   @r   r�  r�  €  s)   ø„ ð ØØØõ7ó.IòV(WöT7r   r�  )r�  r�  r‘  r’  r“  r”  c                   ó2   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚBoundFunctionWrapperz=A wrapper for bound methods, classmethods, and staticmethods.c                 ó´   •— |j                  d«      r6|t        vr.| j                  �"t        j	                  | j                  ||«       y t
        ‰| �  ||«       y )NrÀ   )rÂ   Ú_FUNCTION_WRAPPER_SLOTSr“  rn   rD   rb   )r   rP   r   re   s      €r   rD   z BoundFunctionWrapper.__setattr__(  sM   ø€ Ø�?‰?˜8Ô$¨Ô5LÑ)LØ× Ñ Ð,Ü×"Ñ" 4×#4Ñ#4°d¸EÔBØÜ‰Ñ˜D %Õ(r   c                 óÚ   •— |dk(  r%t        dt        | «      j                  › d|› d�«      ‚| j                  �	 t	        | j                  |«      S t
        ‰| �  |«      S # t         $ r Y Œw xY w)Nr“  rÈ   z' object has no attribute ')rp   r.   r   r“  rÄ   rb   rÊ   )r   rP   re   s     €r   rÊ   z BoundFunctionWrapper.__getattr__/  s„   ø€ ð �>Ò!Ü Ø”D˜“J×'Ñ'Ð(Ð(CÀDÀ6ÈÐKóð ð ×ÑÐ(ðÜ˜t×0Ñ0°$Ó7Ð7ô ‰wÑ" 4Ó(Ð(øô "ò Ùðús   ¹A Á	A*Á)A*c                  ó€  — d„ } || Ž \  }} |j                   �Ut        |j                   «      r"|j                  «       s0 |j                  | i |¤ŽS |j                   s |j                  | i |¤ŽS |j                  dk(  r€|j                  €L| rJ| d   | dd  }}t        ||j                  «      r*t        |j                  |«      }|j                  ||||«      S |j                  |j                  |j                  | |«      S |j                  dk(  r€|j                  €L| rJ| d   | dd  }}t        ||j                  «      r*t        |j                  |«      }|j                  ||||«      S |j                  |j                  |j                  | |«      S t        |j                  dd «      }|j                  |j                  || |«      S )Nc                 ó
   — | |fS r   r#   rs  s     r   rt  z3BoundFunctionWrapper.__call__.<locals>._unpack_selfB  ru  r   rœ  r   r   r†  r£  )
r‘  r†  r
   r’  r�  r+   r”  rƒ  r�  rÄ   )rc   rd   rt  r   rf  Únewargsrs   s          r   rv  zBoundFunctionWrapper.__call__A  sÑ  € ò	ñ " 4Ð(‰
ˆˆdð ×ÑÐ)Ü˜×*Ñ*Ô+Ø×)Ñ)Ô+Ø+˜4×+Ñ+¨TÐ<°VÑ<Ð<Ø×'Ò'Ø'�t×'Ñ'¨Ð8°Ñ8Ð8ð
 ×Ñ Ò+Ø×"Ñ"Ð*©tØ$(¨¡G¨T°!°"¨X˜'�Ü˜h¨×(8Ñ(8Ô9Ü8¸×9IÑ9IÈ8ÓT�GØ×-Ñ-¨g°xÀÈ&ÓQÐQà×%Ñ%Ø× Ñ  $×"5Ñ"5°t¸Vóð ð ×Ñ :Ò-Ø×"Ñ"Ð*©tð %)¨¡G¨T°!°"¨X˜'�Ü˜h¨×(8Ñ(8Ô9Ü8¸×9IÑ9IÈ8ÓT�GØ×-Ñ-¨g°xÀÈ&ÓQÐQà×%Ñ%Ø× Ñ  $×"5Ñ"5°t¸Vóð ô$ ˜t×/Ñ/°¸TÓBˆHà×%Ñ% d×&6Ñ&6¸À$ÈÓOÐOr   )r   r   r   r   rD   rÊ   rv  rl  rm  s   @r   r§  r§  %  s   ø„ ÙGô)ô)ö$CPr   r§  c                   ó(   ‡ — e Zd ZdZeZdˆ fd„	Zˆ xZS )ÚFunctionWrappera  
    A wrapper for callable objects that can be used to apply decorators to
    functions, methods, classmethods, and staticmethods, or any other callable.
    It handles binding and unbinding of methods, and allows for the wrapper to
    be enabled or disabled.
    c                 óæ  •— d}t        |t        «      r|j                  }|s¹t        j                  |«      rd}n¡t        j
                  |«      rd}n‰t        j                  |«      rd}nqt        |t        «      rd}n^t        |t        «      rd}nKt        |d«      r=t        j                  |j                  «      rd}nt        j                  |«      rd}nd	}nd	}t        t        | �;  |d|||«       y)
a  
        Initialize the `FunctionWrapper` with the `wrapped` callable, the
        `wrapper` function, and an optional `enabled` argument. The `enabled`
        argument can be a boolean or a callable that returns a boolean. When a
        callable is provided, it will be called each time the wrapper is
        invoked to determine if the wrapper function should be executed or
        whether the wrapped function should be called directly. If `enabled`
        is not provided, the wrapper is enabled by default.
        Nrš  rœ  r›  rk  Ústaticmethodr£  r�  r†  )r+   r�  r’  r  Ú	isbuiltinÚ
isfunctionÚisclassrk  r±  r-   r£  Úismethodrb   r¯  ru   )r   rs   r•  r–  r—  re   s        €r   ru   zFunctionWrapper.__init__‘  sÒ   ø€ ðf ˆä�gÔ3Ô4Ø×+Ñ+ˆGáÜ× Ñ  Ô)Ø#‘ä×#Ñ# GÔ,Ø$‘ä—‘ Ô)Ø!‘ä˜G¤[Ô1Ø'‘ä˜G¤\Ô2Ø(‘ä˜ *Ô-Ü—?‘? 7×#3Ñ#3Ô4Ø+‘GÜ×%Ñ% gÔ.Ø.‘Gà(‘Gð %�ô
 	Œo˜tÑ-¨g°t¸WÀgÈwÕWr   r   )r   r   r   r   r§  rž  ru   rl  rm  s   @r   r¯  r¯  ‡  s   ø„ ñð "6Ð÷vXñ vXr   r¯  )!r   r{  r  rœ   rØ   rq   r]   Ú
exceptionsr   r   r%   r.   r   r(   r'   r)   r    rN   r3   r5   r0   r9   r;   rZ   rX   rp  rx  rƒ  r�  Ú	frozensetr©  r§  r¯  r#   r   r   ú<module>r¸     s  ðÙ =ã Û Û Û Û 
Û å 2÷8,ñ 8,÷v	ñ 	ð Ÿ™ jÑ1×9Ñ9Ð:NÓOØñÐ ò
/ñ ˜~Ó.Ð ñ Ð0Ó1°)Ñ<Ð ò+òô"Q˜4ô Qòhô$w:Ð&Ð2Fõ w:ôt	1˜+ô 	1÷*ñ *ô<.3 ô .3ôbV7˜;ô V7ñr $ðó	Ð ô_PÐ/ô _PôD@XÐ*õ @Xr   