
    uYfh                        U d dl Z d dlZd dlZd dlZd dl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 	 d dlmZ d dlZ eedd      Zej8                  d	k\  rd
nej8                  dk\  rdndZej8                  d	k\  rdndZej8                  d	k\  rej>                  d   fndZ ej8                  d	k\  rej>                  d   fndZ!e e!z   Z"ejF                   G d dejH                               Z%ejF                   G d dejH                               Z&ejF                   G d dejH                               Z'ejF                   G d dejH                               Z( G d de)      Z*dD ]  Z+ e,e*e+d          e*       Z-dedee.ee/e)f   f   fdZ0 G d  d!      Z1 e1       Z2 G d" d#      Z3 G d$ d%e3      Z4 G d& d'e3      Z5d(ed)e6dee)   fd*Z7ej8                  d	k\  r	d+e)de8fd,Z9nd+e)de8fd-Z9i d.d/d0d1d2d3d4d5d6d7d8d5d9d:d;d:d<d:d=d:d>d5d?d:d@dAdBdAdCdAdDdAdEdAi dFdAdGdAdHdAdId:dJd5dKd5dLd5dMd/dNej8                  dk\  rdOndPdQdRej8                  dk\  rdSndTfdUd5dVd5dWdXej8                  dk\  rdYndZfd[d/d\d/d]dAd^ ej>                  D        D  ci c]  } | d: c} d_ ej>                  D        D  ci c]  } | dA c} d`d:d:d:dAdaZ:ee6ee)e)f   f   e;db<   dc dd de df dg dh di dj dk dl dm dndoD  ci c]  } | dp  c} dqdrdsdtdugdv ej>                  D        D  ci c]  } | dw  c} Z<ee6ee)eee8   gee)e)f   f   f   e;dx<   dyee)   dze6d{e)ddfd|Z= ed}~       G d d             Z> G d d      Z? G d d      Z@ G d d      ZA edd      ZB edeC      ZD G d deeD         ZEee)e6e1e4e5de%ee8e6f   ee8e8e6f   f	   ZF G d deEeF         ZGy# e$ r
 d dlmZ Y w xY wc c} w c c} w c c} w c c} w )    N)abstractmethod)	dataclass)dumps)AnyCallableDictGenericOptionalTupleTypeVarUnion)	TypeGuardMIN_INSTRUMENTED_OPCODE         )LOAD_GLOBAL	LOAD_ATTRr      )r    )LOAD_SUPER_ATTRCALL_INTRINSIC_1CALL_INTRINSIC_2c                   |    e Zd ZdZdZdZdZdZdZe	j                  dk  r
dZd	Zd
ZdZdZe	j                  dk\  rd Zyy)Comparer         r         )r   	            r"   
   r   c                     | t         j                  k(  ry| t         j                  k(  ry| t         j                  k(  ry| t         j                  k(  ry| t         j
                  k(  ry| t         j                  k(  ryy )Nr%   r$   r   r&   r    r   )r   EQNELTLEGTGEselfs    N/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/bytecode/instr.py	_get_maskzCompare._get_mask=   sa    wzz!# #### $    N)__name__
__module____qualname__r*   r+   r(   r)   r,   r-   sysversion_infoINNOT_INISIS_NOT	EXC_MATCHr1   r   r2   r0   r   r   ,   s_    	
B	
B	
B	
B	
B	
B
& 	
7"	 #r2   r   c                   t    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)BinaryOpr   r   r   r   r    r!   r#   r$   r%   r"   r&   r   r                                          N)r3   r4   r5   ADDANDFLOOR_DIVIDELSHIFTMATRIX_MULTIPLYMULTIPLY	REMAINDERORPOWERRSHIFTSUBTRACTTRUE_DIVIDEXORINPLACE_ADDINPLACE_ANDINPLACE_FLOOR_DIVIDEINPLACE_LSHIFTINPLACE_MATRIX_MULTIPLYINPLACE_MULTIPLYINPLACE_REMAINDER
INPLACE_ORINPLACE_POWERINPLACE_RSHIFTINPLACE_SUBTRACTINPLACE_TRUE_DIVIDEINPLACE_XORr   r2   r0   r>   r>   M   s    
C
CLFOHI	
BEFHK
CKKN JMNKr2   r>   c                   <    e 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y)Intrinsic1Opr   r   r   r   r    r!   r#   r$   r%   r"   r&   r   N)r3   r4   r5   INTRINSIC_1_INVALIDINTRINSIC_PRINTINTRINSIC_IMPORT_STARINTRINSIC_STOPITERATION_ERRORINTRINSIC_ASYNC_GEN_WRAPINTRINSIC_UNARY_POSITIVEINTRINSIC_LIST_TO_TUPLEINTRINSIC_TYPEVARINTRINSIC_PARAMSPECINTRINSIC_TYPEVARTUPLEINTRINSIC_SUBSCRIPT_GENERICINTRINSIC_TYPEALIASr   r2   r0   rg   rg   k   sI    O$%!  "$r2   rg   c                        e Zd ZdZdZdZdZdZy)Intrinsic2Opr   r   r   r   r    N)r3   r4   r5   INTRINSIC_2_INVALIDINTRINSIC_PREP_RERAISE_STARINTRINSIC_TYPEVAR_WITH_BOUND"INTRINSIC_TYPEVAR_WITH_CONSTRAINTS"INTRINSIC_SET_FUNCTION_TYPE_PARAMSr   r2   r0   ru   ru   {   s     "##$ )*&)*&r2   ru   c                   .     e Zd ZdZ fdZdefdZ xZS )_UNSETNc                 \    | j                   t        | 	  |       | _         | j                   S N)instancesuper__new__)cls	__class__s    r0   r   z_UNSET.__new__   s'    << 7?3/CL||r2   returnc                 
    | |u S r~   r   r/   others     r0   __eq__z_UNSET.__eq__   s    u}r2   )r3   r4   r5   r   r   boolr   __classcell__)r   s   @r0   r|   r|      s    H
t r2   r|   ),__abs____add____and____bool____ceil__
__divmod__	__float__	__floor____floordiv____ge____gt____hash__	__index____int__
__invert____le__
__lshift____lt____mod____mul____ne____neg____or____pos____pow____radd____rand____rdivmod____rfloordiv____rlshift____rmod____rmul____ror__	__round____rpow____rrshift__
__rshift____rsub____rtruediv____rxor____sub____truediv__	__trunc____xor__c                      t         S r~   )NotImplemented)argss    r0   <lambda>r      s    n r2   objr   c                 d    	 t        |       S # t        $ r t        |       t        |       fcY S w xY wr~   )_dumps
ValueErrortypeid)r   s    r0   	const_keyr      s5    $c{ $ S	2c7##$s   
 //c                       e Zd ZdZy)Labelr   Nr3   r4   r5   	__slots__r   r2   r0   r   r          Ir2   r   c                   H    e Zd ZdZdeddfdZdedefdZdefdZ	defd	Z
y)
	_Variablenamer   r   Nc                     || _         y r~   r   r/   r   s     r0   __init__z_Variable.__init__   s	    	r2   r   c                 b    t        |       t        |      ury| j                  |j                  k(  S NF)r   r   r   s     r0   r   z_Variable.__eq__   s(    :T%[(yyEJJ&&r2   c                     | j                   S r~   r   r.   s    r0   __str__z_Variable.__str__   s    yyr2   c                 P    d| j                   j                  d| j                  dS )N< >)r   r3   r   r.   s    r0   __repr__z_Variable.__repr__   s     NN33TYY??r2   )r3   r4   r5   r   strr   r   r   r   r   r   r   r2   r0   r   r      sG    IS T 'C 'D '
 @# @r2   r   c                       e Zd ZdZy)CellVarr   Nr   r   r2   r0   r   r      r   r2   r   c                       e Zd ZdZy)FreeVarr   Nr   r   r2   r0   r   r      r   r2   r   argr   c                     t        | t              s$t        d|dt        |       j                        d| cxk  rdk  sn t        d|z        y)N
operation z argument must be an int, got r   iz;operation %s argument must be in the range 0..2,147,483,647T)
isinstanceint	TypeErrorr   r3   r   )r   r   s     r0   _check_arg_intr      sV    c3d3i002
 	

 "
"LtS
 	
 r2   opcodec                 &    | t         j                  v S r~   )dishasargr   s    r0   opcode_has_argumentr     s    ##r2   c                 (    | t         j                  k\  S r~   )r   HAVE_ARGUMENTr   s    r0   r   r     s    ****r2   ROT_TWO)r   	ROT_THREE)r   ROT_FOUR)r    DUP_TOPr   DUP_TOP_TWO)r   r    GET_LENGET_ITER)r   r   GET_YIELD_FROM_ITERGET_AWAITABLE	GET_AITER	GET_ANEXTLIST_TO_TUPLELIST_EXTEND)r   r   
SET_UPDATEDICT_UPDATE
DICT_MERGE
COMPARE_OPIS_OPCONTAINS_OPIMPORT_NAMEASYNC_GEN_WRAPPUSH_EXC_INFOBEFORE_ASYNC_WITHIMPORT_FROMCOPY_DICT_WITHOUT_KEYSWITH_EXCEPT_START)r   r!   )ir%   MATCH_CLASSr   r   r   MATCH_MAPPINGMATCH_SEQUENCE
MATCH_KEYSr   r   r    CHECK_EXC_MATCHCHECK_EG_MATCHPREP_RERAISE_STARc              #   D   K   | ]  }|j                  d       s|  yw)UNARY_N
startswith.0os     r0   	<genexpr>r  9  s     Q!h9OAQ     c              #   d   K   | ](  }|j                  d       s|j                  d      r| * yw)BINARY_INPLACE_Nr  r  s     r0   r  r  <  s/      
Y'1<<
+C 
s   .0)r   r   )BINARY_SLICELOAD_FROM_DICT_OR_GLOBALSLOAD_FROM_DICT_OR_DEREFLOAD_INTRISIC_1LOAD_INTRISIC_2STATIC_STACK_EFFECTSc                 >    t         j                  dk\  rd|z
  dfS ddfS )Nr   r   r   )r6   r7   effectr   jumps      r0   r   r   S  s-    $$/S	' 57	' r2   c                     dd| z   fS Nr   r   r   r$  s      r0   r   r   X  s    BF
+; r2   c                     dd| z   fS )Nr   r   r   r$  s      r0   r   r   Y  s    "a&j1A r2   c                     | |fS r~   r   r$  s      r0   r   r   Z  s    tSk r2   c                     | || z   fS r~   r   r$  s      r0   r   r   [  s    tS6\&: r2   c                     | |fS r~   r   r$  s      r0   r   r   \  s    c{ r2   c                     | |dz
  fS Nr   r   r$  s      r0   r   r   ]      3$a r2   c                     | |dz
  fS r.  r   r$  s      r0   r   r   ^  s    sdC!G_ r2   c                     | |dz
  fS )Nr   r   r$  s      r0   r   r   _  r/  r2   c                     | dz
  dfS r.  r   r$  s      r0   r   r   `  s    vz1o r2   c                     |r| dfS dS )Nr   r   r   r$  s      r0   r   r   b  s    61+ 7 r2   )CALLr   r   SWAPCOPYROT_NSET_ADDLIST_APPENDMAP_ADDFORMAT_VALUEFOR_ITER)UNPACK_SEQUENCE	UNPACK_EXc                     d| dz   fS r(  r   r$  s      r0   r   r   e  s    b&1*%5 r2   MAKE_FUNCTIONCALL_FUNCTIONCALL_FUNCTION_EXCALL_FUNCTION_KWCALL_METHODc              #   D   K   | ]  }|j                  d       s|  yw)BUILD_Nr  r  s     r0   r  r  s  s     AA!,,x*@aAr  c                     | dz
  dfS r.  r   r$  s      r0   r   r   l  s    fqj!_ r2   DYNAMIC_STACK_EFFECTSlocationlocation_name	min_valuec                     | y t        | t              st        | dt        |              | |k  rt	        d| d| d|        y )Nz must be an int, got zinvalid z, expected >= z, got )r   r   r   r   r   )rI  rJ  rK  s      r0   _check_locationrM  |  sc     h$=/)>tH~>NOPP)}o^I;fXJO
 	
 r2   T)frozenc            
           e Zd ZU dZee   ed<   ee   ed<   ee   ed<   ee   ed<   g dZdee   dee   dee   dee   ddf
d	Ze	dd
       Z
y)InstrLocationz(Location information for an instruction.lineno
end_lineno
col_offsetend_col_offset)rQ  rR  rS  rT  r   Nc                 >   t         j                  | d|       t         j                  | d|       t         j                  | d|       t         j                  | d|       t        |dt        j                  dk\  rdnd       t        |dd       t        |dd       t        |dd       |r$|t        d      ||kD  rt        d	| d
| d      ||N||t        d| d| d      |+|t        d      ||k(  r||kD  rt        d| d| d      y y t        d      y )NrQ  rR  rS  rT  r   r   r   z$End lineno specified with no lineno.zEnd lineno z cannot be smaller than lineno .zMColumn offsets were specified but lineno information are incomplete. Lineno: z, end lineno: z2End column offset specified with no column offset.zEnd column offset z' cannot be smaller than column offset: zANo end column offset was specified but a column offset was given.)object__setattr__rM  r6   r7   r   )r/   rQ  rR  rS  rT  s        r0   r   zInstrLocation.__init__  s}    	4624z:4z:4!1>Bs/?/?7/J!PQR
L!4
L!4(8!<~ !GHH*$ !*-LVHTUV  !^%?~!3 ++1(.AO  )%$L 
 z)j>.I$,^,< =**4Q8  /J) !W ' &@r2   c                 n    t        |j                  |j                  |j                  |j                        S r~   )rP  rQ  rR  rS  rT  )r   positions     r0   from_positionszInstrLocation.from_positions  s1    OO##	
 	
r2   )rZ  zdis.Positionsr   rP  )r3   r4   r5   __doc__r
   r   __annotations__r   r   classmethodr[  r   r2   r0   rP  rP    s    2 SM   SM!HI.. SM. SM	.
 !. 
.` 
 
r2   rP  c                   F    e Zd ZdZdeddfdZedefd       Zdede	fdZ
y)		SetLineno_linenorQ  r   Nc                 V    t        |dt        j                  dk\  rdnd       || _        y )NrQ  r   r   r   )rM  r6   r7   rb  )r/   rQ  s     r0   r   zSetLineno.__init__  s%    s/?/?7/J!PQR"r2   c                     | j                   S r~   ra  r.   s    r0   rQ  zSetLineno.lineno      ||r2   r   c                 V    t        |t              sy| j                  |j                  k(  S r   )r   r`  rb  r   s     r0   r   zSetLineno.__eq__  s"    %+||u}},,r2   )r3   r4   r5   r   r   r   propertyrQ  r   r   r   r   r2   r0   r`  r`    sH    I#s #t #
   -C -D -r2   r`  c            	       H    e Zd ZdZefdeedf   dedeee	f   ddfdZ
d
d	Zy)TryBegintarget
push_lastistack_depthrk  _bytecode.BasicBlockrl  rm  r   Nc                 .    || _         || _        || _        y r~   rj  )r/   rk  rl  rm  s       r0   r   zTryBegin.__init__  s     =C */:r2   c                 X    t        | j                  | j                  | j                        S r~   )ri  rk  rl  rm  r.   s    r0   copyzTryBegin.copy  s    T__d6F6FGGr2   )r   ri  )r3   r4   r5   r   UNSETr   r   r   r   r|   r   rq  r   r2   r0   ri  ri    sQ    7I +0	;e334; ; 3;'	;
 
;Hr2   ri  c                   (    e Zd ZdZdeddfdZddZy)TryEndentryr   Nc                     || _         y r~   )ru  )r/   ru  s     r0   r   zTryEnd.__init__  s	    $
r2   c                 ,    t        | j                        S r~   )rt  ru  r.   s    r0   rq  zTryEnd.copy  s    djj!!r2   )r   rt  )r3   r4   r5   r   ri  r   rq  r   r2   r0   rt  rt    s    I%h %4 %"r2   rt  T	BaseInstr)boundAc                   D   e Zd ZU dZdZefedddededee	de
f   dee   d	df
d
Zefdeded	dfdZd	efdZed	efd       Zej&                  ded	dfd       Zed	e	fd       Zej&                  de	d	dfd       Zed	efd       Zej&                  defd       Zed	ee	e
df   fd       Zej&                  dee	e
df   d	dfd       Zed	ee   fd       Zej&                  dee   d	dfd       Zd0dee   d	e	fdZd0dee   d	ee	e	f   fdZded	efdZd	efdZd	efdZd	efdZd	efd Z d	efd!Z!d	efd"Z"d	efd#Z#d	efd$Z$d%e%d	efd&Z&ee'd'<   ee   e'd(<   e	e'd)<   ee'd*<   deded	dfd+Z(e)d	efd,       Z*e+ded-e	ded	dfd.       Z,e+d	eee   ee%f   fd/       Z-y)1ry  zAbstract instruction.)_name_opcode_arg	_locationN)rQ  rI  r   r   rQ  rI  r   c                    | j                  ||       |r|| _        y |t        u rd | _        y t        |d d d       | _        y r~   )_setr  rr  rP  )r/   r   r   rQ  rI  s        r0   r   zBaseInstr.__init__  s<     			$%DNu_!DN*64tDDNr2   c                 (    | j                  ||       y)ziModify the instruction in-place.

        Replace name and arg attributes. Don't modify lineno.

        N)r  )r/   r   r   s      r0   setzBaseInstr.set!  s     			$r2   c                 ,    t        | j                        S )z)Does the instruction require an argument?)r   r~  r.   s    r0   require_argzBaseInstr.require_arg)  s    "4<<00r2   c                     | j                   S r~   r}  r.   s    r0   r   zBaseInstr.name-  s    zzr2   c                 <    | j                  || j                         y r~   )r  r  r   s     r0   r   zBaseInstr.name1  s    		$		"r2   c                     | j                   S r~   )r~  r.   s    r0   r   zBaseInstr.opcode5  re  r2   opc                     t        |t              st        d      d|cxk  rdk  rn nt        j                  |   }|d|z  k7  }nd}|st        d      | j                  | j                         y )Nzoperator code must be an intr      z<%r>Fzinvalid operator code)r   r   r   r~  opnamer   r  r  )r/   r  r   valids       r0   r   zBaseInstr.opcode9  se    "c":;;>c>>>"%DFRK'EE455		$		"r2   c                     | j                   S r~   )r  r.   s    r0   r   zBaseInstr.argG  s    yyr2   c                 <    | j                  | j                  |       y r~   )r  r}  r/   r   s     r0   r   zBaseInstr.argK  s    		$**c"r2   c                 R    | j                   | j                   j                  S t        S r~   )r  rQ  rr  r.   s    r0   rQ  zBaseInstr.linenoO  s     (,(Bt~~$$MMr2   c                     | j                   }|r/|j                  |j                  |j                  t	        d      |t
        u rd | _         y t        |d d d       | _         y )NzNThe lineno of an instruction with detailed location information cannot be set.)r  rR  rS  rT  RuntimeErrorrr  rP  )r/   rQ  locs      r0   rQ  zBaseInstr.linenoS  sb    nnNN&~~)!!-! 
 U?!DN*64tDDNr2   c                     | j                   S r~   )r  r.   s    r0   rI  zBaseInstr.locatione  s    ~~r2   c                 L    |rt        |t              st        d      || _        y )Nz@The instr location must be an instance of InstrLocation or None.)r   rP  r   r  )r/   rI  s     r0   rI  zBaseInstr.locationi  s'    Jx?R  "r2   r&  c                 N   | j                         sd }n| j                  t        v rDt        | j                  t
              r*t        | j                        dk(  sJ | j                  d   }n| j                  t        v rDt        | j                  t
              r*t        | j                        dk(  sJ | j                  d   }nEt        | j                  t              r| j                  t        j                  v rd}n| j                  }t        j                  | j                  ||      S )Nr   r   r   r&  )r  r   BITFLAG_INSTRUCTIONSr   r  tuplelenBITFLAG2_INSTRUCTIONSr   r~  hasconstr   stack_effect)r/   r&  r   s      r0   r  zBaseInstr.stack_effectq  s    !C YY..:dii3Otyy>Q&&&))A,CYY//Jtyy%4Ptyy>Q&&&))A,CDIIs+t||w?O?O/O C))Cc==r2   c                     | j                  |      }| j                  }|t        v r	t        |   S |t        v rt        |   || j                  |      S |dfS )Nr  r   )r  r   r"  rH  r   )r/   r&  _effectns       r0   pre_and_post_stack_effectz#BaseInstr.pre_and_post_stack_effect  s_    ###.II$$'**''(+GTXXtDD Q<r2   r/   c                 f    | j                  | j                  | j                  | j                        S )N)rI  )r   r}  r  r  r.   s    r0   rq  zBaseInstr.copy  s#    ~~djj$))dnn~MMr2   c                 8    | j                  | j                        S r~   )	_has_jumpr~  r.   s    r0   has_jumpzBaseInstr.has_jump  s    ~~dll++r2   c                 .    | j                   }d|v xr d|v S )zIs a conditional jump?JUMP_IF_r  r   s     r0   is_cond_jumpzBaseInstr.is_cond_jump  s      zz$05D=0r2   c                     | j                   dv S )zIs an unconditional jump?>   JUMP_FORWARDJUMP_ABSOLUTEJUMP_BACKWARDJUMP_BACKWARD_NO_INTERRUPTr   r.   s    r0   is_uncond_jumpzBaseInstr.is_uncond_jump  s     yy 
 
 	
r2   c                 :    | j                   t         j                  v S )zIs an absolute jump.)r~  hasjabsr.   s    r0   is_abs_jumpzBaseInstr.is_abs_jump  s    ||w..r2   c                 Z    | j                   t         j                  v xr d| j                  vS )zIs a forward relative jump.BACKWARDr~  hasjrelr}  r.   s    r0   is_forward_rel_jumpzBaseInstr.is_forward_rel_jump  s#    ||w.O:TZZ3OOr2   c                 Z    | j                   t         j                  v xr d| j                  v S )zIs a backward relative jump.r  r  r.   s    r0   is_backward_rel_jumpzBaseInstr.is_backward_rel_jump  s#    ||w.K:3KKr2   c                 D    | j                   dv ry| j                         ryy)N>   RERAISE
BREAK_LOOPRETURN_CONSTRETURN_VALUECONTINUE_LOOPRAISE_VARARGSTF)r}  r  r.   s    r0   is_finalzBaseInstr.is_final  s*    :: 
 
  r2   c                     | j                   t        ur*d| j                  d| j                   d| j                  dS d| j                  d| j                  dS )Nr   z arg=z
 location=r   )r  rr  r}  r  r.   s    r0   r   zBaseInstr.__repr__  sA    99E!04

DIIt~~VV " *.T^^DDr2   r   c                 r    t        |       t        |      ury| j                         |j                         k(  S r   )r   _cmp_keyr   s     r0   r   zBaseInstr.__eq__  s-    :T%[(}}%.."222r2   r}  r  r~  r  c                    t        |t              st        d      	 t        j                  |   }|t        k\  rt        d| d      | j                  |||       || _	        || _        || _
        y # t
        $ r t        d|       w xY w)Nzoperation name must be a strzinvalid operation name: r   zE is an instrumented or pseudo opcode. Only base opcodes are supported)r   r   r   r~  opmapKeyErrorr   r   
_check_argr}  r  )r/   r   r   r   s       r0   r  zBaseInstr._set  s    $$:;;	@]]4(F ,,TF #2 2 
 	fc*
	  	@7v>??	@s   A1 1B	c                 N    | t         j                  v xs | t         j                  v S r~   )r~  r  r  r   s    r0   r  zBaseInstr._has_jump  s    (EFgoo,EEr2   r   c                      y r~   r   r/   r   r   r   s       r0   r  zBaseInstr._check_arg      r2   c                      y r~   r   r.   s    r0   r  zBaseInstr._cmp_key  r  r2   r~   ).r3   r4   r5   r\  r   rr  r   r{  r   r   r|   r
   rP  r   r  r   r  rg  r   setterr   r   rQ  rI  r  r   r  rx  rq  r  r  r  r  r  r  r  r   r   r   r]  r  staticmethodr  r   r  r  r   r2   r0   ry  ry  
  sq   9I E
 ,1,0EE E
 c4'(E =)E 
E" ',  !  1T 1 c   
[[# # # #    ]]# # # # Q   	ZZ#q # # Nc64/0 N N ]]EU3#45 E$ E E" (=1   __"-!8 "T " ">$ >3 >* htn  cSVh  N1 N N,$ ,1d 1	
 	
/T /PT PLd L$ E# E3C 3D 3 J&&L
G 1  ( FT F F s C a D   % 7c AB  r2   rn  c                   F    e Zd ZdZdeee   eef   fdZ	dede
deddfdZy)	Instrr   r   c                     | j                   }| j                  t        j                  v rt        |      }| j                  | j
                  |fS r~   )r  r~  r  r   r  r}  r  s     r0   r  zInstr._cmp_key  s;    99<<7+++C.C

C00r2   r   r   r   Nc           
         |dk(  rt        d      t        |      r|t        u r$t        d|z        |t        urt        d|z        | j                  |      rEt	        |t
        t        j                  f      s$t        d|dt        |      j                        y |t        j                  v r;t	        |t        t        f      s$t        d|dt        |      j                        y |t        j                  v s|t        j                   v rD|t"        v rut	        |t$              r4t'        |      dk(  r&t	        |d	   t(              rt	        |d
   t*              st        d|dt        |      j                  dt+        |      d      |t,        v rt	        |t$              rGt'        |      dk(  r9t	        |d	   t(              r&t	        |d
   t(              rt	        |d   t*              sft        d|dt        |      j                  dt+        |      d      t	        |t*              s$t        d|dt        |      j                        y y y |t        j.                  v rGt	        |t
              rt        d|z        t	        |t        j                        rt        d|z        y |t        j0                  v r5t	        |t2              s$t        d|dt        |      j                        y |t4        v r5t	        |t6              s$t        d|dt        |      j                        y |t8        v r5t	        |t:              s$t        d|dt        |      j                        y t        |      rt=        ||       y y )NEXTENDED_ARGzuonly concrete instruction can contain EXTENDED_ARG, highlevel instruction can represent arbitrary argument without itz!operation %s requires an argumentzoperation %s has no argumentr   z0 argument type must be Label or BasicBlock, got z* argument must be CellVar or FreeVar, got r   r   r   z* argument must be a tuple[bool, str], got z (value=)r   z0 argument must be a tuple[bool, bool, str], got z argument must be a str, got z-label argument cannot be used in %s operationz-block argument cannot be used in %s operationz$ argument type must be Compare, got z) argument type must be Intrinsic1Op, got z) argument type must be Intrinsic2Op, got )r   r   rr  r  r   r   	_bytecode
BasicBlockr   r   r3   r~  hasfreer   r   haslocalhasnamer  r  r  r   r   r  r  
hascomparer   INTRINSIC_1OPrg   INTRINSIC_2OPru   r   r  s       r0   r  zInstr._check_arg  s;   >!T 
 v&e| !Dt!KLL% !?$!FGG>>&!cE9+?+?#@A5949;M;MO  B w&cGW#56,0$s)2D2DF  7 w'''6W__+D++sE*CA"3q640"3q63/#/3T#Y5G5GSS 
 ..sE*CA"3q640"3q640"3q63/#/3T#Y5G5GSS 
  S) $d3i&8&8:  * 0 04 w'''#u% FM  #y334 FM  5
 w)))c7+)-tCy/A/AC  , }$c<0.2DI4F4FH  1 }$c<0.2DI4F4FH  1 !(3% )r2   )r3   r4   r5   r   r   r
   rP  r   r   r  r   InstrArgr  r   r2   r0   r  r  	  sJ    I1% 7c AB 1\&s \&C \&h \&4 \&r2   r  )Hr   enumr   r~  r6   abcr   dataclassesr   marshalr   r   typingr   r   r   r	   r
   r   r   r   r   ImportErrortyping_extensionsbytecoder  getattrr   r7   r  r  r  r  r  	INTRINSICuniqueIntEnumr   r>   rg   ru   r   r|   r  setattrrr  bytesr   r   r   PLACEHOLDER_LABELr   r   r   r   r   r   r   r"  r]  rH  rM  rP  r`  ri  rt  rx  rW  r{  ry  r  r  )ks   0r0   <module>r     s   
   
  ! # P P P,   "'+DcJ  7" ! 7" 
	  140@0@G0K,QS  -0,<,<,GW]]%&(R  -0,<,<,GW]]%&(R  M)	 dll  @ t||  : 4<<   +4<< + +	S 	- .6B\ FB45].6b 	$3 $5dCi(8!89 $  G @ @$i i  3 9S>  w$C $D $
+C +D +64w6464 64 w	64
 764 w64 64 764 W64 64 64 W64 764 '64 764  '!64" '#64$ W%64& 7'64( 7)64* g+64, W-640 1644 75646 g764: C$4$4$?W;64> BS--8a@?64@ WA64B gC64D 2C,,7qQ?E64F wG64H gI64J K64L Rw}}QRaq'zRM64R
]]
 	
7
O64` !(&k64 d3c3h/0 6@
 <A1:28<8=J)(0
  	
55+(@ 
 BA

 	
44
;( t3Xd^,eCHo=	>> *`

sm

,/

<?

	

 $I
 I
 I
X- -*H H"" " C{#Cvo
 od 		$)	$c/
e&Ih e&{  ,++,Z	 SR
s)   O% !
O7
O<P/P%O43O4