™N
åu¦9c       s¨    d  Z    k Z  k Z  k Z  e d „ Z + e d „ Z 5 d d „ Z V e Z X d „  Z	 r d d d d	 d
 d d d d d d d f Z
 u g  Z v g  Z w g  Z x g  Z y g  Z z g  Z | d g d Z } x/ e d ƒ d } r Z } d e d
 e e <qï W d „  Z ‚ d „  Z † d „  Z Š d „  Z  e d d ƒ ‘ e d d ƒ ’ e d d ƒ “ e d d ƒ ” e d d  ƒ – e d! d" ƒ — e d# d$ ƒ ˜ e d% d& ƒ ™ e d' d( ƒ › e d) d* ƒ  e d+ d, ƒ Ÿ e d- d. ƒ   e d/ d0 ƒ ¡ e d1 d2 ƒ ¢ e d3 d4 ƒ £ e d5 d6 ƒ ¤ e d7 d8 ƒ ¦ e d9 d: ƒ § e d; d< ƒ ¨ e d= d> ƒ © e d? d@ ƒ « e dA dB ƒ ¬ e dC dD ƒ ­ e dE dF ƒ ® e dG dH ƒ ° e dI dJ ƒ ± e dK dL ƒ ² e dM dN ƒ ³ e dO dP ƒ µ e dQ dR ƒ ¶ e dS dT ƒ ¸ e dU dV ƒ ¹ e dW dX ƒ º e dY dZ ƒ » e d[ d\ ƒ ¼ e d] d^ ƒ ¾ e d_ d` ƒ ¿ e da db ƒ À e dc dd ƒ Â e de df ƒ Ä e dg dh ƒ Å e di dj ƒ Ç e dk dl ƒ É e dm dn ƒ Ê e do dp ƒ Ë e dq dr ƒ Í ds Z Ï e dt ds ƒ Ð e du dv ƒ Ñ e dw dx ƒ Ò e dy dz ƒ Ó e d{ d| ƒ Ô e d} d~ ƒ Õ e d d€ ƒ Ö e d d‚ ƒ Ø e dƒ d„ ƒ Ù e i d„ ƒ Ú e d… d† ƒ Û e d‡ dˆ ƒ Ü e d‰ dŠ ƒ Ý e d‹ dŒ ƒ Þ e d dŽ ƒ ß e d d ƒ à e i d ƒ á e d‘ d’ ƒ â e d“ d” ƒ ä e d• d– ƒ å e d— d˜ ƒ æ e d™ dš ƒ ç e d› dœ ƒ è e d dž ƒ ê e dŸ d  ƒ ì e d¡ d¢ ƒ í e d£ d¤ ƒ î e d¥ d¦ ƒ ð e d§ d¨ ƒ ñ e i d¨ ƒ ò e d© dª ƒ ó e i dª ƒ ô e d« d¬ ƒ õ e i d¬ ƒ ÷ e d­ d® ƒ ø d® Z ú e d¯ d° ƒ û e d± d² ƒ ü e d³ d´ ƒ ý e dµ d¶ ƒ d· S(¸   s0   Disassembler of Python byte code into mnemonics.c    s¢     |  o  t ƒ   d Sn  t |  ƒ t i j o  |  i }  n  t |  d ƒ o¹  |  i i ƒ  }  | i	 ƒ   x | d  rƒ \ } }  t | ƒ t i t i t i f j oO  d | GH y  t | ƒ Wn$  t j
 o }  d G| GHn X Hn q Wn„   t |  d ƒ o ! |  i }  n " t |  d ƒ o # |  i }  n $ t |  d ƒ o % t |  ƒ n ' t d	 t |  ƒ i ‚ d S(
   sh   Disassemble classes, methods, functions, or code.

	With no argument, disassemble the last traceback.

	Ns   __dict__i    s   Disassembly of %s:s   Sorry:s   im_funcs	   func_codes   co_codes(   don't know how to disassemble %s objects(   s   xs   distbs   types   typess   InstanceTypes	   __class__s   hasattrs   __dict__s   itemss   sorts   names   x1s
   MethodTypes   FunctionTypes   CodeTypes   diss	   TypeErrors   msgs   im_funcs	   func_codes   disassembles   __name__(   s   xs   itemss   names   x1s   msgs'   /usr/lib/python1.5/site-packages/dis.pys   dis s2   
 (c    sŽ   + , - |  o` . y / t i }  Wn" 0 t j
 o 1 t d ‚ n X2 x 2 |  i o 2 |  i }  qO Wn 3 t |  i i |  i	 ƒ d S(   s2   Disassemble a traceback (default: last traceback).s    no last traceback to disassembleN(
   s   tbs   syss   last_tracebacks   AttributeErrors   RuntimeErrors   tb_nexts   disassembles   tb_frames   f_codes   tb_lasti(   s   tbs'   /usr/lib/python1.5/site-packages/dis.pys   distb+ s     c 	   sE  5 6 7 |  i } 8 t | ƒ } 9 t | ƒ } : d } ; x; | | j  oñ< | | } = t	 | ƒ } > | t j o
 | d j o > Hn ? | | j o ? d Gn @ d GA | | j o A d Gn B d GC t i | d ƒ GD t i t | d ƒ GE | d } F | t j oG t	 | | ƒ t	 | | d ƒ d	 } H | d
 } I t i | d ƒ GJ | t j o K d |  i | d Gn¤ L | t j o M d |  i | d Gnz N | t j o O d | | d GnR P | t j o Q d |  i | d Gn( R | t j o S d t | d Gn n T Hq? Wd S(   s   Disassemble a code object.i    s   -->s      s   >>s     i   i   i   i   i   i   s   (s   )s   (to N(   s   cos   co_codes   codes
   findlabelss   labelss   lens   ns   is   cs   ords   ops
   SET_LINENOs   lastis   strings   rjusts   ljusts   opnames   HAVE_ARGUMENTs   opargs   hasconsts	   co_constss   hasnames   co_namess   hasjrels   haslocals   co_varnamess
   hascompares   cmp_op(	   s   cos   lastis   codes   labelss   ns   is   cs   ops   opargs'   /usr/lib/python1.5/site-packages/dis.pys   disassemble5 sF   	    )i   c    s@  X ] ^ g  } _ t |  ƒ } ` d } a xa | | j  o÷ b |  | } c t | ƒ } d | d } e | t j oº f t |  | ƒ t |  | d ƒ d } g | d } h d } i | t j o j | | } n k | t j o l | } n m | d j o( n | | j o o | i | ƒ n n n q- Wp | Sd S(   sZ   Detect all offsets in a byte code which are jump targets.

	Return the list of offsets.

	i    i   i   i   N(   s   labelss   lens   codes   ns   is   cs   ords   ops   HAVE_ARGUMENTs   opargs   labels   hasjrels   hasjabss   append(   s   codes   labelss   ns   is   cs   ops   opargs   labels'   /usr/lib/python1.5/site-packages/dis.pys
   findlabelsX s*   		 )
!s   <s   <=s   ==s   !=s   >s   >=s   ins   not ins   iss   is nots   exception matchs   BADs    i   i    c    s    € |  t | <d  S(   N(   s   names   opnames   op(   s   names   ops'   /usr/lib/python1.5/site-packages/dis.pys   def_op s   c    s$   ‚ ƒ |  t | <„ t i | ƒ d  S(   N(   s   names   opnames   ops   hasnames   append(   s   names   ops'   /usr/lib/python1.5/site-packages/dis.pys   name_op‚ s   c    s$   † ‡ |  t | <ˆ t i | ƒ d  S(   N(   s   names   opnames   ops   hasjrels   append(   s   names   ops'   /usr/lib/python1.5/site-packages/dis.pys   jrel_op† s   c    s$   Š ‹ |  t | <Œ t i | ƒ d  S(   N(   s   names   opnames   ops   hasjabss   append(   s   names   ops'   /usr/lib/python1.5/site-packages/dis.pys   jabs_opŠ s   s	   STOP_CODEs   POP_TOPs   ROT_TWOi   s	   ROT_THREEi   s   DUP_TOPi   s   UNARY_POSITIVEi
   s   UNARY_NEGATIVEi   s	   UNARY_NOTi   s   UNARY_CONVERTi   s   UNARY_INVERTi   s   BINARY_POWERi   s   BINARY_MULTIPLYi   s   BINARY_DIVIDEi   s   BINARY_MODULOi   s
   BINARY_ADDi   s   BINARY_SUBTRACTi   s   BINARY_SUBSCRi   s   SLICE+0i   s   SLICE+1i   s   SLICE+2i    s   SLICE+3i!   s   STORE_SLICE+0i(   s   STORE_SLICE+1i)   s   STORE_SLICE+2i*   s   STORE_SLICE+3i+   s   DELETE_SLICE+0i2   s   DELETE_SLICE+1i3   s   DELETE_SLICE+2i4   s   DELETE_SLICE+3i5   s   STORE_SUBSCRi<   s   DELETE_SUBSCRi=   s   BINARY_LSHIFTi>   s   BINARY_RSHIFTi?   s
   BINARY_ANDi@   s
   BINARY_XORiA   s	   BINARY_ORiB   s
   PRINT_EXPRiF   s
   PRINT_ITEMiG   s   PRINT_NEWLINEiH   s
   BREAK_LOOPiP   s   LOAD_LOCALSiR   s   RETURN_VALUEiS   s	   EXEC_STMTiU   s	   POP_BLOCKiW   s   END_FINALLYiX   s   BUILD_CLASSiY   iZ   s
   STORE_NAMEs   DELETE_NAMEi[   s   UNPACK_TUPLEi\   s   UNPACK_LISTi]   s
   STORE_ATTRi_   s   DELETE_ATTRi`   s   STORE_GLOBALia   s   DELETE_GLOBALib   s
   LOAD_CONSTid   s	   LOAD_NAMEie   s   BUILD_TUPLEif   s
   BUILD_LISTig   s	   BUILD_MAPih   s	   LOAD_ATTRii   s
   COMPARE_OPij   s   IMPORT_NAMEik   s   IMPORT_FROMil   s   JUMP_FORWARDin   s   JUMP_IF_FALSEio   s   JUMP_IF_TRUEip   s   JUMP_ABSOLUTEiq   s   FOR_LOOPir   s   LOAD_GLOBALit   s
   SETUP_LOOPix   s   SETUP_EXCEPTiy   s   SETUP_FINALLYiz   s	   LOAD_FASTi|   s
   STORE_FASTi}   s   DELETE_FASTi~   s
   SET_LINENOi   s   RAISE_VARARGSi‚   s   CALL_FUNCTIONiƒ   s   MAKE_FUNCTIONi„   s   BUILD_SLICEi…   N(   s   __doc__s   syss   strings   typess   Nones   diss   distbs   disassembles   discos
   findlabelss   cmp_ops   hasconsts   hasnames   hasjrels   hasjabss   haslocals
   hascompares   opnames   ranges   ops   def_ops   name_ops   jrel_ops   jabs_ops   HAVE_ARGUMENTs   appends
   SET_LINENO(    s'   /usr/lib/python1.5/site-packages/dis.pys   ? sÜ   			$
!	-						 	 		