
    "hV                      d Z ddlmZ g dZdZddlZddlmZ ddlmZ	 eZ
ddlZddlZdad	aej                  d
k  Zej                  dk  Zej                  dk  Zej                  dk  ZddlZddlmZmZ ddlmZmZ ddlmZ ddlmZ  ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) e*Z+e,Z- e,e.      Z/ e,e0      Z1e2Z3e,Z4e5Z6ddl!m7Z8m9Z9 ddlm:Z:m;Z;m<Z<m=Z=m>Z> ddl?Z@ddlAZAddlBZBddlCZCddlDZDddlEmFZFmGZGmHZH ddlImJZJ ddlKmLZLmMZM ddlNmOZO ddlPmQZQmRZR d	ZSddlTZU eVeUj                  j                        ZX	 ddlYZYdZZ e[eYd       Z\da^da_da`	 eUj                  j                         j                  d      s e]d      da^da_da`d Zct        r
d Zdd  Zed! Zfn	d" Zdd# Zed$ Zfdd%l!mgZgmhZhmiZimjZjmkZkmlZl  e, d& d      j                  d         Zn e, eOeod'(            Zp e, eqer es                   Zt e, eQd            Zu e, eRd)            Zv	 dd*lNmwZx  eyexe,      sdZxd+ Zz ezd,d-      Z{ ezd.d/-      Z| ezd0d/-      Z} ezd,d/-      Z~ ezd1d/-      Z	 dd2lmZ  ezd.d/e3      Z ezd0d/e3      Z ezd,d/e3      Z ezd1d/e3      Zdd4lmZ dxZZdd5lmZ dd6lmZ 	 eZdZd7ZddlZddlZ G d9 d:e      Zdd;lmZ dd<lmZmZ dZdZd'Zd= Zdd>Zdd?Zdd@ZddAZ G dB dCe      Z G dD dEee<      Z G dF dGee=      Z G dH dIee>      Z G dJ dKe      Z G dL dMe      Z	 ej\                  jE                         ZdN ZdO ZdP ZddQZdR Z e e             Zejk                  epeteuevdS       ej                  dTk  rejk                  dUeni        eJ       Ze{e}e~ee|eeeedV	Zejk                   e,i jq                                e,i js                                e,i ju                                e,ejq                                e,ejs                                e,eju                               dW       ereedX<   er
eedY<   eedZ<   	 ej                  d[k\  r dd\l!mZ  e, e eeeof                  ed]<   	 	 ddlZej~                  ed^<   ejk                  e        eejs                               Z[ ed_ eju                         D              Zd` Zda Zdb Z	 	 ddcZ G dd de      Zg dfZeD ]$  \  ZZZ e[e"eʫ      seZeːj                         Z n  eeΫ      j                  g dg      Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Z G dp dqe      Z G dr dse      Z G dt due      Z e۫       Zi Z	 e e8eݫ      ez  u Z[dZ edv      ZddwZdx ZddyZdz Zdd{Zd| Zdd}Zd~ Zd Zd ZddZd ZddZd Zdej                  dfdZ ee"      d        Zd Z ee      d        Zeserd Znd ZeeJfD ]M  Z e       Z ee      D ]9  \  ZZ e,  eee                   Zeej\                  vs*eej\                  e<   ; O [[[[[ ee-      d        Z eej                        d        Z ee      d        Z ee       d        Zd Z d Z ee{       ee}       ee~       ee       ee|      d                                    Zer0 ee       ee       ee       ee      d                             Zer ee      d        Z ee      d        ZexddlNmZ  eex      d        Z eet      d        Ze\r ee$      d        Zn ee$      d        Ze\s< eek       eeg       eej       eei       eeh      d                                    Z	n eek       eeg      d               Z	 een      d        Z
er ee8      d        Zn ee8      d        Z ee3      d        Z ee6       ee/       ee1      d                      Zd ZddZ eeF      d        Z eeG       eeH      d               Zd Zd Z ee(      d        Zd Zd Z ee4      dd       Z ee       eeCj2                        d               Z ee       ee       eeCj:                         eeCj<                        d                             Z ee#      d        Z eZr# e[eYd      reYjB                  jD                  Z#eYjH                  eYjJ                  eYjH                  fe#_&        eYjN                  e#_(        eYjB                  jR                  Z*eYjN                  eYjJ                  fe*_&        eYjH                  e*_(        eYjB                  jV                  Z,eYjN                  fe,_&        eYjH                  e,_(        eYjB                  jZ                  Z.eYjN                  fe._&        eYjH                  e._(        eYjB                  j^                  Z0eYjN                  fe0_&        eYjJ                  e0_(        eYjB                  jb                  Z2eYjN                  eYjJ                  fe2_&        eYjf                  e2_(        eYjB                  jh                  Z5eYjN                  eYjH                  fe5_&        eYjB                  jl                  Z7eYjN                  eYjH                  fe7_&        eYjB                  jp                  Z9eYjN                  eYjJ                  fe9_&        eYjB                  jt                  Z;eYjN                  eYjH                  fe;_&         e# eYjx                  e#eYjH                         eYjz                  d      d      Z> e,e>      Z? ee?      d        Z@e?ed<   e?ed<   ej                  e?       ndZ> e[eDd      r eeDj                        d        ZC e[eDd      r  e e,eDj                              d        ZE e[eDd      r  e e,eDj                              d        ZG e[eDd      r eeDj                        d        ZIddZJd ZKddZLd ZMbb[y# e]$ r d	ZZd	Z\Y w xY w# e]$ r Y w xY w# e]$ r dZxY w xY w# e]$ r dxZxZxZZY 
w xY w# e$ r d	Z e,e      Zn# e$ r dZY nw xY wd8ZY 
w xY w# e]$ r Y w xY w# er$ r d	ZY w xY w)aK  
dill: a utility for serialization of python objects

The primary functions in `dill` are :func:`dump` and
:func:`dumps` for serialization ("pickling") to a
file or to a string, respectively, and :func:`load`
and :func:`loads` for deserialization ("unpickling"),
similarly, from a file or from a string. Other notable
functions are :func:`~dill.dump_module` and
:func:`~dill.load_module`, which are used to save and
restore module objects, including an intepreter session.

Based on code written by Oren Tirosh and Armin Ronacher.
Extended to a (near) full set of the builtin types (in types module),
and coded to the pickle interface, by <mmckerns@caltech.edu>.
Initial port to python3 by Jonathan Dobson, continued by mmckerns.
Tested against "all" python types (Std. Lib. CH 1-15 @ 2.7) by mmckerns.
Tested against CH16+ Std. Lib. ... TBD.
    )annotations)dumpdumpsloadloadscopyPickler	UnpicklerregisterpicklepicklescheckDEFAULT_PROTOCOLHIGHEST_PROTOCOLHANDLE_FMODECONTENTS_FMODE
FILE_FMODEPickleErrorPickleWarningPicklingErrorPicklingWarningUnpicklingErrorUnpicklingWarningdillN   )adapter)traceFi  i  	i  
i )_Picklerr
   )GLOBALPOP)LockType)RLock)CodeTypeFunctionType
MethodTypeGeneratorTypeTracebackType	FrameType
ModuleTypeBuiltinMethodType)MappingProxyType	new_class)r   r   r   r   r   )ReferenceType	ProxyTypeCallableProxyType)OrderedDict)EnumEnumMeta)partial)
itemgetter
attrgetterT	pythonapinumpyzNo module named 'numpy'c                 (    ddl ma ddl ma ddl ma y)Nr   )ufunc)ndarray)dtypeT)r7   r9   NumpyUfuncTyper:   NumpyArrayTyper;   
NumpyDType     G/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dill/_dill.py__hook__rB   i   s    -/)r@   c                    t        d | j                  D              ryt                | j                  t        j                  us| j
                  t        j
                  uryy)Nc              3  R   K   | ]  }|j                   |j                  fd k7   ! yw))r7   r:   N
__module____name__.0cs     rA   	<genexpr>z*ndarraysubclassinstance.<locals>.<genexpr>q   s#     \aajj)-AA\   %'FT)all__mro__rB   __reduce_ex__r=   
__reduce__obj_types    rA   ndarraysubclassinstancerS   p   sL    \8K[K[\\
!!)E)EE&&n.G.GGr@   c                :    t        d | j                  D              S )Nc              3  R   K   | ]  }|j                   |j                  fd k(   ! yw))r7   r9   NrE   rH   s     rA   rK   znumpyufunc.<locals>.<genexpr>{   s#     ^ALL!**-1CC^rL   )anyrN   rQ   s    rA   
numpyufuncrW   z   s    ^XM]M]^^^r@   c                r    t        d | j                  D              ryt                | t        t              u S )Nc              3  R   K   | ]  }|j                   |j                  fd k7   ! yw))r7   r;   NrE   rH   s     rA   rK   znumpydtype.<locals>.<genexpr>}   s#     ZAajj)-??ZrL   F)rM   rN   rB   typer>   rQ   s    rA   
numpydtyper[   |   s.    ZIYIYZZ
4
+++r@   c                     yNFr?   objs    rA   rS   rS      s    Ur@   c                     yr]   r?   r^   s    rA   rW   rW          r@   c                     yr]   r?   r^   s    rA   r[   r[      ra   r@   )GetSetDescriptorTypeClassMethodDescriptorTypeWrapperDescriptorTypeMethodDescriptorTypeMemberDescriptorTypeMethodWrapperTypec                      fdS )Nc                    S Nr?   )yxs    rA   <lambda>z<lambda>.<locals>.<lambda>   s    Q r@   r?   rm   s   `rA   rn   rn      s    ; r@      base__repr__)_lru_cache_wrapperc                     |j                  dt        j                        } |t        j                  g| i |}t        |      }|j                          |S )Nopen)pop__builtin__rv   osdevnullrZ   close)argskwargsrv   fts        rA   get_file_typer      sG    ::fk../DRZZ)$)&)AQAGGIHr@   rb)	bufferingrzr+bwb)rv   )r   rv   )BytesIO)socket)_reduce_socket)exitquitget_ipythonr?   c                  6    e Zd ZdZd	dZd Zd Zd Zd Zd Z	y)
SentinelzH
    Create a unique sentinel object that is pickled as a constant.
    Nc                    || _         |1t        j                         j                  j                  d   | _        y || _        y )NrG   )nameinspectcurrentframef_back	f_globalsrF   )selfr   module_names      rA   __init__zSentinel.__init__   s7    	%224;;EEjQDO)DOr@   c                :    | j                   dz   | j                  z   S )N.)rF   r   r   s    rA   rs   zSentinel.__repr__   s    $tyy00r@   c                    | S rk   r?   r   s    rA   __copy__zSentinel.__copy__       r@   c                    | S rk   r?   )r   memos     rA   __deepcopy__zSentinel.__deepcopy__   r   r@   c                    | j                   S rk   r   r   s    rA   rP   zSentinel.__reduce__       yyr@   c                    | j                   S rk   r   )r   protocols     rA   rO   zSentinel.__reduce_ex__   r   r@   rk   )
rG   rF   __qualname____doc__r   rs   r   r   rP   rO   r?   r@   rA   r   r      s%    *1r@   r   )_shims)ReduceGetattrc                |    |j                  dt        j                  d         }t        t	        | g|i ||      S )z
    Use pickling to 'copy' an object (i.e. `loads(dumps(obj))`).

    See :func:`dumps` and :func:`loads` for keyword arguments.
    ignore)r   )rw   r
   settingsr   r   )r_   r|   kwdsr   s       rA   r   r      s;     XXh	 2 28 <=Fs*T*T*6::r@   c                    ddl m } ||d   n
t        |      }|j                         }|j                  t	        |||             t        ||fi |j                  |        y)zS
    Pickle an object to a file.

    See :func:`dumps` for keyword arguments.
    r   r   Nr   )byreffmoderecurse)r   intr   updatedictr	   r   )	r_   filer   r   r   r   r   r   _kwdss	            rA   r   r      sY     #'/'7x
#S]HIIKE	LLE@AD($e$))#.
r@   c                X    t               }t        | |||||fi | |j                         S )a  
    Pickle an object to a string.

    *protocol* is the pickler protocol, as defined for Python *pickle*.

    If *byref=True*, then dill behaves a lot more like pickle as certain
    objects (like modules) are pickled by reference as opposed to attempting
    to pickle the object itself.

    If *recurse=True*, then objects referred to in the global dictionary
    are recursively traced and pickled, instead of the default behavior
    of attempting to store the entire global dictionary. This is needed for
    functions defined via *exec()*.

    *fmode* (:const:`HANDLE_FMODE`, :const:`CONTENTS_FMODE`,
    or :const:`FILE_FMODE`) indicates how file handles will be pickled.
    For example, when pickling a data file handle for transfer to a remote
    compute service, *FILE_FMODE* will include the file contents in the
    pickle and cursor position so that a remote method can operate
    transparently on an object with an open file handle.

    Default values for keyword arguments can be set in :mod:`dill.settings`.
    )StringIOr   getvalue)r_   r   r   r   r   r   r   s          rA   r   r      s.    0 :DdHeUG<t<==?r@   c                :    t        | fd|i|j                         S )zW
    Unpickle an object from a file.

    See :func:`loads` for keyword arguments.
    r   )r
   r   )r   r   r   s      rA   r   r     s"     T1&1D16688r@   c                2    t        |       }t        ||fi |S )ah  
    Unpickle an object from a string.

    If *ignore=False* then objects whose class is defined in the module
    *__main__* are updated to reference the existing class in *__main__*,
    otherwise they are left to refer to the reconstructed type, which may
    be different.

    Default values for keyword arguments can be set in :mod:`dill.settings`.
    )r   r   )strr   r   r   s       rA   r   r   !  s     C=Df%%%r@   c                      e Zd ZddZd Zy)MetaCatchingDictNc                0    	 | |   S # t         $ r |cY S w xY wrk   )KeyError)r   keydefaults      rA   getzMetaCatchingDict.get:  s%    	9 	N	s    c                B    t        |t              rt        S t               rk   )
issubclassrZ   	save_typer   )r   r   s     rA   __missing__zMetaCatchingDict.__missing__@  s    c4 *r@   rk   )rG   rF   r   r   r   r?   r@   rA   r   r   9  s    r@   r   c                      e Zd Zy)r   NrG   rF   r   r?   r@   rA   r   r   F      r@   r   c                      e Zd Zy)r   Nr   r?   r@   rA   r   r   I  r   r@   r   c                      e Zd Zy)r   Nr   r?   r@   rA   r   r   L  r   r@   r   c                      e Zd ZU dZ eej                  j                               Zded<   	 dZ	ddl
m
Z
 d ZddZej                  j                  e_        d	 Zej                  j                  e_        y
)r	   z1python's Pickler extended to interpreter sessionsz?typing.Dict[type, typing.Callable[[Pickler, typing.Any], None]]dispatchFr   r   c                v   t         j                  }|j                  dd       }|j                  dd       }|j                  dd       }t        j                  | |g|i | t
        | _        i | _        ||d   n|| _        d| _	        ||d   n|| _
        ||d   n|| _        t               | _        || _        y )Nr   r   r   F)r	   r   rw   StockPicklerr   _main_module_main_diff_cache_byref	_strictio_fmode_recurser0   	_postproc_file)r   r   r|   r   r   r   r   r   s           rA   r   zPickler.__init__]  s    ##'4('4(88It,dD84848!
+1>hw'v+1>hw'v/7/?+X$
r@   c                t   t        |      }t        rn|t         u sf|t        j                  v sTt	        |      rt        |      d        }t        |      rt        |      d        }t        |      rt        |      d        }t        r|t        u rdt        z  }t        |      t        j                  | ||       y )Nc           	         t        j                  | d|       t        |dt        |dd             }t        j                  | ||       t        j                  | d       y )NzNu: %sr   rG   r   # Nu)loggerr   getattrr   save_globalpicklerr_   r   s      rA   save_numpy_ufuncz&Pickler.save.<locals>.save_numpy_ufunct  sM    LL(C8"3ZQU8VWD ,,WcELL&1r@   c                    t        j                  | d|       | j                  t        |j                  f|       t        j                  | d       y )NzDt: %sr^   z# Dt)r   r   save_reduce_create_dtypemetarZ   r   r_   s     rA   save_numpy_dtypez&Pickler.save.<locals>.save_numpy_dtype  s?    LL(C8''(9CHH;C'PLL&1r@   c                   t        j                  | d|j                  |j                         t	        |dd       }|j                         \  }}}| j                  t        ||||f|       t        j                  | d       y )NzNu: (%s, %s)__dict__r^   r   )r   r   shaper;   r   rP   r   _create_array)r   r_   npdictr~   r|   states         rA   save_numpy_arrayz&Pickler.save.<locals>.save_numpy_array  sl    LL.#))SYYO$S*d;F%(^^%5NAtU''$uV7LRU'VLL&1r@   z;Can't pickle %s: attribute lookup builtins.generator failed)rZ   r=   r	   r   rW   r   r[   rS   GENERATOR_FAILr&   r   r   save)r   r_   save_persistent_idrR   r   r   r   msgs           rA   r   zPickler.savem  s    98t#3x7CSCS7S (#(# $ (#(# $ 'x0(# $ h-7OR__C$$$%78r@   c                Z    t        j                  |        t        j                  | |       y rk   )r   trace_setupr   r   r   r_   s     rA   r   zPickler.dump  s     4 $$r@   NT)rG   rF   r   r   r   r   r   r   __annotations___sessionr   r   r   r   r?   r@   rA   r	   r	   P  sr    ;|4499;< M = H" /9b  $$,,DL%  $$,,DLr@   r	   c                  h    e Zd ZdZddlmZ dZd Zd Zd Ze	j                  j                  e_        y)	r
   zBpython's Unpickler extended to interpreter sessions and more typesr   r   Fc                    ||fdk(  r| j                   j                  S ||fdk(  rt        d       S |dk(  rd}t        j                  | ||      S )N)rx   __main__)rx   NoneTypez	dill.dill
dill._dill)r   r   rZ   StockUnpickler
find_class)r   moduler   s      rA   r   zUnpickler.find_class  sW    D>88::&&&d^:::[ <&((vt<<r@   c                    t         j                  }|j                  dd       }t        j                  | g|i | t
        | _        ||d   | _        y || _        y )Nr   )r	   r   rw   r   r   r   r   _ignore)r   r|   r   r   r  s        rA   r   zUnpickler.__init__  sR    ##((8T*4t4t4!
-4_x)'r@   c                "   t        j                  |       }t        |      j                  t	        t
        dd      k(  r<| j                  s0t	        | j                  t        |      j                        |_	        |S |S # t        t        f$ r Y |S w xY w)NrG   r   )r   r   rZ   rF   r   r   r  r   rG   	__class__AttributeError	TypeErrorr   s     rA   r   zUnpickler.load  sv    !!$'97<Z#PP<<%,TZZc9K9K%LS] 
s
 'y174
 8s   	.A; ;BBN)
rG   rF   r   r   r   r   r   r   r   r   r?   r@   rA   r
   r
     s5    L"H=J "&&..DLr@   r
   c                *    |t         j                  | <   y)zBexpose :attr:`~Pickler.dispatch` table for user-created extensionsNr	   r   r   funcs     rA   r   r     s    GQ
r@   c                      fd}|S )zHdecorator to register types to Pickler's :attr:`~Pickler.dispatch` tablec                .    | t         j                  <   | S rk   r	  )r  r   s    rA   proxyzregister.<locals>.proxy  s    "r@   r?   )r   r  s   ` rA   r   r     s     Lr@   c                     t        t        j                  j                               D ]M  \  } }|j                  t
        k(  st        j                  | = | t        v s4t        |    t        j                  | <   O y)z7drop dill-registered types from pickle's dispatch tableN)listr   r   itemsrF   rG   pickle_dispatch_copy)rZ   r  s     rA   _revert_extensionr    sc    <006689 I
d??h&%%d+++.B4.H%%d+	Ir@   c                \    | a t         rt        
	 ddlm} |ayyy# t        $ r ddl}Y w xY w)a  
    Reduces size of pickles by only including object which have changed.

    Decreases pickle size but increases CPU time needed.
    Also helps avoid some unpickleable objects.
    MUST be called at start of script, otherwise changes will not be recorded.
    Nr   )diffr   )	_use_diffr   ImportError)onds     rA   use_diffr    s:     IT\	#  "y  		s    ++c               #  >  K   dd l } t        t        t        j                  j                               t        | j                  j                               z         j                         }|D ].  \  }}t        |dd       dk(  st        |      t        u s)||f 0 y w)Nr   rF   builtins)typesr   r  rx   r   r  r   rZ   )r  r  r   values       rA   _create_typemapr     s     T+&&,,./%..&&()* 	++057  
U5,-;K4'u* s   A?BB	B)PartialType	SuperTypeItemGetterTypeAttrGetterTypei CellType)	FileTypeBufferedRandomTypeBufferedReaderTypeBufferedWriterTypeTextWrapperTypePyBufferedRandomTypePyBufferedReaderTypePyBufferedWriterTypePyTextWrapperType)DictKeysTypeDictValuesTypeDictItemsTypeOdictKeysTypeOdictValuesTypeOdictItemsTypeExitType	InputType
OutputTypei )GenericAliasGenericAliasIteratorTypeHKEYTypec              #  *   K   | ]  \  }}||f  y wrk   r?   )rI   kvs      rA   rK   rK   F  s     <41aA<s   c                ,    t        j                  |       S rk   )marshalr   )strings    rA   
_unmarshalrA  H  s    ==  r@   c                    t         |    S rk   )_reverse_typemapr   s    rA   
_load_typerD  K  s    D!!r@   c                     | | S rk   r?   )typeobjr|   s     rA   _create_typerG  N  s    D>r@   c                    t        | |xs
 t               |||      }||j                  j                  |       |||_        d|j
                  vrt               d   |j
                  d<   |S )N__builtins__)r$   r   r   r   __kwdefaults____globals__globals)fcodefglobalsfname	fdefaultsfclosurefdictfkwdefaultsr  s           rA   _create_functionrT  Q  so     x1465)XNDU#) T---+29^+D(Kr@   c                  >    e Zd ZdZd Zd Zd Zd Zed        Z	d Z
y)	matchaI  
    Make avaialable a limited structural pattern matching-like syntax for Python < 3.10

    Patterns can be only tuples (without types) currently.
    Inspired by the package pattern-matching-PEP634.

    Usage:
    >>> with match(args) as m:
    >>>     if   m.case(('x', 'y')):
    >>>         # use m.x and m.y
    >>>     elif m.case(('x', 'y', 'z')):
    >>>         # use m.x, m.y and m.z

    Equivalent native code for Python >= 3.10:
    >>> match args:
    >>>     case (x, y):
    >>>         # use x and y
    >>>     case (x, y, z):
    >>>         # use x, y and z
    c                     || _         d | _        y rk   )r  _fields)r   r  s     rA   r   zmatch.__init__v  s    
r@   c                    | S rk   r?   r   s    rA   	__enter__zmatch.__enter__y  r   r@   c                     yr]   r?   )r   exc_infos     rA   __exit__zmatch.__exit__{  s    r@   c                V    t        | j                        t        |      k7  ry|| _        y)zjust handles tuple patternsFT)lenr  r|   )r   r|   s     rA   casez
match.case}  s%    tzz?c$i' 	r@   c                    | j                   .t        t        | j                  | j                              | _         | j                   S rk   )rX  r   zipr|   r  r   s    rA   fieldszmatch.fields  s3     <<DIItzz :;DL||r@   c                     | j                   |   S rk   )rc  r   items     rA   __getattr__zmatch.__getattr__  s    {{4  r@   N)rG   rF   r   r   r   rZ  r]  r`  propertyrc  rg  r?   r@   rA   rV  rV  a  s4    (  
!r@   rV  ))      aco_endlinetablezargcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable endlinetable columntable exceptiontable freevars cellvars)rj  rk  co_exceptiontablezargcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable                          exceptiontable freevars cellvars)rj  
   co_linetablezargcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno linetable                                         freevars cellvars)rj     co_posonlyargcountzargcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno lnotab                                            freevars cellvars)rj     co_kwonlyargcountzargcount                 kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno lnotab                                            freevars cellvars)codelnotab	linetableendlinetablecolumntableexceptiontablec                    t        | d   t              s| ^}} nd}t        |       5 }|j                  d      rt        dk(  rt        g | d d t        | d   d      r| d   j                         n| d   | dd t        | d   d      r| d   j                         n| d   t        | d	   d      r| d	   j                         n| d	   | d
   | d    cd d d        S |j                  n|j                  d      rt        dk(  s	t        dk(  rtt        g | d d t        | d   d      r| d   j                         n| d   | dd t        | d   d      r| d   j                         n| d   | d   | d	    cd d d        S |j                  t        dk\  r|j                  d<   n;|r|n|j                  d<   n&|j                  d      rt        dk(  rtt        g | d d t        | d   d      r| d   j                         n| d   | dd t        | d   d      r| d   j                         n| d   | d   | d    cd d d        S |j                  n|j                  d      rot        dk(  rYt        g | d d t        | d   d      r| d   j                         n| d   | dd d | dd D        | d   | d    cd d d        S |j                  nt        d      d d d        j                  dd       j                  d|       j                  dd       j                  dd          j                  dd       j                  d d        j                  d!d        fd"t        D        } t        |  S # 1 sw Y   xY w)#Nr   r@   )argcountposonlyargcountkwonlyargcountnlocals	stacksizeflagsry  constsnamesvarnamesfilenamer   qualnamefirstlinenor{  r~  freevarscellvarsrn     encoderw              )r  r  r  r  r  r  ry  r  r  r  r  r   r  LNOTAB_OR_LINETABLEr  r  rp  rs     r{  rz  )r  r  r  r  r  ry  r  r  r  r  r   r  rz  r  r  rv        )r  r  r  r  r  r  ry  r  r  r  r  r   r  r  r{  r|  r}  r~  r  r  ri  c              3  X   K   | ]"  }t        |d       r|j                         n| $ ywr  N)hasattrr  )rI   rl  s     rA   rK   z_create_code.<locals>.<genexpr>  s$     UAGAx$8ahhja?Us   (*      z$pattern match for code object failedr  r  r   r~  r|  r}  c              3  |   K   | ]3  }|t         v r"t        |   d       r|   j                         n|    5 ywr  )ENCODE_PARAMSr  r  )rI   r<  rc  s     rA   rK   z_create_code.<locals>.<genexpr>  sF      " #$}"4H9UF1I[abc[dd "s   9<)
isinstancer   rV  r`  CODE_VERSIONr#   r  r  rc  r  r   
setdefaultCODE_PARAMS)r|   LNOTABmrc  s      @rA   _create_coder    sD   d1gs#	t GJ66 
 
 v% "1X(/Q(BDGNN$Q !BZ *1b8)DDHOO%$r(	
 *1b8)DDHOO%$r( H HGJ GJ" XXFVV 
 
 v%)> "1X(/Q(BDGNN$Q !BZ *1b8)DDHOO%$r(	
 H H3GJ GJB XXFv%&'&;&;{#-369N9Nx VV 
 
 u$ "1X(/Q(BDGNN$Q !BZ *1b8)DDHOO%$r(	
 H H[GJ GJj XXFVV 
 
 z) "1X(/Q(BDGNN$Q !BZ VbQSU	
 H H{GJ GJJ XXF!"HIIOGJT '+
h'
k3'
j&.1
&,
nd+
mT*" "DT?iGJ GJs'   B,NBNB?NA6NNNc                *    |i }|d} | |g|i |S )Nr?   r?   )ftypeobjr  r|   r   s       rA   _create_ftyper    s+    ||D(4(4((r@   c                    | s"t         j                  d   j                  d      S | dk(  rt         j                  d   S t         j                  |    S )Nr?   r?   )typingTuple	copy_with)argzr|   s     rA   _create_typing_tupler    sD    ||B))"--u}||B<<r@   c                \    ddl m}  |       }| r|j                  d      st        d      |S )Nr   )LockFCannot acquire lock)	threadingr  acquirer   )lockedr|   r  locks       rA   _create_lockr    s,    6D||E"!"788Kr@   c                ~    t               }||j                  | |f       |r|j                         st        d      |S )Nr  )	RLockType_acquire_restore	_is_ownedr   )countownerr|   r  s       rA   _create_rlockr    s>    ;Duen-T^^%344Kr@   c                4   t         j                  t         j                  t         j                  d}| t	        |j                               v r||    }	n| dk(  rt        j                         }	n| dk(  rdd l}
|
j                  |      }	n	 t        j                  j                  |       }|s"|rt        d| z        d|v r|t        k7  rd} d}nt        j                  j                  |       }||kD  r|rt!        d      |t"        k(  r|}	 |t        k(  r> || d	|v r|nd	      }	|	j%                  |       d	|vr|	j'                           || |      }	n| dk(  rdd l}
|
j                  |      }	n|t"        k(  rd	|v sd
|v rt        j(                  }d|v r|t        j*                  z  }n|t        j,                  z  }t        j.                  t        j0                  | |      |      }	t3        |	d|	      }t3        |d|      }| |_        |	j4                  | k(  sJ  || |      }	|r|	j'                          |	S |dk\  r|t<        k7  r|	j?                  |       |	S # t        $ r d}Y w xY w# t6        t        f$ r# t        j8                         d   }t;        |      w xY w)N)z<stdin>z<stdout>z<stderr>z	<tmpfile>z<fdopen>r   Fz)[Errno 2] No such file or directory: '%s'r   zinvalid buffer sizewrm   +bufferrawr   ) sys	__stdin__
__stdout__
__stderr__r  keysry   tmpfiletempfileTemporaryFilepathexists	ExceptionFileNotFoundErrorr   getsize
ValueErrorr   writer{   O_CREATO_RDWRO_WRONLYfdopenrv   r   r   IOErrorr\  r   r   seek)r   modepositionclosedrv   strictior   fdatar  r~   r  r  current_sizer  r   errs                   rA   _create_filehandler    se    }}(EtEJJL!!$K		JJL		""4(	WW^^D)F '(SVZ(Z[[*!4!L77??40Ll" !677.('	'
"sd{t<d?GGIT4(A#**40.(4K3$;

$;RYY&ER[[(EIIbggdE2D9Ax+Aua(vv~%~t$ 		 H 
Q5L0	xHk  	F	\ *+ 	',,.#C!#&&	's   I DI% I"!I"%2Jc                f    t        |       }|r|j                          |S |j                  |       |S rk   )r   r{   r  r  r  r  r~   s       rA   _create_stringir  `  s.    AqwwyH &&
Hr@   c                    t               }|r|j                          |S |j                  |        |j                  |       |S rk   )r   r{   r  r  r  s       rA   _create_stringor  f  s9    
Aqwwy H 	wwu~vvhHr@   c                      e Zd Zd Zd Zy)_itemgetter_helperc                    g | _         y rk   r  r   s    rA   r   z_itemgetter_helper.__init__o  s	    
r@   c                :    | j                   j                  |       y rk   )r  appendre  s     rA   __getitem__z_itemgetter_helper.__getitem__q  s    

$r@   N)rG   rF   r   r   r  r?   r@   rA   r  r  n  s    r@   r  c                      e Zd ZddZd Zy)_attrgetter_helperNc                     || _         || _        y rk   )attrsindex)r   r  r  s      rA   r   z_attrgetter_helper.__init__v  s    

r@   c                    t         j                  | d      }t         j                  | d      }|t        |      }|j                  |       ndj	                  ||   |g      ||<    t        |       ||      S )Nr  r  r   )object__getattribute__r_  r  joinrZ   )r   attrr  r  s       rA   r  z#_attrgetter_helper.__getattribute__y  sn    ''g6''g6=JELL88U5\4$89E%LtDz%''r@   rk   )rG   rF   r   r   r  r?   r@   rA   r  r  u  s    (r@   r  c                      e Zd Zd Zy)_dictproxy_helperc                    |S rk   r?   )r   rl  s     rA   __ror__z_dictproxy_helper.__ror__  s    r@   N)rG   rF   r   r  r?   r@   rA   r  r    s    r@   r  _CELL_EMPTYc                <    | t         ur| fdj                  d   S )Nc                      S rk   r?   )r  s   rA   rn   z_create_cell.<locals>.<lambda>  s    E r@   r   )r  __closure__)contentsr  s    @rA   _create_cellr     s!    {"&&q))r@   c                L    ddl m} | ddlm}  | |       g| S  || g| S )Nr   )refUserDict)weakrefr  collectionsr  )r_   r|   r  r  s       rA   _create_weakrefr    s-    
{(8:%%%s?T?r@   c                d    ddl m} |  |r
 |d g| S ddlm}  | |       g| S  || g| S )Nr   )r  c                    | S rk   r?   ro   s    rA   rn   z#_create_weakproxy.<locals>.<lambda>  s    1 r@   r  )r  r  r  r  )r_   callabler|   r  r  s        rA   _create_weakproxyr    sA    
{E*4t44(XZ'$''tr@   c                    t        |       S rk   )eval)repr_strs    rA   
_eval_reprr    s    >r@   c                l     | | }|j                  |       ||j                  j                  |       |S rk   )__setstate__r   r   )r~   r|   r   r   arrays        rA   r   r     s6    tHE	uf%Lr@   c                ^    t         du r
t                | t         S t        t        |             S )NT)r>   rB   rZ   )scalar_types    rA   r   r     s*    T8:
;'((r@   c                f    t        |dz   | z   d      }||S dd l}|j                  | |||      }|S )Nr   Tsafer   )defaultsr  )_import_moduler  
namedtuple)r   
fieldnames
modulenamer  class_r  r   s          rA   _create_namedtupler    sD    J,t3$?FtZ(:VAHr@   c                   d}	 |j                  d      }t        d|j                  d      dz         D ]@  }|j                  d|      }	 t	        |d         }}	|dd  D ]  }
t        |	|
      }	 |	}d} n |r(t        |      r|S t        t        |      d|d      t        | ||      }t        ||       |S # t
        $ r Y ow xY w# t        $ r Y _w xY w)	NFutf8r   r   r   Tz object exists at z% but a PyCapsule object was expected.)decoderanger  rsplit
__import__r  r   r  _PyCapsule_IsValidr   rZ   _PyCapsule_New_PyCapsule_SetContext)pointerr   context
destructor
attr_foundunameir  r  r_   r  capsules               rA   _create_capsuler/    s   JF#q%++c*1,- 	ALLa(E#E!H- Cab	 )c4()GJ	 gt,N_cdk_lnrstt !$
;gw/'    s6   AC
 	B;C
 ;	CC
 CC
 
	CCc                   	 |j                  d      d   }t        |dz   |z   dz         S # t        $ rW 	 | j                  }t	        |      t
        u r||   }nt        | |      }n!# t        t        f$ r t        | |      }Y nw xY w|cY S w xY w)N'rj  z.__dict__["z"])	splitr  r  r   rZ   DictProxyTyper   r  r   )objclassr   r  r  s       rA   _getattrr5    s    ~~c"1%D&t+D011 		*$$DDz]*Dzx-) 	*8D)D	*	s2   '* 	B
/A$#B
$B?B
BB
	B
c                @    t        | |d       xs t        t        |      S rk   )r   rx   )r   r   s     rA   	_get_attrr7    s    4t$BT(BBr@   c                ,   	 | j                  d      rt        j                  |    S d| v r+| j                  d      }dj	                  |d d       }|d   }nt        |       S t        t        |d d |g      |      S # t        t        t        f$ r |rY y  w xY w)Nz__runtime__.r   r   )

startswithr  modulesr2  r  r$  r   r  r  r   )import_namer  r  r  r_   s        rA   r  r    s    !!.1;;{++K%%c*EXXeCRj)F)Ck**z&$se<cBB2 s   #A9 9A9  A9 9BBc                    |j                  d      D ]1  }|dk(  rt        dj                  ||             	 | }t        | |      } 3 | fS # t        $ r t        dj                  ||             w xY w)Nr   z<locals>z&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})r2  r  formatr   )r_   r   subpathparents       rA   _getattributer@    s    ::c? 	5j  !I"(&s"35 5	5F#w'C	5 ;  	5 !C"(&s"35 5	5s   A

%A/c                \   t        | dd       }|dv s4|r3t        |d      r&|j                  r||j                  j                  k(  ryt        | d      r+t        |d      }	 t        || j                        \  }}|| u S t        |dz   | j                  z   d      }|| u S # t        $ r Y yw xY w)	NrF   )r   NFchildr   Tr  r   )
r   is_dillr   r   rG   r  r  r@  r   r  )r_   r   r   r  found_s         rA   _locate_functionrG    s    #|T2K((u5':J:J{^e^k^k^t^tOtsN#$7	$VS-=-=>HE1C< {S03<<?dK|	  		s   !B 	B+*B+c                >    |j                         D ]
  \  }}|| |<    y rk   r  )destsourcer<  r=  s       rA   	_setitemsrK  )  s$     1Qr@   c           	     `   |t         j                  u rt        |      }|t        | d      }|r|g }t	        |      | j
                  v rht        |d      r'|j                  dt        |d|j                        dnd}t        j                  d|d	|d
t               | j                  |       y || j
                  t	        |      <    | j                  |d|i |r| j
                  j                  t	        |            }t!        |      D ]  }|d   t"        u rm|d   \  }}|rb| j%                  | j'                  | j(                  t	        |         d                | j+                  t-        |j/                                      n{ | j                  |  | j%                  t0                y y )NTrB  rF   r   r    r  Cannot pickle : z<has recursive self-references that trigger a RecursionError.r_   r   r   )r   
NO_DEFAULTr   rD  idr   r  rF   r   rG   warningswarnr   r   r   rw   reversedrK  r  r   r   _batch_setitemsiterr  r    )	r   	reductionis_pickler_dillr_   postproc_listr   postprocrI  rJ  s	            rA   _save_with_postprocr[  .  s   
g   Y!'6
  M c7g'''^efikw^xs~~wsNCLL/YZ  ADMMpsuyz  }L  M$%2"S'" G,, $$((C1!(+ 	I|y(  )|fMM'++gll2d8.DQ.G"HI++D,@A ###Y/MM#	 r@   c                6	   t        j                  | d|       t        |d      r|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  f}nQt        |d      rt1        j2                         5  t4        st1        j6                  dt8               |j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  |j*                  |j,                  |j.                  f}d d d        n1t        |d      r|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j"                  |j$                  |j,                  |j.                  f}nft        |d      r|j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j"                  |j                  |j,                  |j.                  f}n|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j"                  |j                  |j,                  |j.                  f}| j;                  t<        |       t        j                  | d	       y # 1 sw Y   8xY w)
NzCo: %srm  ro  r   )categoryrr  ru  r^   z# Co)r   r   r  	co_lnotabco_argcountru  rx  
co_nlocalsco_stacksizeco_flagsco_code	co_constsco_namesco_varnamesco_filenameco_nameco_qualnameco_firstlinenorr  rm  co_columntablero  co_freevarsco_cellvarsrR  catch_warningsOLD312a7filterwarningsDeprecationWarningr   r  r   r_   r|   s      rA   	save_coders  g  s0   
LL(C(s%&MMOOS33!!3>>33C3CLL#++s}}cllOOS__ckk3?? 0 0#2E2E 5 5sOO	
 
)	*$$& 	'';MN!7!7%%s~~s7G7Gckk3==#,,#++s""C$4$4c6K6KD	 	 
n	%MMOOS33!!3>>33C3CLL#++s}}cllOOS__ckk 0 0#//OO
 
*	+OOS33!!3>>33C3CLL#++s}}cllOOS__ckksOO
 OOS22CNNcllCKKLL#//3??KK++S]]OOS__
 d4
LL&!
U	 	s   0C5RRc                H    dt        |       j                  t        |       fz  S )z3Make a short string representation of a dictionary.z<%s object at %#012x>)rZ   rG   rQ  r^   s    rA   
_repr_dictru    s     "d3i&8&8"S'%BBBr@   c                   t        | d      r|| j                  j                  k(  rj| j                  r| j                  sRt        j                  | dt        |             | j                  t        dd             t        j                  | d       y t        | d      se|t        j                  k(  rRt        j                  | dt        |             | j                  t        dd             t        j                  | d	       y d
|v r|t        j                  k7  rt        |d
         t        u rt|t        t        |d
   d      dd       u rXt        j                  | dt        |             | j                  t        d|d
   z  d             t        j                  | d       y t        j                  | dt        |             t        | d      r| j                  rd| _        t        j                   | |       t        j                  | d       y )NFrB  zD1: %szc__builtin__
__main__
zUTF-8z# D1zD3: %szc__main__
__dict__
z# D3rG   Tr   zD4: %szc%s
__dict__
z# D4zD2: %sz# D2)rD  r   r   r   _first_passr   r   ru  r  bytesr   rZ   r   r   r  r   	save_dictr   s     rA   save_module_dictrz    s   we$0F0F)F!!g&9&9Wh
38e6@AWf%$ # gU+#9N9N2NWh
38e3W=>Wf%  
s	sl&;&;;S_%,w~c*odCZQUVVWh
38e-J?IJWf%  	Wh
387%(W-=-="'Gw,Wf%
r@   c           
     V    d }dD cg c]  }| |t        | |            f c}S c c}w )Nc                      fd}|S )Nc                    t        j                  | d|       |j                  t        z  }| j	                  |f|       t        j                  | d       y )Nz
Dkvi: <%s>r^   z# Dkvi)r   r   mapping_dictproxy_helper_instancer   )r   r_   r~  r  s      rA   _save_dict_viewzLsave_dict_view.<locals>.save_dict_view_for_function.<locals>._save_dict_view  sG    WlC8++(BB##D7*##>Wh/r@   r?   )r  r  s   ` rA   save_dict_view_for_functionz3save_dict_view.<locals>.save_dict_view_for_function  s    0
 #"r@   )r  valuesr  )r   )dicttyper  funcnames      rA   save_dict_viewr    s;    	# 8
 278X3NOP
 	
 
s   &c                8      fd} fd} fd}d|fd|fd|ffS )Nc                    t        j                  | d|       t        j                  j                  t        |      f      }| j                  j                  |f|       t        j                  | d       y )NzDk: <%s>r^   z# Dk)r   r   r   r   fromkeysr  r   r  r   r_   dict_constructorr  s      rA   save_dict_keysz&save_dict_view.<locals>.save_dict_keys  s[    LL*c2%}}X->->cM0@/BLLL&)r@   c                    t        j                  | d|       t        j                  t	        |      f      }| j                  j                  |f|       t        j                  | d       y )NzDv: <%s>r^   z# Dv)r   r   r   r   	enumerater   r  r  s      rA   save_dict_valuesz(save_dict_view.<locals>.save_dict_values  sV    LL*c2%}}X	#7HI2B1D#NLL&)r@   c                    t        j                  | d|       | j                  j                   |      f|       t        j                  | d       y )NzDi: <%s>r^   z# Di)r   r   r   r  )r   r_   r  s     rA   save_dict_itemsz'save_dict_view.<locals>.save_dict_items  sA    LL*c2#0@cJLL&)r@   r  r  r  r?   )r  r  r  r  s   `   rA   r  r    s7    	*	*	* ^$'(o&
 	
r@   c           	        t        ||       sgt        j                  | d|       | j                  t        |j
                  |j                  |j                  f|       t        j                  | d       y t        j                  | d|       t        |dt        |dd             }t        j                  | ||       t        j                  | d       y )	NzC1: %sr^   z# C1zC2: %sr   rG   r   z# C2)rG  r   r   r   	ClassTyperG   	__bases__r   r   r   r   r   s      rA   save_classobjr    s    C)Wh,Icmm(+(6;> 	 	@ 	Wf% 	 	Wh,sNGCT,JK  #D9Wf%
r@   c                j   |j                   }t        |j                               t        u rTt	        j
                  | d|       t        j                  | ||j                                t	        j
                  | d       y |j                  t        u rN|r|dk(  rGt	        j
                  | d|       | j                  t        |f|       t	        j
                  | d       y t	        j
                  | d|       t        j                  | g|j                         d	|i t	        j
                  | d
       y )NzGa0: %sr   z# Ga0r  zGa1: %sr^   z# Ga1zGa2: %sr_   z# Ga2)__args__rZ   rP   r   r   r   r   r   
__origin__tupler   r  rr  s      rA   save_generic_aliasr    s    <<DCNN$Wi-  #CNN4DEWg&  
5	 $$%-Wi-04'sCWg&
  	Wi-  E3>>+;EEWg&
r@   c                    t        j                  | d|       | j                  t        |j	                         f|       t        j                  | d       y )NzLo: %sr^   z# Lo)r   r   r   r  r  r   s     rA   	save_lockr    s@    
LL(C(szz|o3?
LL&!
r@   c                   t        j                  | d|       |j                         }t        |j	                  d      d   j	                         d   j                  d            }t        |j	                  d      d   j	                         d         }| j                  t        ||f|       t        j                  | d       y )	NzRL: %szcount=r   r   >zowner=r^   z# RL)r   r   rs   r   r2  rstripr   r  )r   r_   r   r  r  s        rA   
save_rlockr    s    
LL(C(A!!$**,Q/66s;<E!!$**,Q/0Ee~3?
LL&!
r@   c                    t        j                  | d|        | j                  t        |        t        j                  | d       y )NzSo: %sz# So)r   r   r   reduce_socketr   s     rA   save_socketr  *  s8    
LL(C(Gs+,
LL&!
r@   c                F   |j                   rd}nT|j                          |t        j                  t        j                  t        j
                  fv rd}n|j                         }t        | d      rG| j                  t        k(  r4 ||j                  d      }|j                         }|j                          nd}t        | d      r| j                  }| j                  }nd}d}| j                  t        |j                  |j                   ||j                   ||||f|       y )	Nr   r   TrB  r   r  Fr^   )r  flushr  r  r  r  tellrD  r   r   r   readr{   r   r   r  r  )r   r_   open_r  r~   r  r  r   s           rA   
_save_filer  0  s    
zz		3>>3>>3==AAHxxzHwd#*(D#((C 		wd#$$*SXXsxx-0ZZ-2E-;@C  E r@   c                    t        j                  | d|       t        | |t              }t        j                  | d       |S NzFi: %sz# Fi)r   r   r  rv   r   r_   r~   s      rA   	save_filer  K  s5     LL(C(7C&A
LL&!Hr@   c                    t        j                  | d|       t        | |t              }t        j                  | d       |S r  )r   r   r  _openr  s      rA   r  r  W  s5    
 	Wh,wU+Wf%r@   c                
   t        j                  | d|       |j                  rd}d}n |j                         }|j	                         }| j                  t        |||j                  f|       t        j                  | d       y NzIo: %sr  r   r^   z# Io)r   r   r  r   r  r   r  r   r_   r  r  s       rA   save_stringir  f  q    Wh,::E1LLNEsxxzHOeX.1jj.:?B 	 	DWf%r@   c                
   t        j                  | d|       |j                  rd}d}n |j                         }|j	                         }| j                  t        |||j                  f|       t        j                  | d       y r  )r   r   r  r   r  r   r  r  s       rA   save_stringor  r  r  r@   )	lru_cachec                p   t        j                  | d|       t        r|j                         }|j                  f}n|j                         }|d   |d   f}|t        j                  k7  rt        t        |d      }nt        }| j                  ||j                  f|       t        j                  | d       y )NzLRU: %smaxsizetypedT)is_callabler^   z# LRU)r   r   OLD39
cache_infor  cache_parametersr  __defaults__r   r   __wrapped__)r   r_   r}   r|   wrappers        rA   save_lru_cacher    s    Wi-^^%FNN$D))+F9%vg7D9)))Y$?GGGcoo%7SAWg&r@   c                    t        j                  | d|       | j                  t        |j                  |j
                  f|       t        j                  | d       y )NzSu: %sr^   z# Su)r   r   r   super__thisclass____self__r   s     rA   
save_superr    sG    
LL(C( 1 13<<@cJ
LL&!
r@   c                   t        |j                  dd       }|t        |      t        urt        |j                  |j
                        |k(  r\t        j                  | d|       | j                  t         |j                  |j
                  f|       t        j                  | d       y t        j                  | d|       | j                  t        |j                  |j                  f|       t        j                  | d       y )N__code__zMe2: %sr^   z# Me2Me1: %s# Me1)
r   __func__rZ   r#   r  rG   r   r   r   r%   )r   r_   ry  s      rA   save_instancemethod0r    s    s||Z6T
( :#,,5<LL)S1#,,)E3OLL'*Wi-Js||(D#NWg&r@   c                    t        j                  | d|       | j                  t        |j                  |j
                  f|       t        j                  | d       y )Nr  r^   r  )r   r   r   r%   r  r  r   s     rA   r  r    sE    Wi-Js||(D#NWg&r@   c                    t        j                  | d|       | j                  t        |j                  |j
                  |j                         f|       t        j                  | d       y NzWr: %sr^   z# Wrr   r   r   r5  __objclass__rG   rs   r   s     rA   save_wrapper_descriptorr    sZ     	Wh,Hs'7'7'*||~'7<? 	 	AWf%r@   c                    t        j                  | d|       | j                  t        |j                  |j
                  |j                         f|       t        j                  | d       y r  r  r   s     rA   r  r    sZ     	Wh,Hs'7'7'*||~'7<? 	 	AWf%r@   c                   	 |j                   }t        | d      rt        |      | j                  v r| j                  t        |         }n-t        t        | j                  j!                               d       }|ot        j                  | d|       | j	                  t
        t"        f|       |j%                  t        j&                  |d|ff       t        j                  | d       y t        j                  | d	|       | j	                  t
        |f|       t        j                  | d
       y # t        $ r t        j                  | d|       | j	                  t
        t        j                  f|       | j	                  t        j                  |df       | j                  t               t        j                  | d       Y y w xY w)NzCe3: %sr^   cell_contentsz# Ce3TrB  zCe2: %sz# Ce2zCe1: %sz# Ce1)r  r  r   r   r   r   r   r  _delattrr  r    rD  rQ  r   nextrV  r  	_CELL_REFr  _setattr)r   r_   r~   rZ  s       rA   	save_cellr    st   ( wd#a5G%%%((A/H D!2!2!9!9!;<dCHLL)S1 ylDOOV__sOQ.GHILL'*
LL)S)qd4
LL'"
O  Wi- 	L6+=+=*?SI 	FOOc?-CDcWg&%s   D0 0BGGc                    t        j                  | dt        |             |t        z  }| j	                  t
        |f|       t        j                  | d       y NzMp: %sr^   z# Mp)r   r   ru  r  r   r3  )r   r_   r~  s      rA   save_dictproxyr    sI    Wh
3822MG:3?Wf%r@   c                    t        j                  | dt        |             | j                  t        |j                         f|       t        j                  | d       y r  )r   r   ru  r   r3  r   r   s     rA   r  r    sD    Wh
38MCHHJ=cBWf%r@   c                    t        j                  | d|       | j                  t        |j                  |j
                  |j                  f|       t        j                  | d       y )NzSl: %sr^   z# Sl)r   r   r   slicestartstopstepr   s     rA   
save_slicer    sK    
LL(C(		388SXX>CH
LL&!
r@   c                    t        j                  | d|       | j                  t        |j	                         f|       t        j                  | d       y )NzSi: %sr^   z# Si)r   r   r   r  rs   r   s     rA   save_singletonr    sC     LL(C(
S\\^$53?
LL&!
r@   c                    t        |       }t        |       }||k(  rt        |       S 	 t	        |j                  d      j                  d      d   d      }|S # t        $ r t        d      cY S w xY w# t        $ r t        s1t	        |j                  d      j                  d      d   d      }Y |S t        t        j                               }|D ]  }t        |      |k(  st        |      c cY S  dt        |       z  }t        |      w xY w)z.get memory address of proxy's reference objectNr  z at r   r  rq   z)Cannot reference object for proxy at '%s')reprr   ReferenceErrorrQ  r   r  r2  r  IS_PYPYrV  gcget_objects)r_   _repr_straddressobjects_objr   s          rA   _proxy_helperr    s    IEC u}RWn&dkk#&,,V4R8rB N  $x
  	&%,,s+11&9"=BGG N 2>>+,G 7:%bh7 >3GC %%	&s.   A .A2 A/.A/2=D20D#D2Dc                n   g d}|D ]  }| t        |      k(  s|c S  |r$t        |j                  j                               }nt        t	        j
                               }|D ]  }| t        |      k(  s|c S  t        |       } t        d| z        # t        $ r t        dt        |       z        w xY w)zCget object located at the given memory address (inverse of id(obj)))NTFz"'%s' is not a valid memory addresszCannot reference object at '%s')
rQ  rV  r   r  r  r  hexr  r   r  )r  r  specialr_   r  s        rA   _locate_objectr  )  s    !G *bgcz*v--/0)*' *bgcz* w< :WD
EE  M<s7|KLLMs   :B !B4c                     |       }t        j                  | d|       | j                  t        |f|       t        j                  | d       y )NzR1: %sr^   z# R1)r   r   r   r  r   r_   refobjs      rA   save_weakrefr  9  sA    UF
LL(C(&<
LL&!
r@   c                    t        j                  | d|z         t        t        |            }| j	                  t
        |t        |      f|       t        j                  | d       y )NzR2: %rr^   z# R2)r   r   r  r  r   r  r
  r  s      rA   save_weakproxyr  B  sU     LL(S.)M#./F)FHSM+BL
LL&!
r@   c                    t         d      sy j                  yg d}t        j                  j                  t         fd|D              xs/  j                  j                  t              xs d j                  v S )N__file__TF)base_prefixbase_exec_prefixexec_prefixprefixreal_prefixc           	   3     K   | ]t  }t        t        |      rbj                  j                  t	        t        |            xs5  j                        j                   t	        t        |                   v y wrk   )r  r  r  r9  r   )rI   r   r  rps     rA   rK   z%_is_builtin_module.<locals>.<genexpr>U  sj      
 sD! OO&&wsD'9: F&//"--bd1C.DEF
s   A:A=zsite-packages)r  r  ry   r  realpathrV   endswithEXTENSION_SUFFIXES)r  r  r  s   ` @rA   _is_builtin_moduler	  L  s}    6:&tu XE			B 	 
 
 	
 	. ??##$67	. foo-	r@   c                d    t        | dd       d uxs  | t        j                  j                         v S )N
__loader__)r   r  r:  r  )r  s    rA   _is_imported_moduler  _  s-    6<.d:\fHZHZH\>\\r@   c                p   	 t        |      }t        | d      xr || j                  u }|j                   dvr|r|rt        j                  | d|       t        |      r|j                   nd	|j                   z  }|j                   j#                         }d
D ]  }|j%                  |d         t&        D ]1  }t)        |j+                  |      dd      j-                  d      s/||= 3 | j                  t        |f||       t        j                  | d       y |j                   dk(  rAt        j                  | d|       | j/                  |d       t        j                  | d       y t        j                  | d|       | j                  t        |j                   f|       t        j                  | d       y )N)r_   r   z# M2zM1: %sr^   z# M1TrB  )r  r   r   z__runtime__.%s)rI  r  rF   r  IPythonr   zM2: %s_dillr   )rG   r2  r  whats_changedr   r   r   infor  r   r  RuntimeErrorr	  rD  r   r  r   r   rw   IPYTHON_SINGLETONSr   r   r9  r   )r   r_   changedbuiltin_modis_session_mainmod_name	main_dictrf  s           rA   save_moduler  b  s   $ )-!'6O3'--;OLL BB;"LL(C0':3'?s||EUX[XdXdEdH))+I6 *dD)** (9==.bALLYW!$( IVLL&)  \\\)LL(C0'2LL&)
  LL(C0SILL&)
r@   c                "   t        | j                        dk(  r| j                  d   j                  }n7i }t        | j                        D ]  }|j	                  |j                          g }t
        j                  |      D ]   \  }}	 ||   }	||	u r|j                  |       " |D ]  }t
        j                  ||        t        t        |       t              r$|j                  dd       |j                  dd       ||fS # t        $ r Y w xY w)zDRetrieve a copy of the dict of a class without the inherited methodsr   r   r   N__weakref__)r_  r  r   rT  r   r   r  r  r   rw   r   rZ   )
clsclsdictr  rY  inherited_dictrr   	to_remover   r  
base_values
             rA   _get_typedict_typer!    s   
3==Qq)22S]]+ 	1D!!$--0	1Izz'* e	'-J
"  &	   $  $s)T"J%M4(E>  		s   D	DDc                   t        t        d      rAt        j                  |       \  }}}}| j                  |j	                  fd|D               nKt        | d      r3| j
                  }| j                  |j	                  fd|D               nt        d|       d|v r:|j                  dd        |j                  dd        |j                  dd        ||fS |j                  dd        ||fS )	N	_get_dumpc              3  2   K   | ]  } |       ff  y wrk   r?   rI   regr   s     rA   rK   z$_get_typedict_abc.<locals>.<genexpr>  s     Fch1Fs   _abc_registryc              3  (   K   | ]	  }|ff  y wrk   r?   r%  s     rA   rK   z$_get_typedict_abc.<locals>.<genexpr>  s     DCh/Ds   zCannot find registry of ABC %s
_abc_cache_abc_negative_cache	_abc_impl)r  abcr#  r   extendr'  r   rw   )r_   _dictr  rY  registryrF  r   s         @rA   _get_typedict_abcr0    s    sK !mmC01a<<FXFF	o	&$$<<D8DD<cBB%		/4(		,%		'. %< 			+t$%<r@   c           	        |t         v rNt        j                  | d|       | j                  t        t         |   f|       t        j                  | d       y |j
                  t        fk(  rFt        dD cg c]  }t        ||       c}      r"t        j                  | d|       t        |dt        |dd             }|j                  |k7  r|g }|j                  t        |d|ff       |j                  s7t        | t        |j                  |j                   |j"                  ff||       nl|j                   D cg c]   }||j                  v s|j                  |   " }}t        | t        |j                  |j                   |j"                  |ff||       t        j                  | d	       y |t%        d       u rFt        j                  | d
|       | j'                  t(        dz          t        j                  | d       y |t*        u rKt        j                  | d
|       | j                  t$        t,        f|       t        j                  | d       y |t.        u rKt        j                  | d
|       | j                  t$        t0        f|       t        j                  | d       y |t2        u rFt        j                  | d
|       | j'                  t(        dz          t        j                  | d       y t        | dd       }t5        |      t        | dd      v }t7        ||        }	|s|s|	r|g }t        j                  | d|       t9        ||j:                  j=                         d |      \  }
}|
j?                  dd      }t%        |      t@        k(  r|f}|D ]  }|
jC                  |d         tE        |tF        jH                        r>t        j                  | d|       tK        ||
||      \  }
}t        j                  | d       t        |dd       }|2|jM                         D ]  \  }}|j                  t        |||ff       ! ||j                  t        |d|ff       t        |d      s7t        | tN        t%        |      |j                  |j
                  |
ff||       nPdt%        |      i}|
rtQ        tR        |
      }nd }t        | tT        |j                  |jV                  ||ff||       t        j                  | d       y t        |dt        |dd             }t        j                  | d|       |	r tY        jZ                  d|dt\        d       |r0tY        jZ                  d|d|j"                  d|d t\        d       t_        j`                  | ||!       t        j                  | d"       y c c}w c c}w )#NzT1: %sr^   z# T1)rX  _asdict_make_replacezT6: %sr   rG   r_   rY  z# T6zT7: %ss   __builtin__
NoneType
z# T7s   enum
EnumMeta
r   r   r?   zT2: %s	__slots__zABC: %sz# ABC__orig_bases__	metaclass)rJ  z# T2zT4: %szCannot locate reference to r   rj  )
stacklevelrN  rO  z= has recursive self-references that trigger a RecursionError.r   z# T4)1_typemapr   r   r   rD  r  r  rM   r  r   rG   r  setattr_field_defaultsr[  r  rX  rF   rZ   r  r   NotImplementedTypeNotImplementedEllipsisTypeEllipsisr2   rQ  rG  r!  r   r   r   r   rw   r  r,  ABCMetar0  r  rG  r!  rK  r,   r7  rR  rS  r   r   r   )r   r_   rY  r  obj_namefieldr  r   obj_recursiveincorrectly_namedr.  r  slotsr   r  r<  r=  	_metadict_dict_updates                      rA   r   r     sC   
hWh, 	J#(8cBWf%d c 
5(	"sKs+t4GC,>+t'uWh,3Z0NO<<8#$ "  'C+J!KL""*<s||S[[Z]ZhZh>i)jps  DQ  R@CluuX[XkXkOk++E2lHl*<s||S[[Z]ZhZhjr>s)tz}  N[  \Wf% 
T
	Wh,f99:Wf%t s 
"	"Wh,D>"3=Wf%l k 
	Wh,D8+37Wf%d c 
Wh,f223Wf%\ W (D1377K#DD 0g >>m0A$ " LL(C0-c3<<3D3D3Fm\LE5
 IIk2.EE{c! &		$%& #s{{+Wi50eUMRuWg.sND9H !KKM ADAq!(('CA;)?@A #$$g^X/N%OP3 01#GlIs||S]]E= .=:  c	 #.y#GL#'L#GiLL#"4"4i: .=: LL&), ) sNGCT4RSHLL(C0 8;=# 
 36R# 	 $$WcALL&)
c ,u ms   5W	=WWc                    t        j                  | d|       | j                  t        |      |j                  |j
                  |j                  |j                  f|       t        j                  | d       y )NzPr: %sr^   z# Pr)r   r   r   rZ   fgetfsetfdelr   r   s     rA   save_propertyrM  =  sY     LL(C(S	CHHchh#++#N  !
LL&!r@   c                    t        j                  | d|       |j                  }| j                  t	        |      |f|       t        j                  | d       y )NzCm: %sr^   z# Cm)r   r   r  r   rZ   )r   r_   	orig_funcs      rA   save_classmethodrP  E  sH    
 LL(C(I S	I<S9
LL&!r@   c           	        t        ||       syt        |j                        t        urt	        |dd       }|t
        j                  }t        |d      }d}	 t        ||j                        \  }}t	        |dd       |u rd}|rHt        j                  | d|       | j                  t        df|       t        j                  | d       y t        j                  | d	|       t	        | d
d       }t	        | dd       }t	        | dd       }	t	        | dt
              }
g }|r ddlm}  ||dd      }d|j                   i}nx|j"                  }|	r(||
j$                  u rt	        | d|
      j$                  }|}nB|2|j                   &t	        t        |j                   d      dd       |u r|}nd|j                   i}|l||urh|j'                         D ch c]  }t)        |       }}|D ]$  }||v s||   j+                  t,        ||ff        n |j+                  t,        ||ff       |j.                  }i }dD ]  }t	        ||d       }||||<    |j                  |j                  k7  r|j                  |d<   d|vs|j                   |d   k7  r|j                   |d<   |j$                  }t        |      t0        ur||d<   d }|r||f}t3        | t4        |j                  ||j                  |j6                  |f|f||       |rot9        t;        |j'                               d       }|rJ|rH|D ]C  }t<        |d|ff}	 |j?                  |        | j                  |  | jC                  tD               E t        j                  | d       y t        j                  | d|       t	        |dt	        |dd             }tG        jH                  | ||       t        j                  | d       y # t        $ r Y ow xY wc c}w # t@        $ r Y w xY w)NrF   Tr  Fr  zF3: %sr^   z# F3zF1: %sr   r   _main_modified_original_mainr   )
globalvars)r   builtinrG   r   r   )r   rJ  r   r   r5  r  z# F1zF2: %sr   z# F2)%rG  rZ   r  r#   r   rx   rG   r  r@  r   r  r   r   r   detectrT  rF   rK  r   r  rQ  r  rK  r  r   r[  rT  r  r  rV  r;  remover  r  r    r   r   )r   r_   r   r  _pypy_builtinrE  rF  r   r   rR  rS  rY  rT  
globs_copyglobsgglob_idsstack_elementclosure
state_dict	fattrnamefattrr   topmost_postproccellpossible_postprocr   s                              rA   save_functionre  X  s%   C)X- "#|T:K")22#Kd;F!M(1A1ABq5*d3s:$(M Wh4##GeZ-@c#JWf-Wh,7J5G[$7	 *:DA *:KH*#CtDJ  0EJ *0G0G"G$Wg~FOO
"'CNN,FN3>>4@*dSWaa"#S^^4!e:&= (2'8'8':;!1;H;!* G H,m,33Y
@S4TUG
 $$i%1D%EF//
I 	.ICD1E (-
9%	. s||+),)9)9J~&U"cnnj8I&I'*~~J|$;d"%*Jz"E:%EG&6eS\\33C3C9
 & -	9 #D)9)9);$<dC+# 
'D)04#2N(O%!(//0AB
 (G''):;MM#&
' 	Wf% 	 	Wh,sNGCT,JK  #D9Wf%
C " X <N & ! !s*   *O% O59O:%	O21O2:	PPs   dill._dill._testcapsulec                    t        j                  | d|       t        |      }t        ||      }t	        |      }t        |      }| j                  t        ||||f|       t        j                  | d       y )NzCap: %sr^   z# Cap)r   r   _PyCapsule_GetName_PyCapsule_GetPointer_PyCapsule_GetContext_PyCapsule_GetDestructorr   r/  )r   r_   r   r(  r)  r*  s         rA   save_capsulerk    si    Wi-!#&'T2',-c2
OgtWj-QWZ[Wg&r@   PyCapsuleType_HAS_DEFAULT_FACTORY_CLASSc                    t        j                  | d|       | j                  t        dz          t        j                  | d       y )Nz	DcHDF: %ss!   dataclasses
_HAS_DEFAULT_FACTORY
z# DcHDFr   r   r  r   r   s     rA   *save_dataclasses_HAS_DEFAULT_FACTORY_CLASSrp    s2    Wk3/fEEFWi(r@   MISSINGc                    t        j                  | d|       | j                  t        dz          t        j                  | d       y )NzDcM: %ss   dataclasses
MISSING
z# DcMro  r   s     rA   save_dataclasses_MISSING_TYPErs    s2    Wi-f889Wg&r@   KW_ONLYc                    t        j                  | d|       | j                  t        dz          t        j                  | d       y )Nz	DcKWO: %ss   dataclasses
KW_ONLY
z# DcKWOro  r   s     rA   save_dataclasses_KW_ONLY_TYPErv    s2    Wk3/f889Wi(r@   _FIELD_BASEc                    t        j                  | d|       | j                  t        dz   |j                  j                         z   dz          t        j                  | d       y )NzDcFB: %ss   dataclasses
   
z# DcFB)r   r   r  r   r   r  r   s     rA   save_dataclasses_FIELD_BASErz    sG    Wj#.f//#((//2CCeKLWh'r@   c                Z   |rt         f}nt        t        t        t        t
        f}	 t        | fi |}	 t        |j                         | j                         k(        }t        |d      r|j                         j                         }|ry|sDt        |      t        |       k(  }|r|S t!        t        |            t!        t        |             k(  S y# t        t        f$ r> t        j                  d       || k(  }t        j                  rt        j                  d= Y w xY w# |$ r Y yw xY w)a  
    Quick check if object pickles with dill.

    If *exact=True* then an equality test is done to check if the reconstructed
    object matches the original object.

    If *safe=True* then any exception will raised in copy signal that the
    object is not picklable, otherwise only pickling errors will be trapped.

    Additional keyword arguments are as :func:`dumps` and :func:`loads`.
    r   r   toarrayTF)r  r  AssertionErrorNotImplementedErrorr   r   r   boolrM   r  rR  rp  filtersr  r|  rZ   r  )r_   exactr  r   
exceptionspikresults          rA   r   r     s
    9,Z1DmUde
3$	9#'')swwy01F
 69%^^%))+F$#Y$s)+Ff}S	?d49o55 	* 	9##H-CZFX%5%5a%8	9  sA   D" *C ,D" D" ((D" A
DD" DD" "D*)D*c                   |j                  dd      }|j                  dd      }|ddl}|j                  }t        |t               ddl}d}	 t        | g|i |}d}|r|rt        d       	 |dt        |      d	}	|j                  |	j                  dd
            sdnd}	|rt        |	       y# |r|rt        d       w w w xY w)a$  
    Check pickling of an object across another process.

    *python* is the path to the python interpreter (defaults to sys.executable)

    Set *verbose=True* to print the unpickled object in the other process.

    Additional keyword arguments are as :func:`dumps` and :func:`loads`.
    verboseFpythonNr   TzDUMP FAILEDz" -c import dill; print(dill.loads(z))rp   SUCCESSzLOAD FAILED)rw   r  
executabler  r   
subprocessr   printr  callr2  )
r_   r|   r   r  r  r  r  failr  r   s
             rA   r   r   D  s     hhy%(GXXh%F~vsD!S(4(4(G-  9?T

KC%??399T!+<=)=Cc

 G-  4s   B3 3Cc                    |du st        | j                  d      sd| j                  v S t        | j                  j	                         v S )z#check the dill-ness of your picklerFmror   )r  r  rF   r	   r  )r   rC  s     rA   rD  rD  n  sC    ~WW%6%6>++++g''++---r@   c                     t         j                  j                         D ]  \  } }	 |t        j                  | <    y# t        $ r t        j                  t        d|        Y Cw xY w)z1extend pickle with all of dill's registered typeszskip: %sN)r	   r   r  r   r  r   r   r   r
  s     rA   _extendr  t  sa     ""((* 1$	1'+L!!!$1
   	1LL*a0	1s   <$A#"A#)NNNNrk   r   )NNNNN)F)FF(N  r   
__future__r   __all__rF   rR  r   r   r   _tracelogry   r  r  r  
hexversionOLD38r  OLD310ro  r  rx   r   r   r   r
   r   r   r    _threadr!   r"   r  r  r#   r$   r%   r&   r'   r(   r)   r*   
memoryview
BufferTyperZ   r  r@  r?  r>  r=  r  	SliceTypeTypeTyper"  
XRangeTyper+   r3  r,   r   r   r   r   r   r   r   r?  r  r,  dataclassesr  r-   r.   r/   r  r0   enumr1   r2   	functoolsr3   operatorr4   r5   r   importlib.machinery	importlibr  	machineryr  ctypes
HAS_CTYPESr  r  r  r<   r>   r=   
PathFinder	find_specrB   rS   rW   r[   rc   rd   re   rf   rg   rh   r  r%  r   r!  r  r  r  r"  r#  r$  rt   LRUCacheTyper  r   r&  r*  r'  r(  r)  _pyiorv   r  r.  r+  r,  r-  ior   r   r6  r7  r   
SocketTypemultiprocessing.reductionr   r  __IPYTHON__
IS_IPYTHONr5  r  	NameErrorr   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   Warningr   r   r   r	   r   r  r   r  r  r   rC  r   rm   _incedental_reverse_typemapr  r  r  r8  rV  r  winregr:  set_incedental_typesr:  rA  rD  rG  rT  rV  ALL_CODE_PARAMSversionnew_attrparamsr  r2  r  intersectionr  r  r  r  r  r  r  r  r  r  r  r  r  __dMAPPING_PROXY_TRICKr  r  r   r  r  r  r   r   r  r/  r5  r7  r  r@  rG  rK  rP  r[  rs  ru  rz  r  
__dicttype__obj
__funcname
__savefuncr   __tviewr  _GenericAliasr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r!  r0  r   rh  abstractpropertyrM  staticmethodclassmethodabstractstaticmethodabstractclassmethodrP  re  r6   PyCapsule_Newr&  c_void_pc_char_pargtypes	py_objectrestypePyCapsule_GetPointerrh  PyCapsule_GetDestructorrj  PyCapsule_GetContextri  PyCapsule_GetNamerg  PyCapsule_IsValidr%  c_boolPyCapsule_SetContextr'  PyCapsule_SetDestructor_PyCapsule_SetDestructorPyCapsule_SetName_PyCapsule_SetNamePyCapsule_SetPointer_PyCapsule_SetPointercastcreate_string_buffer_testcapsulerl  rk  addrm  rp  rq  rs  rt  rv  rw  rz  r   r   rD  r  r?   r@   rA   <module>r     s{  ( # 
  % # 	 
		)	#	)	#
..9
$NNY&  H   &< < <
	H~.) 	
 > b b   	 
  ? ? #   + 9..AAB J&+..G 
	))+55g>344NJN 	_, 3%% 
 &*66q9:73Q'(y)+./	jm$j,-< ,%L +r2"5B7 "426 "426 b#%cReD("5I(%H(%H # 	J ' EJH8  v ,  #
  
;89&0t 	G[ 		m] 		 	S-l S-j	 	@ $,,113 
I" )*    $$	  >>IH  -,,,&000*
   " "O299;'"((*%!&&(^AHHJ'1779o$  .6
+/8,0:-	 >>Y">B4UY\_[aHbCc>d :;	.4oo
+   3 43::<= <#3#9#9#;<<!" =A<@ +! +!Z "1 GXvx"lln	
 K --XZZx)EN ( (  /0  
 -"47Q"QR  	}%*
)< C""
 =AgFXFXhl ,r 
(8 8tC 
$ 4 %
$
2  3J LE"0"< 3
J1wuj134'***(2GW%33 z7J 
)  
&

    
(  
) 6 
(	
	
	
	/     
 "#"#"#  ! $ $ $ i	 	 j	 	 #l   
)  j   j  "#"#"##$'( ) % $ $ $
 "#"# $ $ 
(* *X m  m  
)  
*	,	
   *F  
-  
)	
  &] 
*+ +b2* 
(x xt 
(	#

"   " 
,	+	#
"
"#	#
!
!"" # $  " 
,o ob '&+.%%33N%QN#--N",,AA&,&6&6%H"$*OO!%//GG)/)9)9(;%'-$",,AA&,&6&6%8"$*OO!));;#)#3#3"5!'));;#)#3#3V__"E!'",,AA&,&6&6%H"%//GG)/)9)96??(K%));;#)#3#3V__"E",,AA&,&6&6%H"!NFOO4###$>?L
 &Mm' ' 4A0(5_%-(L ;45k445) 6)
 ;	"d;&&'(' )'
 ;	"d;&&'() ))
 ;&k%%&( '(#J'T. 	)XGA  JG  		Z  L0  b]aaa,a/CFZb  JJ%h%	N  		d
    s   *s& 7s6 t 2t t$ 8u
 7u &	s32s36s?>s?ttt! t!$u+t43u4t>;u=t>>uu
uuu! u!