
    ÆeT!                     $    d  Z edk(  r e         yy)c                    	
 dd l dd ldd l	 dd ldd ldd ldd ldd l	dd l
dd ldd l G d d      }  G fdd|       
 G fdd|       	d  G 	
f	d	d
      }fdj                  d   }j                  d   }j                  d   }t               }|j                  dt         |d       |dk7  r	 |||      }j                  dd= t#        |      5 }t%        |j'                         |d      }t)        ||       d d d        |dk7  rj+                          y y # t        $ r dd lY /w xY w# 1 sw Y   4xY w)N    c                       e Zd Zd Zy)/__rope_start_everything.<locals>._MessageSenderc                      y N )selfdatas     5/usr/lib/python3/dist-packages/rope/base/oi/runmod.py	send_dataz9__rope_start_everything.<locals>._MessageSender.send_data   s        N)__name__
__module____qualname__r   r   r   r   _MessageSenderr      s    	r   r   c                   0    e Zd Z fdZ fdZd Zy).__rope_start_everything.<locals>._SocketSenderc                     j                  j                  j                        }|j                  d|f       |j	                  d      | _        j                  |      | _        y )Nz	127.0.0.1wb)socketAF_INETSOCK_STREAMconnectmakefilemy_file	b64decodekey)r	   portr   sbase64r   s       r   __init__z7__rope_start_everything.<locals>._SocketSender.__init__   sP    fnnf.@.@AAII{D)*::d+DL'',DHr   c                 Z   | j                   j                  sj                  j                  |j                              }j                  | j                  |j                        j                         }| j                   j                  j                  |      dz   |z   dz          y y )N   :   
)
r   closed	b64encodedumpsHIGHEST_PROTOCOLnewr   sha256digestwrite)r	   r
   pickled_datadgstr    hashlibhmacpickles       r   r   z8__rope_start_everything.<locals>._SocketSender.send_data   s    <<&&%//LLv'>'>?  xx,GNNP""6#3#3D#9D#@<#ORW#WX 'r   c                 8    | j                   j                          y r   r   closer	   s    r   r4   z4__rope_start_everything.<locals>._SocketSender.close%       LL r   Nr   r   r   r!   r   r4   )r    r/   r0   r1   r   s   r   _SocketSenderr      s    	-	Y	!r   r8   c                   $    e Zd Zd Z fdZd Zy),__rope_start_everything.<locals>._FileSenderc                 &    t        |d      | _        y )Nr   )openr   )r	   	file_names     r   r!   z5__rope_start_everything.<locals>._FileSender.__init__)   s    	40DLr   c                 l    | j                   j                  sj                  || j                          y y r   )r   r%   dump)r	   r
   marshals     r   r   z6__rope_start_everything.<locals>._FileSender.send_data,   s'    <<&&T4<<0 'r   c                 8    | j                   j                          y r   r3   r5   s    r   r4   z2__rope_start_everything.<locals>._FileSender.close0   r6   r   Nr7   )r@   s   r   _FileSenderr:   (   s    	1	1	!r   rB   c                      i  fd}|S )Nc                 6    |v r|   S  | |      }||<   |S r   r   )r	   argresultcachefuncs      r   newfuncz9__rope_start_everything.<locals>._cached.<locals>.newfunc6   s-    e|Sz!$_FE#JMr   r   )rH   rI   rG   s   ` @r   _cachedz(__rope_start_everything.<locals>._cached3   s    	 r   c                      	 e Zd Z fdZd Zd ZfdZW fd       ZW fd       Zd Z	fdZ
W fd	       Zd
 ZfdZy)8__rope_start_everything.<locals>._FunctionCallDataSenderc                      | _         |d   j                         r-|j                  dd      \  }} t        |      |       _        n |       _         fd}j                  |       	j                  |       y )Nr   :   c                 @    j                  |       rj                  S y r   )_is_an_interesting_callon_function_call)frameeventrE   r	   s      r   global_tracezW__rope_start_everything.<locals>._FunctionCallDataSender.__init__.<locals>.global_traceH   s$     //6000 7r   )project_rootisdigitsplitintsendersettrace)
r	   	send_inforV   r   r   rU   rB   r8   sys	threadings
   `     r   r!   zA__rope_start_everything.<locals>._FunctionCallDataSender.__init__@   sn     ,D|##%%OOC3	c+CIs;))41 LL&|,r   c                 6   |dk7  ry g }d}|j                   }|j                  d |j                   D ]2  }	 | j                  |j                  |         }|j                  |       4 	 | j                  |      }	 | j                  |j                         t        |      |f}	| j                  j                  |	       | j                  S # t        t        f$ r |j                  d       Y w xY w# t        t        f$ r Y w xY w# t        $ r Y | j                  S w xY w)Nreturnunknown)f_codeco_varnamesco_argcount_object_to_persisted_formf_localsappend	TypeErrorAttributeErrortuplerZ   r   rR   )
r	   rS   rT   rE   argsreturnedcodeargnameargvaluer
   s
             r   rR   zI__rope_start_everything.<locals>._FunctionCallDataSender.on_function_callQ   s%    D#H<<D++,>d.>.>? ..#==ennW>UVHKK).99#>225<<@$K
 %%d+ ((( ">2 .KK-. ~.   (((s6   /C&C, 8AD  C)(C),C>=C>	DDc                     | j                  |j                        s2|j                  r%| j                  |j                  j                        syy)NFT)_is_code_inside_projectrc   f_back)r	   rS   s     r   rQ   zP__rope_start_everything.<locals>._FunctionCallDataSender._is_an_interesting_calll   s;    
 //=LL33ELL4G4GHr   c                     | j                  |j                        }|d uxr> j                  j                  |      xr!  |      j	                  | j
                        S r   )_pathco_filenamepathexists
startswithrV   )r	   rn   source	_realpathoss      r   rr   zP__rope_start_everything.<locals>._FunctionCallDataSender._is_code_inside_projectx   sY    ZZ 0 01Fd" DGGNN6*Df%001B1BCr   c                     | j                  |j                        }j                  j                  |      st	        d      d |      t        |j                        fS )Nz	no sourcedefined)ru   rv   rw   rx   ri   strco_firstlineno)r	   object_rz   r{   r|   s      r   _get_persisted_codezL__rope_start_everything.<locals>._FunctionCallDataSender._get_persisted_code   sO    ZZ 3 34F77>>&),,y0#g6L6L2MNNr   c                 x    	 d j                  |            |j                  fS # t        t        f$ r Y yw xY wNr~   ra   )getsourcefiler   ri   rj   )r	   r   r{   inspects     r   _get_persisted_classzM__rope_start_everything.<locals>._FunctionCallDataSender._get_persisted_class   sJ    $g33G<=$$ 
 ~. $#$s   #' 99c                    t        |t              ryt        |t              r)d }t        |      dkD  r|d   }dd| j	                  |      fS t        |t
              rbd }d }t        |      dkD  r,|j                         D cg c]
  }|dk7  s	| c}d   }||   }dd| j	                  |      | j	                  |      fS t        |t              rkg }t        |      dk  r(|D ]"  }|j                  | j	                  |             $ n#|j                  | j	                  |d                t        ddg|z         S t        |t              r.d }t        |      dkD  r
|D ]  }|} n dd	| j	                  |      fS y
c c}w )N)builtinr   r   r   list
__locals__dict   rk   setra   )

isinstancer   r   lenrf   r   keysrk   rh   r   )r	   r   holdingr   valuesr   objectsos           r   _get_persisted_builtinzO__rope_start_everything.<locals>._FunctionCallDataSender._get_persisted_builtin   s   '3')'4(w<!#%ajG!64+I+I'+RSS'4(w<!# ,3<<>QCSL=PCQRSTD$T]F2248226:	  '5)w<!##* Pt'E'Eg'NOP NN4#A#A'!*#MNi1G;<<'3'w<!#$ "# "5$*H*H*QRR/ Rs   ?
E7
E7c                 d   |yt        |j                        r| j                  |      S t        |j                        r| j                  |j                        S t        |j
                        r%| j                  |j                  j                        S t        |j                        r| j                  |      S t        |t        t        t        t        t        f      r| j                  |      S t        |t              r| j!                  |      S d| j!                  t        |            fS )N)noneinstance)r   CodeTyper   FunctionType__code__
MethodType__func__
ModuleType_get_persisted_moduler   r   r   rk   r   r   typer   )r	   r   typess     r   rf   zR__rope_start_everything.<locals>._FunctionCallDataSender._object_to_persisted_form   s     '5>>2//88'5#5#56//0@0@AA'5#3#34//0@0@0I0IJJ'5#3#3411'::'CtUC#@A227;;'4(0099 9 9$w- HIIr   c                     | j                  |j                        }|r%j                  j                  |      r
d |      fS yr   )ru   __file__rw   rx   )r	   r   rw   r{   r|   s      r   r   zN__rope_start_everything.<locals>._FunctionCallDataSender._get_persisted_module   s;    ::g../Dt,!9T?33r   c                 V    |j                  d      r|d d }|j                  d      r|S y )Nz.pycz.py)endswith)r	   rw   s     r   ru   z>__rope_start_everything.<locals>._FunctionCallDataSender._path   s/    }}V$CRy}}U# $r   c                 \    | j                   j                          j                  d        y r   )rZ   r4   r[   )r	   r]   s    r   r4   z>__rope_start_everything.<locals>._FunctionCallDataSender.close   s    KKLLr   N)r   r   r   r!   rR   rQ   rr   r   r   r   rf   r   ru   r4   )	rB   r8   rJ   r{   r   r|   r]   r^   r   s	   r   _FunctionCallDataSenderrL   ?   sk    	-"	)6
		 
	O 
	O 
	$ 
	$%	 N	J" 
	  
	 		r   r   c                     j                   j                  j                   j                  j                   j                  |                   S r   )rw   realpathabspath
expanduser)rw   r|   s    r   r{   z*__rope_start_everything.<locals>._realpath   s4    ww0B0B40H IJJr   rO      r   __main__)r   __builtins__r   -   exec)r|   r   r]   cPickleImportErrorr1   r    r/   r0   r   r@   r^   r   argvglobalsupdater   r<   compilereadr   r4   )r   r   r\   rV   file_to_runrun_globalsdata_senderfrn   rB   r8   rJ   r{   r    r/   r0   r   r@   r|   r1   r   r]   r^   r   s            @@@@@@@@@@@@@@@r   __rope_start_everythingr      sL      ! ! !$	!n 	!
Z Z ZxK I88A;L((1+K)K;W C-iF1	k	  aqvvxf5T;  C I  B   s   E  9(E EEEr   N)r   r   r   r   r   <module>r      s!   l^ z r   