<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]p                 @   s  d  d l  m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d  d l	 Z	 d  d l	 m
 Z
 d  d l m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d d	 d
 d d d d d d g	 Z e e f Z d Z d d d d d d d g Z d Z d Z Gd d   d e  Z Gd d	   d	 e  Z Gd d
   d
 e  Z Gd d   d e  Z y d  d l m  Z  Wn e! k
 rd Z  Yn Xd  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. Z0 d/ Z1 d0 Z2 d1 Z3 d2 Z4 d3 Z5 d4 Z6 d5 Z7 d6 Z8 d7 Z9 d8 Z: d9 Z; d: Z< d; Z= d< Z> d= Z? d> Z@ d? ZA d@ ZB dA ZC dB ZD dC ZE dD ZF dE ZG dF ZH dG ZI dH ZJ dI ZK dJ ZL dK ZM dL ZN dM ZO dN ZP dO ZQ dP ZR dQ ZS dR ZT dS ZU dT ZV dU ZW dV ZX eH eR eS eT g ZY dW ZZ dX Z[ dY Z\ dZ Z] d[ Z^ d\ Z_ d] Z` d^ Za d_ Zb d` Zc da Zd db Ze e jf dc dd   eg   D  Gde df   df  Zh Gdg dh   dh  Zi di dj   Zj dk dl   Zk dm dn   Zl do dp   Zm Gdq dr   dr  Zn Gds dt   dt  Zo d du dv dw dx Zp d du dv dy dz Zq du dv d{ d| d} d~ d d  Zr du dv d{ d| d} d~ d d  Zs yD d  d lt m Z m Z m Z mu Zu mv Zv mw Zw mx Zx my Zy mz Zz WnB e! k
 ren eo f \ Zu Zv ep eq er es f \ Zw Zx Zy Zz Yn Xd d   Z{ e| d k rd  d l} Z} e} j~ d d  Z e j d d e} j d  d d d d e j d d d d d d e j d d d d d e j   Z e j rme{   nP e j re j   n9 d  d l Z x* e j D] Z ey e  Z e j e  qWd S)    )FunctionType)dispatch_table)_extension_registry_inverted_registry_extension_cache)isliceN)maxsize)packunpackPickleErrorPicklingErrorUnpicklingErrorPickler	Unpicklerdumpdumpsloadloadsz4.0z1.0z1.1z1.2z1.3z2.0z3.0      c               @   s   e  Z d  Z d S)r   N)__name__
__module____qualname__ r   r   +/opt/alt/python35/lib64/python3.5/pickle.pyr   ?   s   c               @   s   e  Z d  Z d S)r   N)r   r   r   r   r   r   r   r   C   s   c               @   s   e  Z d  Z d S)r   N)r   r   r   r   r   r   r   r   J   s   	c               @   s   e  Z d  Z d d   Z d S)_Stopc             C   s   | |  _  d  S)N)value)selfr   r   r   r   __init__X   s    z_Stop.__init__N)r   r   r   r   r   r   r   r   r   W   s   r   )PyStringMap   (   .   0   1   2   F   I   J   K   L   M   N   P   Q   R   S   T   U   V   X   a   b   c   d   }   e   g   h   i   j   l   ]   o   p   q   r   s   t   )   u   Gs   I01
s   I00
s   s   s   s   s   s   s   s   s   s   s   s      B   Cs   s   s   s   s   s   s   s   s   s   c             C   s(   g  |  ] } t  j d  |  r |  q S)z[A-Z][A-Z0-9_]+$)rematch).0xr   r   r   
<listcomp>   s   	 rO   c               @   sU   e  Z d  Z d Z d d   Z d d   Z d d   Z d	 d
 d  Z d d   Z d S)_Framer@   i   c             C   s   | |  _  d  |  _ d  S)N)
file_writecurrent_frame)r   rR   r   r   r   r      s    	z_Framer.__init__c             C   s   t  j   |  _ d  S)N)ioBytesIOrS   )r   r   r   r   start_framing   s    z_Framer.start_framingc             C   s;   |  j  r7 |  j  j   d k r7 |  j d d  d  |  _  d  S)Nr   forceT)rS   tellcommit_frame)r   r   r   r   end_framing   s    z_Framer.end_framingFc             C   s   |  j  r |  j  } | j   |  j k s- | r | j   C } t |  } |  j } | t  | t d |   | |  Wd  QRX| j d  | j	   d  S)Nz<Qr   )
rS   rX   _FRAME_SIZE_TARGET	getbufferlenrR   FRAMEr	   seektruncate)r   rW   fdatanwriter   r   r   rY      s    			
z_Framer.commit_framec             C   s*   |  j  r |  j  j |  S|  j |  Sd  S)N)rS   rd   rR   )r   rb   r   r   r   rd      s    	z_Framer.writeNi   )	r   r   r   r[   r   rV   rZ   rY   rd   r   r   r   r   rP      s   rP   c               @   sC   e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d S)
	_UnframerNc             C   s   | |  _  | |  _ d  |  _ d  S)N)	file_readfile_readlinerS   )r   rf   rg   	file_tellr   r   r   r      s    		z_Unframer.__init__c             C   sw   |  j  rf |  j  j |  } | rD | d k rD d  |  _  |  j |  St |  | k  rb t d   | S|  j |  Sd  S)Nr   z$pickle exhausted before end of frame)rS   readrf   r]   r   )r   rc   rb   r   r   r   ri      s    			z_Unframer.readc             C   s_   |  j  rQ |  j  j   } | s1 d  |  _  |  j   S| d d k rM t d   | S|  j   Sd  S)N   s   
r   z$pickle exhausted before end of frame
   )rS   readlinerg   r   )r   rb   r   r   r   rm      s    		
	z_Unframer.readlinec             C   sI   |  j  r* |  j  j   d k r* t d   t j |  j |   |  _  d  S)N    z4beginning of a new frame before end of current frame)rS   ri   r   rT   rU   rf   )r   
frame_sizer   r   r   
load_frame   s    	z_Unframer.load_frame)r   r   r   r   ri   rm   rp   r   r   r   r   re      s   re   c             C   s   x | j  d  D]p } | d k r: t d j | |     y |  } t |  |  }  Wq t k
 r t d j | |     Yq Xq W|  | f S)N.z<locals>z&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})splitAttributeErrorformatgetattr)objnamesubpathparentr   r   r   _getattribute  s    		rz   c             C   s   t  |  d d   } | d  k	 r" | Sxt t t j j    D]] \ } } | d k s8 | d  k r_ q8 y! t | |  d |  k r | SWq8 t k
 r Yq8 Xq8 Wd S)Nr   __main__r   )ru   listsysmodulesitemsrz   rs   )rv   rw   module_namemoduler   r   r   whichmodule  s    "	r   c             C   s   |  d k r d S|  j    d ?d } |  j | d d d d } |  d k  r | d k r | d d	 k r | d d @d k r | d  d  } | S)Nr   rn   r   rj   	byteorderlittlesignedT         rk   rk   )
bit_lengthto_bytes)rN   nbytesresultr   r   r   encode_long#  s    $r   c             C   s   t  j |  d d d d S)Nr   r   r   T)int
from_bytes)rb   r   r   r   decode_longA  s    r   c               @   s  e  Z d  Z d d d d d Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z d d d  Z	 d d   Z
 d d   Z d d d d d d  Z i  Z d d   Z e e e d  <d d   Z e e e <d d   Z e e e <d d   Z e e e <d  d!   Z e e e <d" d#   Z e e e <d$ d%   Z e e e <d& d'   Z e e e <d( Z d) d*   Z d+ d,   Z  e  e e! <e" d k	 re  e e" <d- d.   Z# d/ d0   Z$ e$ e e% <d1 d2   Z& e& e e' <d d3 d4  Z( d5 d6   Z) e( e e* <e) e e <d S)7_PicklerNfix_importsTc            C   s   | d  k r t  } | d k  r' t } n, d | k o> t k n sS t d t   y | j |  _ Wn t k
 r t d   Yn Xt |  j  |  _ |  j j |  _ i  |  _	 t
 |  |  _ | d k |  _ d |  _ | o | d k  |  _ d  S)Nr   zpickle protocol must be <= %dz"file must have a 'write' attributerj   r   )DEFAULT_PROTOCOLHIGHEST_PROTOCOL
ValueErrorrd   _file_writers   	TypeErrorrP   framermemor   protobinfastr   )r   fileprotocolr   r   r   r   r   Z  s"    			z_Pickler.__init__c             C   s   |  j  j   d  S)N)r   clear)r   r   r   r   
clear_memo  s    z_Pickler.clear_memoc             C   s   t  |  d  s( t d |  j j f   |  j d k rT |  j t t d |  j   |  j d k rp |  j j	   |  j
 |  |  j t  |  j j   d  S)Nr   z2Pickler.__init__() was not called by %s.__init__()r   z<Br   )hasattrr   	__class__r   r   rd   PROTOr	   r   rV   saveSTOPrZ   )r   rv   r   r   r   r     s    z_Pickler.dumpc             C   sO   |  j  r d  St |  j  } |  j |  j |   | | f |  j t |  <d  S)N)r   r]   r   rd   putid)r   rv   idxr   r   r   memoize  s
    	z_Pickler.memoizec             C   sl   |  j  d k r t S|  j rM | d k  r9 t t d |  St t d |  Sn t t |  j d  d Sd  S)Nr      z<Bz<Iasciis   
)	r   MEMOIZEr   BINPUTr	   LONG_BINPUTPUTreprencode)r   r   r   r   r   r     s    	z_Pickler.putc             C   sR   |  j  r7 | d k  r& t t d |  St t d |  St t |  j d  d S)Nr   z<Bz<Ir   s   
)r   BINGETr	   LONG_BINGETGETr   r   )r   ir   r   r   get  s
    	z_Pickler.getc             C   s;  |  j  j   |  j |  } | d  k	 r? | r? |  j |  d  S|  j j t |   } | d  k	 r |  j |  j | d   d  St |  } |  j	 j |  } | d  k	 r | |  |  d  St
 |  d t  j |  } | d  k	 r | |  } n y t | t  }	 Wn t k
 rd }	 Yn X|	 r7|  j |  d  St
 | d d   } | d  k	 rg| |  j  } nC t
 | d d   } | d  k	 r|   } n t d | j | f   t | t  r|  j | |  d  St | t  st d |   t |  }
 d |
 k od	 k n s$t d
 |   |  j | d |  d  S)Nr   r   F__reduce_ex__
__reduce__zCan't pickle %r object: %rz%s must return string or tupler      z3Tuple returned by %s must have two to five elementsrv   )r   rY   persistent_id	save_persr   r   r   rd   typedispatchru   r   
issubclassr   save_globalr   r   r   
isinstancestrtupler]   save_reduce)r   rv   save_persistent_idpidrN   tra   reducervissclr   r   r   r     sT    
z_Pickler.savec             C   s   d  S)Nr   )r   rv   r   r   r   r   
  s    z_Pickler.persistent_idc             C   sy   |  j  r, |  j | d d |  j t  nI y( |  j t t |  j d  d  Wn t k
 rt t d   Yn Xd  S)Nr   Fr   s   
z2persistent IDs in protocol 0 must be ASCII strings)	r   r   rd   	BINPERSIDPERSIDr   r   UnicodeEncodeErrorr   )r   r   r   r   r   r     s    	(z_Pickler.save_persc             C   se  t  | t  s t d   t |  s3 t d   |  j } |  j } t | d d  }	 |  j d k r |	 d k r | \ }
 } } t |
 d  s t d j	 |	    | d  k	 r |
 | j
 k	 r t d	 j	 |	    | |
  | |  | |  | t  n |  j d
 k r|	 d k r| d }
 t |
 d  s@t d   | d  k	 rg|
 | j
 k	 rgt d   | d d   } | |
  | |  | t  n | |  | |  | t  | d  k	 rt |  |  j k r| t |  j |  j t |  d   n |  j |  | d  k	 r(|  j |  | d  k	 rA|  j |  | d  k	 ra| |  | t  d  S)Nz'args from save_reduce() must be a tuplez(func from save_reduce() must be callabler    r   __newobj_ex____new__z#args[0] from {} args has no __new__z(args[0] from {} args has the wrong classr   
__newobj__r   z+args[0] from __newobj__ args has no __new__z0args[0] from __newobj__ args has the wrong classrj   )r   r   r   callabler   rd   ru   r   r   rt   r   	NEWOBJ_EXNEWOBJREDUCEr   r   POPr   r   _batch_appends_batch_setitemsBUILD)r   funcargsstate	listitems	dictitemsrv   r   rd   	func_nameclskwargsr   r   r   r     sZ    				



		




+
z_Pickler.save_reducec             C   s   |  j  t  d  S)N)rd   NONE)r   rv   r   r   r   	save_nonez  s    z_Pickler.save_nonec             C   sH   |  j  d k r+ |  j | r! t n t  n |  j | r= t n t  d  S)Nr   )r   rd   NEWTRUENEWFALSETRUEFALSE)r   rv   r   r   r   	save_bool~  s    z_Pickler.save_boolc             C   sA  |  j  r | d k ri | d k r? |  j t t d |   d  S| d k ri |  j t t d |   d  Sd | k o d k n r |  j t t d |   d  S|  j d	 k rt |  } t |  } | d
 k  r |  j t	 t d |  |  n |  j t
 t d |  |  d  S|  j t t |  j d  d  d  S)Nr   r   z<Bi  z<Hl        iz<ir   r   r   s   L
i   )r   rd   BININT1r	   BININT2BININTr   r   r]   LONG1LONG4LONGr   r   )r   rv   encodedrc   r   r   r   	save_long  s&    	!z_Pickler.save_longc             C   sN   |  j  r& |  j t t d |   n$ |  j t t |  j d  d  d  S)Nz>dr   s   
)r   rd   BINFLOATr	   FLOATr   r   )r   rv   r   r   r   
save_float  s    	z_Pickler.save_floatc             C   s   |  j  d k  rZ | s. |  j t f  d | n( |  j t j t | d  d f d | d  St |  } | d k r |  j t t	 d |  |  nZ | d k r |  j  d k r |  j t
 t	 d |  |  n |  j t t	 d	 |  |  |  j |  d  S)
Nr   rv   latin1r   z<Bl    r   z<Qz<I)r   r   bytescodecsr   r   r]   rd   SHORT_BINBYTESr	   	BINBYTES8BINBYTESr   )r   rv   rc   r   r   r   
save_bytes  s    !!z_Pickler.save_bytesc             C   s  |  j  r | j d d  } t |  } | d k rc |  j d k rc |  j t t d |  |  q| d k r |  j d k r |  j t t d |  |  q|  j t t d |  |  nB | j	 d	 d
  } | j	 d d  } |  j t
 | j d  d  |  j |  d  S)Nzutf-8surrogatepassr   r   z<Bl    z<Qz<I\z\u005c
z\u000azraw-unicode-escapes   
)r   r   r]   r   rd   SHORT_BINUNICODEr	   BINUNICODE8
BINUNICODEreplaceUNICODEr   )r   rv   r   rc   r   r   r   save_str  s    	!!!z_Pickler.save_strc             C   s  | s4 |  j  r |  j t  n |  j t t  d  St |  } |  j } |  j } | d k r |  j d k r x | D] } | |  qt Wt	 |  | k r |  j
 | t	 |  d  } |  j t | |  n |  j t |  |  j |  d  S|  j } | t  x | D] } | |  qWt	 |  | k r|  j
 | t	 |  d  } |  j  rh| t |  n | t | d |  d  S| t  |  j |  d  S)Nr   r   r   rj   )r   rd   EMPTY_TUPLEMARKTUPLEr]   r   r   r   r   r   r   _tuplesize2coder   POP_MARK)r   rv   rc   r   r   elementr   rd   r   r   r   
save_tuple  s:    				
	
z_Pickler.save_tuplec             C   sH   |  j  r |  j t  n |  j t t  |  j |  |  j |  d  S)N)r   rd   
EMPTY_LISTr  LISTr   r   )r   rv   r   r   r   	save_list  s
    	z_Pickler.save_listi  c             C   s   |  j  } |  j } |  j sD x" | D] } | |  | t  q" Wd  St |  } x t t | |  j   } t |  } | d k r | t	  x | D] } | |  q W| t
  n | r | | d  | t  | |  j k  rS d  SqS Wd  S)Nrj   r   )r   rd   r   APPENDiterr|   r   
_BATCHSIZEr]   r  APPENDS)r   r   r   rd   rN   ittmprc   r   r   r   r     s*    			


z_Pickler._batch_appendsc             C   sN   |  j  r |  j t  n |  j t t  |  j |  |  j | j    d  S)N)r   rd   
EMPTY_DICTr  DICTr   r   r   )r   rv   r   r   r   	save_dict'  s
    	z_Pickler.save_dictc       	      C   s$  |  j  } |  j } |  j sT x2 | D]* \ } } | |  | |  | t  q" Wd  St |  } x t t | |  j   } t |  } | d k r | t	  x( | D]  \ } } | |  | |  q W| t
  n4 | r	| d \ } } | |  | |  | t  | |  j k  rc d  Sqc Wd  S)Nrj   r   )r   rd   r   SETITEMr  r|   r   r  r]   r  SETITEMS)	r   r   r   rd   kvr  r  rc   r   r   r   r   4  s2    			






z_Pickler._batch_setitemsc             C   s   |  j  } |  j } |  j d k  rD |  j t t |  f d | d  S| t  |  j |  t |  } xv t t	 | |  j
   } t |  } | d k r | t  x | D] } | |  q W| t  | |  j
 k  rj d  Sqj Wd  S)Nr   rv   r   )r   rd   r   r   setr|   	EMPTY_SETr   r  r   r  r]   r  ADDITEMS)r   rv   r   rd   r  batchrc   itemr   r   r   save_setS  s$    		


z_Pickler.save_setc             C   s   |  j  } |  j } |  j d k  rD |  j t t |  f d | d  S| t  x | D] } | |  qU Wt |  |  j k r | t	 |  j
 |  j t |  d   d  S| t  |  j |  d  S)Nr   rv   r   )r   rd   r   r   	frozensetr|   r  r   r   r	  r   	FROZENSETr   )r   rv   r   rd   r   r   r   r   save_frozensetk  s    		
(
z_Pickler.save_frozensetc             C   s  |  j  } |  j } | d  k r0 t | d d   } | d  k rE | j } t | |  } y6 t | d d t j | } t | |  \ } } Wn4 t	 t
 t f k
 r t d | | | f   Yn& X| | k	 r t d | | | f   |  j d k rwt j | | f  }	 |	 rw|	 d k r6| t t d |	   n= |	 d	 k r\| t t d
 |	   n | t t d |	   d  S| j d  d }
 | | k r|
 } |  j d k r|  j |  |  j |  | t  n | | k	 r|  j t | |
 f  n |  j d k r5| t t | d  d t | d  d  n |  j rt j } t j } | | f | k r{| | | f \ } } n | | k r| | } y0 | t t | d  d t | d  d  Wn. t k
 rt d | | |  j f   Yn X|  j |  d  S)Nr   levelr   z(Can't pickle %r: it's not found as %s.%sz2Can't pickle %r: it's not the same object as %s.%sr   r   z<Bi  z<Hz<irq   r   r   zutf-8s   
r   z?can't pickle global identifier '%s.%s' using pickle protocol %i) rd   r   ru   r   r   
__import__r}   r~   rz   ImportErrorKeyErrorrs   r   r   r   r   EXT1r	   EXT2EXT4
rpartitionr   STACK_GLOBALr   GLOBALr   r   _compat_pickleREVERSE_NAME_MAPPINGREVERSE_IMPORT_MAPPINGr   r   )r   rv   rw   rd   r   r   r   obj2ry   codelastnamer_name_mappingr_import_mappingr   r   r   r     sn    			,			
-z_Pickler.save_globalc             C   s   | t  d   k r( |  j t  d d | S| t  t  k rS |  j t  t f d | S| t  d  k r{ |  j t  d d | S|  j |  S)Nrv   .)N).)r   r   NotImplementedr   )r   rv   r   r   r   	save_type  s    z_Pickler.save_type)+r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   boolr   r   r   floatr   r   r  r   r  r   r  r|   r  r   r  dictr   r   r!  r  r$  r"  r   r8  r   r   r   r   r   r   X  sV   )
	B]




1
	
	



B	
r   c               @   s"  e  Z d  Z d d d d d d d d  Z d	 d
   Z d d   Z d d   Z i  Z d d   Z e e e	 d <d d   Z
 e
 e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d  d!   Z e e e d <d" d#   Z e e e d <d$ d%   Z e e e d <d& d'   Z e e e d <d( d)   Z  e  e e! d <d* d+   Z" e" e e# d <d, d-   Z$ e$ e e% d <d. d/   Z& e& e e' d <d0 d1   Z( d2 d3   Z) e) e e* d <d4 d5   Z+ e+ e e, d <d6 d7   Z- e- e e. d <d8 d9   Z/ e/ e e0 d <d: d;   Z1 e1 e e2 d <d< d=   Z3 e3 e e4 d <d> d?   Z5 e5 e e6 d <d@ dA   Z7 e7 e e8 d <dB dC   Z9 e9 e e: d <dD dE   Z; e; e e< d <dF dG   Z= e= e e> d <dH dI   Z? e? e e@ d <dJ dK   ZA eA e eB d <dL dM   ZC eC e eD d <dN dO   ZE eE e eF d <dP dQ   ZG eG e eH d <dR dS   ZI eI e eJ d <dT dU   ZK eK e eL d <dV dW   ZM eM e eN d <dX dY   ZO eO e eP d <dZ d[   ZQ eQ e eR d <d\ d]   ZS d^ d_   ZT eT e eU d <d` da   ZV eV e eW d <db dc   ZX eX e eY d <dd de   ZZ eZ e e[ d <df dg   Z\ e\ e e] d <dh di   Z^ e^ e e_ d <dj dk   Z` e` e ea d <dl dm   Zb eb e ec d <dn do   Zd ed e ee d <dp dq   Zf dr ds   Zg dt du   Zh eh e ei d <dv dw   Zj ej e ek d <dx dy   Zl el e em d <dz d{   Zn en e eo d <d| d}   Zp ep e eq d <d~ d   Zr er e es d <d d   Zt et e eu d <d d   Zv ev e ew d <d d   Zx ex e ey d <d d   Zz ez e e{ d <d d   Z| e| e e} d <d d   Z~ e~ e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d d   Z e e e d <d S)
_Unpicklerr   TencodingASCIIerrorsstrictc            C   sI   | j  |  _ | j |  _ i  |  _ | |  _ | |  _ d |  _ | |  _ d  S)Nr   )	rm   _file_readlineri   
_file_readr   r=  r?  r   r   )r   r   r   r=  r?  r   r   r   r     s    				z_Unpickler.__init__c             C   s  t  |  d  s( t d |  j j f   t |  j |  j  |  _ |  j j |  _ |  j j	 |  _	 t
   |  _ g  |  _ |  j j |  _ d |  _ |  j } |  j } y5 x. | d  } | s t  | | d |   q WWn, t k
 r } z | j SWYd  d  } ~ Xn Xd  S)NrB  z4Unpickler.__init__() was not called by %s.__init__()r   rj   )r   r   r   r   re   rB  rA  	_unframerri   rm   objectmarkstackappendr   r   EOFErrorr   r   )r   ri   r   keystopinstr   r   r   r     s(    				z_Unpickler.loadc             C   sG   |  j  } |  j } t |  d } x | | | k	 rB | d } q% W| S)Nrj   )rF  rE  r]   )r   rF  rE  r  r   r   r   marker  s    		 z_Unpickler.markerc             C   s   t  d   d  S)Nz%unsupported persistent id encountered)r   )r   r   r   r   r   persistent_load&  s    z_Unpickler.persistent_loadc             C   sL   |  j  d  d } d | k o* t k n s? t d |   | |  _ d  S)Nrj   r   zunsupported pickle protocol: %d)ri   r   r   r   )r   r   r   r   r   
load_proto+  s    z_Unpickler.load_protor   c             C   sN   t  d |  j d   \ } | t j k r: t d |   |  j j |  d  S)Nz<Q   zframe size > sys.maxsize: %d)r
   ri   r}   r   r   rC  rp   )r   ro   r   r   r   rp   2  s    z_Unpickler.load_framec             C   s^   y# |  j    d  d  j d  } Wn t k
 rC t d   Yn X|  j |  j |   d  S)Nrj   r   z2persistent IDs in protocol 0 must be ASCII stringsrk   )rm   decodeUnicodeDecodeErrorr   rG  rL  )r   r   r   r   r   load_persid9  s    #z_Unpickler.load_persidc             C   s)   |  j  j   } |  j |  j |   d  S)N)rF  poprG  rL  )r   r   r   r   r   load_binpersidB  s    z_Unpickler.load_binpersidc             C   s   |  j  d   d  S)N)rG  )r   r   r   r   	load_noneG  s    z_Unpickler.load_nonec             C   s   |  j  d  d  S)NF)rG  )r   r   r   r   
load_falseK  s    z_Unpickler.load_falsec             C   s   |  j  d  d  S)NT)rG  )r   r   r   r   	load_trueO  s    z_Unpickler.load_truec             C   sj   |  j    } | t d d   k r+ d } n. | t d d   k rJ d } n t | d  } |  j |  d  S)Nrj   FTr   )rm   r   r   r   rG  )r   rb   valr   r   r   load_intS  s    		z_Unpickler.load_intc             C   s'   |  j  t d |  j d   d  d  S)Nz<ir   r   )rG  r
   ri   )r   r   r   r   load_binint^  s    z_Unpickler.load_binintc             C   s   |  j  |  j d  d  d  S)Nrj   r   )rG  ri   )r   r   r   r   load_binint1b  s    z_Unpickler.load_binint1c             C   s'   |  j  t d |  j d   d  d  S)Nz<Hr   r   )rG  r
   ri   )r   r   r   r   load_binint2f  s    z_Unpickler.load_binint2c             C   sV   |  j    d  d  } | r< | d d k r< | d  d  } |  j t | d   d  S)Nrj   r)   r   rk   rk   L   rk   )rm   rG  r   )r   rW  r   r   r   	load_longj  s    z_Unpickler.load_longc             C   s9   |  j  d  d } |  j  |  } |  j t |   d  S)Nrj   r   )ri   rG  r   )r   rc   rb   r   r   r   
load_long1q  s    z_Unpickler.load_long1c             C   sY   t  d |  j d   \ } | d k  r3 t d   |  j |  } |  j t |   d  S)Nz<ir   r   z#LONG pickle has negative byte count)r
   ri   r   rG  r   )r   rc   rb   r   r   r   
load_long4w  s
    z_Unpickler.load_long4c             C   s'   |  j  t |  j   d  d    d  S)Nrj   rk   )rG  r:  rm   )r   r   r   r   
load_float  s    z_Unpickler.load_floatc             C   s'   |  j  t d |  j d   d  d  S)Nz>drN  r   )rG  r
   ri   )r   r   r   r   load_binfloat  s    z_Unpickler.load_binfloatc             C   s-   |  j  d k r | S| j |  j  |  j  Sd  S)Nr   )r=  rO  r?  )r   r   r   r   r   _decode_string  s    z_Unpickler._decode_stringc             C   s   |  j    d  d  } t |  d k r_ | d | d k r_ | d d k r_ | d d  } n t d   |  j |  j t j |  d   d  S)	Nrj   r   r   s   "'z)the STRING opcode argument must be quotedrk   rk   rk   )rm   r]   r   rG  rb  r   escape_decode)r   rb   r   r   r   load_string  s
    6z_Unpickler.load_stringc             C   s\   t  d |  j d   \ } | d k  r3 t d   |  j |  } |  j |  j |   d  S)Nz<ir   r   z(BINSTRING pickle has negative byte count)r
   ri   r   rG  rb  )r   r]   rb   r   r   r   load_binstring  s
    z_Unpickler.load_binstringc             C   sQ   t  d |  j d   \ } | t k r7 t d t   |  j |  j |   d  S)Nz<Ir   z2BINBYTES exceeds system's maximum size of %d bytes)r
   ri   r   r   rG  )r   r]   r   r   r   load_binbytes  s
    
z_Unpickler.load_binbytesc             C   s*   |  j  t |  j   d  d  d   d  S)Nrj   zraw-unicode-escaperk   )rG  r   rm   )r   r   r   r   load_unicode  s    z_Unpickler.load_unicodec             C   s]   t  d |  j d   \ } | t k r7 t d t   |  j t |  j |  d d   d  S)Nz<Ir   z4BINUNICODE exceeds system's maximum size of %d byteszutf-8r   )r
   ri   r   r   rG  r   )r   r]   r   r   r   load_binunicode  s
    
z_Unpickler.load_binunicodec             C   s]   t  d |  j d   \ } | t k r7 t d t   |  j t |  j |  d d   d  S)Nz<QrN  z5BINUNICODE8 exceeds system's maximum size of %d byteszutf-8r   )r
   ri   r   r   rG  r   )r   r]   r   r   r   load_binunicode8  s
    
z_Unpickler.load_binunicode8c             C   sQ   t  d |  j d   \ } | t k r7 t d t   |  j |  j |   d  S)Nz<QrN  z3BINBYTES8 exceeds system's maximum size of %d bytes)r
   ri   r   r   rG  )r   r]   r   r   r   load_binbytes8  s
    
z_Unpickler.load_binbytes8c             C   s<   |  j  d  d } |  j  |  } |  j |  j |   d  S)Nrj   r   )ri   rG  rb  )r   r]   rb   r   r   r   load_short_binstring  s    z_Unpickler.load_short_binstringc             C   s-   |  j  d  d } |  j |  j  |   d  S)Nrj   r   )ri   rG  )r   r]   r   r   r   load_short_binbytes  s    z_Unpickler.load_short_binbytesc             C   s9   |  j  d  d } |  j t |  j  |  d d   d  S)Nrj   r   zutf-8r   )ri   rG  r   )r   r]   r   r   r   load_short_binunicode  s    z _Unpickler.load_short_binunicodec             C   s=   |  j    } t |  j | d d    g |  j | d   <d  S)Nrj   )rK  r   rF  )r   r  r   r   r   
load_tuple  s    z_Unpickler.load_tuplec             C   s   |  j  f   d  S)N)rG  )r   r   r   r   load_empty_tuple  s    z_Unpickler.load_empty_tuplec             C   s   |  j  d f |  j  d <d  S)Nrj   rk   rk   )rF  )r   r   r   r   load_tuple1  s    z_Unpickler.load_tuple1c             C   s.   |  j  d |  j  d f g |  j  d d   <d  S)Nr   rj   r   rk   r   )rF  )r   r   r   r   load_tuple2  s    z_Unpickler.load_tuple2c             C   s8   |  j  d |  j  d |  j  d f g |  j  d d   <d  S)Nr   r   rj   r   rk   rr  )rF  )r   r   r   r   load_tuple3  s    z_Unpickler.load_tuple3c             C   s   |  j  g   d  S)N)rG  )r   r   r   r   load_empty_list  s    z_Unpickler.load_empty_listc             C   s   |  j  i   d  S)N)rG  )r   r   r   r   load_empty_dictionary  s    z _Unpickler.load_empty_dictionaryc             C   s   |  j  t    d  S)N)rG  r  )r   r   r   r   load_empty_set  s    z_Unpickler.load_empty_setc             C   s=   |  j    } t |  j | d d    g |  j | d   <d  S)Nrj   )rK  r"  rF  )r   r  r   r   r   load_frozenset  s    z_Unpickler.load_frozensetc             C   s7   |  j    } |  j | d d   g |  j | d   <d  S)Nrj   )rK  rF  )r   r  r   r   r   	load_list  s    z_Unpickler.load_listc                sh   |  j    } |  j | d d       f d d   t d t    d  D } | g |  j | d   <d  S)Nrj   c                s%   i  |  ] }   | d    |  q S)rj   r   )rM   r   )r   r   r   
<dictcomp>  s   	z(_Unpickler.load_dict.<locals>.<dictcomp>r   r   )rK  rF  ranger]   )r   r  dr   )r   r   	load_dict  s
    z_Unpickler.load_dictc             C   s   t  |  j | d d    } |  j | d   =| sR t | t  sR t | d  r y | |   } Wq t k
 r } z1 t d | j t |  f t j	   d   WYd  d  } ~ Xq Xn | j
 |  } |  j |  d  S)Nrj   __getinitargs__zin constructor for %s: %sr   )r   rF  r   r   r   r   r   r   r}   exc_infor   rG  )r   klassr  r   r   errr   r   r   _instantiate  s    <z_Unpickler._instantiatec             C   sj   |  j    d  d  j d  } |  j    d  d  j d  } |  j | |  } |  j | |  j    d  S)Nrj   r   rk   rk   )rm   rO  
find_classr  rK  )r   r   rw   r  r   r   r   	load_inst  s    z_Unpickler.load_instc             C   s6   |  j    } |  j j | d  } |  j | |  d  S)Nrj   )rK  rF  rR  r  )r   r  r  r   r   r   load_obj%  s    z_Unpickler.load_objc             C   sA   |  j  j   } |  j  j   } | j | |  } |  j |  d  S)N)rF  rR  r   rG  )r   r   r   rv   r   r   r   load_newobj,  s    z_Unpickler.load_newobjc             C   sS   |  j  j   } |  j  j   } |  j  j   } | j | | |  } |  j |  d  S)N)rF  rR  r   rG  )r   r   r   r   rv   r   r   r   load_newobj_ex3  s
    z_Unpickler.load_newobj_exc             C   sa   |  j    d  d  j d  } |  j    d  d  j d  } |  j | |  } |  j |  d  S)Nrj   zutf-8rk   rk   )rm   rO  r  rG  )r   r   rw   r  r   r   r   load_global;  s    z_Unpickler.load_globalc             C   sk   |  j  j   } |  j  j   } t |  t k	 sB t |  t k	 rN t d   |  j |  j | |   d  S)NzSTACK_GLOBAL requires str)rF  rR  r   r   r   rG  r  )r   rw   r   r   r   r   load_stack_globalB  s
    $z_Unpickler.load_stack_globalc             C   s$   |  j  d  d } |  j |  d  S)Nrj   r   )ri   get_extension)r   r3  r   r   r   	load_ext1J  s    z_Unpickler.load_ext1c             C   s,   t  d |  j d   \ } |  j |  d  S)Nz<Hr   )r
   ri   r  )r   r3  r   r   r   	load_ext2O  s    z_Unpickler.load_ext2c             C   s,   t  d |  j d   \ } |  j |  d  S)Nz<ir   )r
   ri   r  )r   r3  r   r   r   	load_ext4T  s    z_Unpickler.load_ext4c             C   s   g  } t  j | |  } | | k	 r5 |  j |  d  St j |  } | sr | d k rb t d   t d |   |  j |   } | t  | <|  j |  d  S)Nr   zEXT specifies code <= 0zunregistered extension code %d)r   r   rG  r   r   r   r  )r   r3  nilrv   rI  r   r   r   r  Y  s    
z_Unpickler.get_extensionc             C   s   |  j  d k  re |  j re | | f t j k rI t j | | f \ } } n | t j k re t j | } t | d d |  j  d k r t t j | |  d St	 t j | |  Sd  S)Nr   r%  r   r   )
r   r   r/  NAME_MAPPINGIMPORT_MAPPINGr&  rz   r}   r~   ru   )r   r   rw   r   r   r   r  i  s    z_Unpickler.find_classc             C   s3   |  j  } | j   } | d } | |   | d <d  S)Nrj   rk   rk   )rF  rR  )r   rF  r   r   r   r   r   load_reducev  s    	
z_Unpickler.load_reducec             C   s   |  j  d =d  S)Nrj   rk   )rF  )r   r   r   r   load_pop}  s    z_Unpickler.load_popc             C   s    |  j    } |  j | d   =d  S)N)rK  rF  )r   r  r   r   r   load_pop_mark  s    z_Unpickler.load_pop_markc             C   s   |  j  |  j d  d  S)Nrj   rk   )rG  rF  )r   r   r   r   load_dup  s    z_Unpickler.load_dupc             C   s4   t  |  j   d  d   } |  j |  j |  d  S)Nrj   rk   )r   rm   rG  r   )r   r   r   r   r   load_get  s    z_Unpickler.load_getc             C   s+   |  j  d  d } |  j |  j |  d  S)Nrj   r   )ri   rG  r   )r   r   r   r   r   load_binget  s    z_Unpickler.load_bingetc             C   s3   t  d |  j d   \ } |  j |  j |  d  S)Nz<Ir   )r
   ri   rG  r   )r   r   r   r   r   load_long_binget  s    z_Unpickler.load_long_bingetc             C   sL   t  |  j   d  d   } | d k  r4 t d   |  j d |  j | <d  S)Nrj   r   znegative PUT argumentrk   rk   )r   rm   r   rF  r   )r   r   r   r   r   load_put  s    z_Unpickler.load_putc             C   sC   |  j  d  d } | d k  r+ t d   |  j d |  j | <d  S)Nrj   r   znegative BINPUT argumentrk   )ri   r   rF  r   )r   r   r   r   r   load_binput  s    z_Unpickler.load_binputc             C   sK   t  d |  j d   \ } | t k r3 t d   |  j d |  j | <d  S)Nz<Ir   znegative LONG_BINPUT argumentrj   rk   )r
   ri   r   r   rF  r   )r   r   r   r   r   load_long_binput  s    z_Unpickler.load_long_binputc             C   s$   |  j  } |  j d | t |  <d  S)Nrj   rk   )r   rF  r]   )r   r   r   r   r   load_memoize  s    	z_Unpickler.load_memoizec             C   s0   |  j  } | j   } | d } | j |  d  S)Nrj   rk   )rF  rR  rG  )r   rF  r   r|   r   r   r   load_append  s    	
z_Unpickler.load_appendc             C   s   |  j  } |  j   } | | d } | | d d   } t | t  rV | j |  n$ | j } x | D] } | |  qf W| | d   =d  S)Nrj   )rF  rK  r   r|   extendrG  )r   rF  rE  list_objr   rG  r   r   r   r   load_appends  s    		z_Unpickler.load_appendsc             C   s9   |  j  } | j   } | j   } | d } | | | <d  S)Nrj   rk   )rF  rR  )r   rF  r   rI  r;  r   r   r   load_setitem  s
    	
z_Unpickler.load_setitemc             C   sq   |  j  } |  j   } | | d } x: t | d t |  d  D] } | | d | | | <q@ W| | d   =d  S)Nrj   r   )rF  rK  rz  r]   )r   rF  rE  r;  r   r   r   r   load_setitems  s    	#z_Unpickler.load_setitemsc             C   s   |  j  } |  j   } | | d } | | d d   } t | t  rV | j |  n$ | j } x | D] } | |  qf W| | d   =d  S)Nrj   )rF  rK  r   r  updateadd)r   rF  rE  set_objr   r  r   r   r   r   load_additems  s    		z_Unpickler.load_additemsc       
      C   s  |  j  } | j   } | d } t | d d   } | d  k	 rK | |  d  Sd  } t | t  r~ t |  d k r~ | \ } } | r | j } t j } xI | j	   D]; \ } }	 t
 |  t k r |	 | | |  <q |	 | | <q W| rx* | j	   D] \ } }	 t | | |	  q Wd  S)Nrj   __setstate__r   rk   )rF  rR  ru   r   r   r]   __dict__r}   internr   r   r   setattr)
r   rF  r   instsetstate	slotstate	inst_dictr  r  r  r   r   r   
load_build  s(    	

!		z_Unpickler.load_buildc             C   s   |  j  |  j  d  S)N)rG  rE  )r   r   r   r   	load_mark   s    z_Unpickler.load_markc             C   s   |  j  j   } t |   d  S)N)rF  rR  r   )r   r   r   r   r   	load_stop  s    z_Unpickler.load_stopN)r   r   r   r   r   rK  rL  r   rM  r   rp   r^   rQ  r   rS  r   rT  r   rU  r   rV  r   rX  INTrY  r   rZ  r   r[  r   r]  r   r^  r   r_  r   r`  r   ra  r   rb  rd  STRINGre  	BINSTRINGrf  r   rg  r  rh  r  ri  r   rj  r   rk  SHORT_BINSTRINGrl  r   rm  r   rn  r  ro  r  rp  TUPLE1rq  TUPLE2rs  TUPLE3rt  r  ru  r  rv  r  rw  r#  rx  r  r|  r  r  r  INSTr  OBJr  r   r  r   r  r.  r  r-  r  r)  r  r*  r  r+  r  r  r  r   r  r   r  r	  r  DUPr  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<    s  	$%		r<  r   Tc            C   s    t  | | d | j |   d  S)Nr   )r   r   )rv   r   r   r   r   r   r   _dump  s    r  c            C   s8   t  j   } t | | d | j |   | j   } | S)Nr   )rT   rU   r   r   getvalue)rv   r   r   ra   resr   r   r   _dumps  s    r  r=  r>  r?  r@  c            C   s"   t  |  d | d | d | j   S)Nr   r=  r?  )r<  r   )r   r   r=  r?  r   r   r   _load  s    r  c            C   sL   t  |  t  r t d   t j |   } t | d | d | d | j   S)Nz%Can't load pickle from unicode stringr   r=  r?  )r   r   r   rT   rU   r<  r   )sr   r=  r?  r   r   r   r   _loads  s
    r  )	r   r   r   r   r   r   r   r   r   c              C   s   d d  l  }  |  j   S)Nr   )doctesttestmod)r  r   r   r   _test3  s    r  r{   descriptionz$display contents of the pickle filespickle_filer   brnargs*helpzthe pickle filez-tz--testaction
store_truezrun self-test suitez-vz)run verbosely; only affects self-test run)typesr   copyregr   r   r   r   	itertoolsr   r}   r   structr	   r
   rK   rT   r   r/  __all__r   	bytearraybytes_typesformat_versioncompatible_formatsr   r   	Exceptionr   r   r   r   Zorg.python.corer   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   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  dirrP   re   rz   r   r   r   r   r<  r  r  r  r  _pickler   r   r   r   r   r   r  r   argparseArgumentParserparseradd_argumentFileType
parse_argsr   Ztestr  
print_helppprintra   rv   r   r   r   r   <module>   s   	$*  }  ;D#			

