
    Zi                       S SK Jr  S SK Jr  S SK Jr  S SKrS SKrS SKrS SKr S SKrSr	S SKJr  S SKJrJr  S S	KJr  \R$                  S    S
:  rSq\(       a  S rO\rS rS rSrSrSrSrSrSrGSAS jrS r S r!S r"S r#S r$\RJ                  4S jr&\RJ                  4S jr'S r(0 S S/ SS ._S!S"/ SS ._S#S$/ SS ._S
S%/ SS ._S&S'/ SS ._S(S)/ SS ._S*S+/ SS ._S,S-/ SS ._S.S// SS ._S0S1/ SS ._S2S3/ SS ._S4S5/ SS ._S6S7/ SS ._S8S9/ SS ._S:S;/ SS ._S<S=/ SS ._SS>/ SS ._0 S?S@/ SS ._SASB/ SS ._SCSD/ SS ._SESF/ SS ._SGSH/ SS ._SISJ/ SS ._SKSL/ SS ._SMSN/ SS ._SOSP/ SS ._SQSR/ SS ._SSST/ SS ._SUSV/ SS ._SWSX/ SS ._SYSZ/ SS ._S[S\S]/SS ._S^S_S]/SS ._S`SaS]/SS ._E0 SbScS]/SS ._SdSeSf/SS ._SgShS]Sf/SS ._SiSjS]Sf/SS ._SkSlS]Sf/SS ._SmSnS]/SS ._SoSpS]/SS ._SqSrS]/SS ._SsStSf/SS ._SuSvS]Sf/SS ._SwSxS]Sf/SS ._SySzS]Sf/SS ._S{S|S]/SS ._S}S~S]/SS ._SSS]/SS ._SSSf/SS ._SSS]Sf/SS ._E0 SSS]Sf/SS ._SSS]Sf/SS ._SSS]/SS ._SSS]/SS ._SSS]Sf/SS ._SSS]Sf/SS ._SSS]/SS ._SSS]/SS ._SSS]Sf/SS ._SSS]Sf/SS ._SSS]/SS ._SSS]/SS ._SSS]Sf/SS ._SSS]Sf/SS ._SSS]Sf/SS ._SSS]Sf/SS ._SSS]Sf/SS ._E0 SSS]Sf/SS ._SS/ SS ._SSSf/SS ._SS/ SS ._SS/ SS ._SSS]/SS ._SSS]/SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._E0 SSSf/SS ._SSSf/SS ._SS/ SS ._SS/ SS ._SS/ SS ._SSS/SS ._SS/ SS ._SSSfSf/SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._E0 SSS/SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SS/ SS ._SGS / SS ._GSGS/ SS ._GSGS/ SS ._GSGSSf/SS ._GSGS/ SS ._GS	GS
GS/SS ._GSGSS]Sf/SS ._GSGSS]Sf/SS ._E0 GSGSS]Sf/SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GS GS!/ SS ._GS"GS#/ SS ._GS$GS%/ SS ._GS&GS'/ SS ._GS(GS)/ SS ._GS*GS+/ SS ._GS,GS-/ SS ._GS.GS// SS ._GS0GS1/ SS ._E0 GS2GS3/ SS ._GS4GS5/ SS ._GS6GS7Sf/SS ._GS8GS9/ SS ._GS:GS;/ SS ._GS<GS=/ SS ._GS>GS?/ SS ._GS@GSA/ SS ._GSBGSC/ SS ._GSDGSESf/SS ._GSFGSG/ SS ._GSHGSI/ SS ._GSJGSKS/SS ._GSLGSM/ SS ._GSNGSOGS/SS ._GSPGSQGS/SS ._GSRGSS/ SS ._E0 GSTGSUS]/SS ._GSVGSWS]/SS ._GSXGSY/ SS ._GSZGS[/ SS ._GS\GS]S/SS ._GS^GS_S/SS ._GS`GSa/ GSbQSS ._GScGSd/ SS ._GSeGSf/ SS ._GSgGSh/ SS ._GSiGSjS]/SS ._GSkGSl/ SS ._GSmGSnSf/SS ._GSoGSp/ SS ._GSqGSr/ SS ._GSsGStS]/SS ._GSuGSv/ GSbQSS ._E0 GSwGSx/ GSbQSS ._GSyGSz/ SS ._GS{GS|Sf/SS ._GS}GS~SfSf/SS ._GSGS/ GSbQSS ._GSGSSf/SS ._GSGSSfSf/SS ._GSGS/ GSbQSS ._GSGS/ SS ._GSGSSf/SS ._GSGSSfSf/SS ._GSGS/ GSbQSS ._GSGSSfSf/SS ._GSGS/ GSbQSS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._E0 GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ GSQSS ._GSGS/ GSQSS ._GSGS/ GSQSS ._GSGS/ GSQSS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGSS/SS ._GSGS/ SS ._GSGS/ SS ._E0 GSGSS]/SS ._GSGS/ SS ._GSGS/ SS ._GSGSSf/SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGSS]/SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._E0 GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGSSf/SS ._GSGS/ SS ._GSGSSf/SS ._GSGS/ GSQSS ._GSGS/ GSQSS ._GSGS/ SS ._GSGS/ SS ._GSGSS]/SS ._GSGS/ SS ._GSGS/ SS ._GSGSSf/SS ._GSGS/ SS ._GSGS/ SS ._E0 GS GSS/SS ._GSGS/ SS ._GSGS/ SS ._GSGSSfSf/SS ._GSGS	/ SS ._GS
GSGS/SS ._GSGS/ SS ._GSGSGS/SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGS/ SS ._GSGSS]/SS ._GSGS/ SS ._GS GS!/ SS ._GS"GS#/ SS ._EGS$/ SS .GS%/ SS .GS&/ SS .GS'/ SS .GS(/ SS .GS)/ SS .GS*S]/SS .GS+/ SS .GS,/ SS .GS-.	Er)GS. r*GS/ r+GS0 r,GS1 r-GS2 r.GS3 r/GS4 r0GS5 r1GS6 r2GS7 r3GS8 r4GS9 r5GS: r6\RJ                  4GS; jr7\RJ                  4GS< jr8\RJ                  4GS= jr9\RJ                  4GS> jr:GS? r;\<GS@:X  a  \;" 5         gg! \
 a    Sr	 G
N"f = f(B      )print_function)absolute_import)divisionNTFunpack_from)
VBA_Parserdecompress_stream)	codepages   latin1c                 H    U R                  [        SS9R                  S5      $ )Nreplaceerrorszutf-8)decodecodecencodexs    k/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/pcodedmp/pcodedmp.pyr   r      s     xxix077@@    c                     U $ N r   s    r   ordr      s    r   c                 *    U R                  [        SS9$ )Nr   r   )r   r   r   s    r   r   r      s    xxix00r   zA VBA p-code disassemblerGPLz$https://github.com/bontchev/pcodedmpz1.2.6zVesselin Bontchevzvbontchev@yahoo.com   c           
          S nS nSn[        S[        U 5      U5       H1  nXXQ-    nUSR                  XR" U5      US-  S-
  U" U5      5      -  nM3     U$ )Nc                 2    SR                  S U  5       5      $ )N c              3   V   #    U  H  nS R                  [        U5      5      v   M!     g7fz{:02X}Nformatr   .0is     r   	<genexpr>,hexdump.<locals>.<lambda>.<locals>.<genexpr>(   s      "IDq8??3q6#:#:D   ')joindatas    r   <lambda>hexdump.<locals>.<lambda>(   s    #(("ID"IIr   c                 2    SR                  S U  5       5      $ )N c              3      #    U  H4  nS [        U5      s=:  a  S:  a  O  O[        [        U5      5      OSv   M6     g7f)      .N)r   chrr&   s     r   r)   r*   )   s0     !\W[RS"s1v2C2C#c!f+#"MW[s   <>r,   r.   s    r   r0   r1   )   s    "''!\W[!\\r   r3   r   z{:08X}   {:{}}    {}
r      )xrangelenr%   )bufferlengththeHextheStrresultoffsetr/   s          r   hexdumprB   '   sl    IF\FFCK0V_-*11&&,QR
UVX^_cXdee 1 Mr   c                 &    [        US-   X5      S   $ )NHr   r   r<   rA   endians      r   getWordrG   0       v|V4Q77r   c                 &    [        US-   X5      S   $ )NLr   r   rE   s      r   getDWordrK   3   rH   r   c                     U(       a   [        XU5      nUS-  nU=(       a    US:H  nO[        XU5      nUS-  nU=(       a    US:H  nU(       d  XU-  -  nU$ )N            rK   rG   )r<   rA   rF   
isLengthDWelementSizecheckForMinusOner=   skips           r   skipStructurerV   6   sb    &&1!:Vz%90!6Vv%5;&&Mr   c                 `    U(       a  [        XU5      nUS-  nX4$ [        XU5      nUS-  nX4$ )NrM   rO   rQ   )r<   rA   rF   isDWordvalues        r   getVarrZ   C   sC    0! = /!=r   c                     US:X  a  [        X   5      [        XS-      5      4$ [        XS-      5      [        X   5      4$ )N>r9   )r   rE   s      r   getTypeAndLengthr]   L   sE    }6>"Cz(:$;;;61*%&FN(;;;r   c                    0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_0 S#S$_S%S&_S'S(_S)S*_S+S,_S-S._S/S0_S1S2_S3S4_S5S6_S7S8_S9S:_S;S<_S=S>_S?S@_SASB_SCSD_E0 SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_S_S`_SaSb_ScSd_SeSf_ESgShSiSj.EnUR                   (       d  [        SkUSl9  [        SmUSl9  SnnU R                  R                  U5      R	                  5       n[        U5      n[        U5      n/ n	UR                   (       dG  [        SoR                  U5      USl9  UR                  (       a  [        [        U5      USl9  [        SpUSl9  Sqn
X:  GaT   [        XzSr5      n[        XzS-   Sr5      nUS:X  a  SnOUS:X  a  SnX;  a  SsnOXK   nUR                   (       d  [        StR                  X5      SuUSv9  U
S-  n
U(       a  UR                   (       d!  [        SwUSl9  [        [        XzX-    5      USl9  US:X  a#  [        XzSr5      n[        R                  " U5      qOaUS\:X  aD  XzX-    R                  SxSySz9n[        (       a  UR!                  S{SySz9nOUnU	R#                  U5        OUS:X  a  [%        XzSr5      nUS:H  nX-  n
OUR                   (       d
  [        SuUSl9  X:  a  GMT  XyU4$ !    M	  = f)|Nr9   PROJ_SYSKINDrO   	PROJ_LCIDr   PROJ_CODEPAGErM   	PROJ_NAME   PROJ_DOCSTRING   PROJ_HELPFILE   PROJ_HELPCONTEXT   PROJ_LIBFLAGS	   PROJ_VERSION
   	PROJ_GUID   PROJ_PROPERTIES   PROJ_CONSTANTS   PROJ_LIBID_REGISTERED   PROJ_LIBID_PROJ   PROJ_MODULECOUNTr   PROJ_EOF   PROJ_TYPELIB_VERSION   PROJ_COMPAT_EXE   PROJ_COOKIE   PROJ_LCIDINVOKE   PROJ_COMMAND_LINE   PROJ_REFNAME_PROJ   MOD_NAME   
MOD_STREAM   MOD_DOCSTRING   MOD_HELPFILE   MOD_HELPCONTEXT    MOD_PROPERTIES!   MOD_FBASMOD_StdMods"   MOD_FBASMOD_Classes#   MOD_FBASMOD_Creatable$   MOD_FBASMOD_NoDisplay%   MOD_FBASMOD_NoEdit&   MOD_FBASMOD_RefLibs'   MOD_FBASMOD_NonBasic(   MOD_FBASMOD_Private)   MOD_FBASMOD_Internal*   MOD_FBASMOD_AllModTypes+   MOD_END,   MOD_COOKIETYPE-   MOD_BASECLASSNULL.   MOD_BASECLASS/   PROJ_LIBID_TWIDDLED0   PROJ_LIBID_EXTENDED1   MOD_TEXTOFFSET2   MOD_UNICODESTREAM<   PROJ_UNICODE_CONSTANTS=   PROJ_UNICODE_HELPFILE>   PROJ_UNICODE_REFNAME_PROJ?   PROJ_UNICODE_COMMAND_LINE@   PROJ_UNICODE_DOCSTRINGMOD_UNICODE_NAMEMOD_UNICODE_DOCSTRINGMOD_UNICODE_HELPFILE)G   H   I   O-------------------------------------------------------------------------------filezdir stream after decompression:F
{:d} byteszdir stream parsed:r   <UNKNOWNz{:08X}:  {}r3   endr   :	utf_16_ler   r   utf8)
disasmOnlyprintole_file
openstreamreadr	   r;   r%   verboserB   rG   r
   codepage2codecr   r   PYTHON2r   appendrK   )	vbaParserdirPathargsoutput_filetagsis64bitdirDataCompresseddirData
streamSizecodeModulesrA   tagwLengthtagNamecodepagestream_name_unicodestream_namesysKinds                     r   
processDirr   R   s   <n<k< o< k	<
 < o< < o< n< k< < < < < <  j!<" #<$ %<& m'<( )<* +<, -<0 j1<2 l3<6 o7<8 n9<: ;<> ?<@ A<B C<D E<F G<H I<J K<L M<N O<P Q<R S<T iU<V W<X Y<Z o[<\ ]<^ _<` a<b c<f g<h i<j !k<l !m<n o<r w<D| ??h[)/kBG!**55g>CCE 12GWJK??l!!*-K@<<''"5"5F

)	'3/Cgz37G ax;#)??m**6;+VaKF#K0''1A"BC+Vo-&w<H%44X>E 33*19I*J*Q*QR]fo*Q*p'w&9&@&@PY&@&Z ':&&{3.&w<G%lG!__b{+Q 
V ((	s   /D/K K Kc                 2   U R                   R                  U5      R                  5       nUR                  (       a  U$ [	        SUS9  [	        SUS9  [	        SR                  [        U5      5      US9  UR                  (       a  [	        [        U5      US9  U$ )Nr   r   z_VBA_PROJECT stream:r   )	r   r   r   r   r   r%   r;   r   rB   )r   vbaProjectPathr   r   vbaProjectDatas        r   process_VBA_PROJECTr      sy    ''22>BGGIN	(%	
 {3	,

c.1
2E||gn%K8r   c           	         / n [        U SS5      nUS:w  a  U$ [        U SS5      nUS:  =(       a    US;  =(       d    US:H  nUS:  =(       a    US;  =(       d    US:H  nUS:*  =(       a    US:g  =(       d    S	Us=:  =(       a    S
:  Os  n[        U SS5      nUS:X  a  SnOSnSn	[        X	US5      u  pU	S-  n	[        R                  " S U
5       H  n[        X	US5      u  pUS:X  a  U	S-  n	O`U(       a  US:  d  U(       d  US:  a  X-  n	OAU(       a  X	S-      nOX	S-      nX-  n	[	        [        U5      5      S;   a  [        X	USSS5      n	U	S-  n	[        X	US5      u  pU(       d  M  [        X	USSS5      n	[        X	US5      u  pU(       a  U	S-  n	XS-   -  n	M     [        X	USSS5      n	[        X	USSS5      n	U	S-  n	[        X	USSS5      n	[        X	USSS5      n	[        X	USSS5      n	U	S-  n	[        X	US5      u  p[        R                  " S U5       H  n[        X	US5      u  pU(       a  X-  n	U(       a  U(       a  [        X	US5      u  pX-  n	[        X	USSS5      n	[        X	USSS5      n	[        X	US5      u  pUS
:  a  [        X	USSS5      n	[        X	USSS5      n	U	S-  n	US:w  a  U	S-  n	[        X	USSS5      n	U	S-  n	M     U	S-  n	[        X	USSS5      n	U	S-  n	[        X	US5      u  n	n[        X	US5      u  n	n[        X	US5      u  n	nU	S-  n	UU-   U-
  nUU-
  n[        R                  " S U5       H,  nU	S-  n	[        X	U5      u  nnU	S-  n	US:  a  U	S-  n	U	U-  n	M.     [        R                  " S U5       H  nSnSn[        X	U5      u  nnU	S-  n	US:X  a!  US:X  a  U	S-  n	[        X	U5      u  nnU	S-  n	SnUS-  (       a  U	S-  n	U(       a&  [        X	U	U-    5      nUR                  U5        U	U-  n	U(       a  M  U	S-  n	M     U$ ! [         a2  n[        SR                  U5      [        R                  S9   S nAU$ S nAff = f) Nr   r   ia  rO   [   )`   b   c   N   Y   _   k   rc   ru   r\   r   Fre   r   rM   )CDr9   rm   Td   Q   ri   ro   r6   r3      
Error: {}.r   )rG   rZ   	itertoolsrepeatr8   r   rV   r]   r   r   	Exceptionr   r%   sysstderr)r   identifiersmagicversion
unicodeRefunicodeNamenonUnicodeNamewordrF   rA   numRefs_	refLengthcr   numProjectsw0numIDsw1
numJunkIDsidTypeidLengthisKwdidentes                            r   getTheIdentifiersr     s   Ko73/F?.!S1$O<N1NdT[_cTc
$O<N1NdT[_cTc"d?AD]tgG\G\X\G\~q#.6>FF G!!!$0A &~vu MFA~!Y]jy[\}'F!*A:6*A:6'F3q6{j0!.~vuVWY^!_bLF!.&%HLFt&~vuaQVW"("OaKFB,&- 10 ~vuaO~vuaO!~vuaN~vuaN~vuaN$$^VUK!!$4A$^VUKOF!&,^VU&SOF!">65!USF">65!TRF~vuEIF$&~vuaQUV">65!TRFaKF$!">65!USFbLF) 5* 	!~vtQN!NFEB
FNFEB
!b[2%
b!!$
3AaKF/OFHaKF}!hF 4 !!$/AEE/OFHaKFAFaK!#3NF#S !}!~Vh5FGH""5)("5!# 0(   7l!!!$3::67s*   P EP -J#P 	P 
Q)'QQImp)mnemr   vargr9   EqvrO   XorOrrM   Andrc   Eqre   Nerg   Leri   Gerk   Ltrm   Gtro   Addrq   Subrs   Modru   IDivrw   MulDivrz   Concatr|   Liker~   Pwrr   Isr   Notr   UMi   FnAbs   FnFixr   FnIntr   FnSgn   FnLenr   FnLenBr   Parenr   Sharpr5   LdLHSnamer   Ldr   MemLdr   DictLdr   IndexLd0xr   ArgsLdr   	ArgsMemLdr   
ArgsDictLdr   Str   MemStr   DictStr   IndexStr   ArgsStr   	ArgsMemStr   
ArgsDictStr   Setr   Memsetr   Dictsetr   Indexsetr   ArgsSet3   
ArgsMemSet4   ArgsDictSet5   	MemLdWith6   
DictLdWith7   ArgsMemLdWith8   ArgsDictLdWith9   	MemStWith:   
DictStWith;   ArgsMemStWithr   ArgsDictStWithr   
MemSetWithr   DictSetWithr   ArgsMemSetWithr   ArgsDictSetWithA   ArgsCallB   ArgsMemCallC   ArgsMemCallWithD   	ArgsArrayE   AssertF   BoSr   BoSImplicitr   BoLr   LdAddressOfJ   MemAddressOfK   CaseL   CaseToM   CaseGtr   CaseLtO   CaseGeP   CaseLer   CaseNeR   CaseEqS   CaseElseT   CaseDoneU   CircleV   CloseW   CloseAllX   Coercer   	CoerceVarZ   Contextcontext_r   Debug\   DefType]   Dim^   DimImplicitr   Dor   DoEventsa   DoUnitilr   DoWhiler   Elser   	ElseBlocke   ElseIfBlockf   ElseIfTypeBlockimp_g   Endh   
EndContexti   EndFuncj   EndIfr   
EndIfBlockl   EndImmediatem   EndPropn   	EndSelecto   EndSubp   EndTypeq   EndWithr   Erases   Errort   	EventDeclfunc_u   
RaiseEventv   ArgsMemRaiseEventw   ArgsMemRaiseEventWithx   ExitDoy   ExitForz   ExitFunc{   ExitProp|   ExitSub}   FnCurDir~   FnDirr6   Empty0r   Empty1   FnError   FnFormat   
FnFreeFile   FnInStr   FnInStr3   FnInStr4   FnInStrB   	FnInStrB3   	FnInStrB4   FnLBound   FnMid   FnMidB   	FnStrComp   
FnStrComp3   FnStringVar   FnStringStr   FnUBound   For   ForEach   	ForEachAs   ForStep   FuncDefn   FuncDefnSave   GetRec   GoSub   GoTo   If   IfBlock   TypeOf   IfTypeBlock   
Implements)rD  rD  rD  rD     Input   	InputDone   	InputItem   Label   Let   Line   LineCont   	LineInput   LineNum   LitCy   LitDate   
LitDefault   LitDI2   LitDI4   LitDI8   LitHI2   LitHI4   LitHI8   
LitNothing   LitOI2   LitOI4   LitOI8   LitR4   LitR8   
LitSmallI2   LitStr   LitVarSpecial   Lock   Loop   	LoopUntil   	LoopWhile   LSet   Me   
MeImplicit   MemRedim)r?  rD  type_   MemRedimWith   
MemRedimAs   MemRedimAsWith   Mid   MidB   Name   New   Next   NextVar   OnError   OnGosub   OnGoto   Open   Option   
OptionBase   
ParamByVal   ParamOmitted   
ParamNamed   	PrintChan   
PrintComma   PrintEoS   PrintItemComma   PrintItemNL   PrintItemSemi   PrintNL   PrintObj   	PrintSemi   PrintSpc   PrintTab   PrintTabComma   PSet   PutRec   QuoteRem   Redim   RedimAs   Reparse   Rem   Resume   Return   RSet   Scale   Seek   
SelectCase   SelectIs   
SelectType   SetStmt   Stack   Stop   Typerec_   Unlock   VarDefnvar_   Wend   While   With   	WriteChan   ConstFuncExpr   LbConst   LbIf   LbElse   LbElseIfLbEndIfLbMarkEndForVariableStartForVariableNewRedimStartWithExprSetOrStEndEnumIllegal)	      i  i  i  i  i  i  i  c                 &   US:X  a  SU s=::  a  S::  a   U $   SU s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S	-   $   S
U s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S-   $   U S-   $ U S-   $ US:X  a  SU s=::  a  S::  a   U $   SU s=::  a  S::  a   U S-   $   SU s=::  a  S
::  a   U S-   $   SU s=::  a  S::  a   U S-   $   S U s=::  a  S::  a   U S-   $   SU s=::  a  S::  a   U S-   $   S!U s=::  a  S::  a   U S-   $   U S-   $ U S-   $ U(       dC  SU s=::  a  S"::  a   U $   S#U s=::  a  S$::  a   U S-   $   S%U s=::  a  S&::  a   U S-   $   U S-   $ U S-   $ U $ )'Nr   r   ro  rq  ru  rO   r   r  rM   r  r	  ri   r  r%  rk   r'  r)  rm   r+  r/  ro   r1  r  rq   r5  rc   rs  r9   r   r  rg   r  r-  r7  r9  r;  r=  rA  r   )opcodevbaVerr   s      r   translateOpcoder  [  sB   	1F!r!M "F!r!Q; "F!c!Q; "F!c!Q; "F!c!Q; "F!c!B; "F!c!B; "F!c!B; " B;6B;	1F!r!M "F!r!Q; "F!c!Q; "F!c!Q; "F!c!Q; "F!c!Q; "F!c!B; " B;6B; F!c!M "F!c!Q; "F!c!Q; " Q;6Q;r   c                     / SQnU nU S-  n  U S:  a+  U S-  n US:  a  U S-  n U(       a  U S-  n U S:  a  U S-  n X   $ US:  a  U S:  a  U S-  n X@   $ !   S	R                  U5      s $ = f)
N)z<crash>0AbsAccess	AddressOfAliasr   AnyAppendArrayAsrt  BBaseBFBinaryBooleanByRefByteByValCallr}  CBoolCByteCCurCDateCDecCDblCDeclChDirCIntr  CLngr  CompareConstCSngCStrCurDirzCurDir$CVarCVDateCVErrCurrencyDatabaseDatezDate$r  DecimalDeclareDefBoolDefByteDefCurDefDateDefDecDefDblDefIntDefLngDefObjDefSngDefStrDefVarr  DirzDir$r  r  DoubleEachr  ElseIfEmptyr  r  Enumr  r  r  zError$Event
WithEventsExplicitFFalseFixr  FormatzFormat$FreeFileFriendFunctionGetGlobalGor  Gotor  r  r  Inr  zInput$InputBr8  InStrzInputB$IntInStrBr0  IntegerLeftLBoundLenBLenLibr&  r(  r.  LoadLocalrT  LongrV  r\  r^  rk  zMid$rm  zMidB$r)  Modulero  rq  rs  r1  NothingNullObjectOnr}  r  Optionalr  Output
ParamArrayPreservePrintPrivatePropertyr  PublicPutr  Random	RandomizeReadReDimr  r  r  RGBr  r  r  SelectrO  SgnSharedSingleSpcStaticStepr  StrCompStringzString$r(  TabTextThenToTruer  r  UBoundUnloadr  UnknownUntilVariantWEndr  Widthr  Writer  z#Constz#Elsez#ElseIfz#Endz#If	AttributeVB_Base
VB_ControlVB_CreatableVB_CustomizableVB_Description
VB_Exposed
VB_Ext_Key	VB_HelpIDVB_Invoke_FuncVB_Invoke_PropertyVB_Invoke_PropertyPutVB_Invoke_PropertyPutRefVB_MemberFlagsVB_NameVB_PredecraredIDVB_ProcDataVB_TemplateDerivedVB_VarDescriptionVB_VarHelpIDVB_VarMemberFlagsVB_VarProcDataVB_UserMemIDVB_VarUserMemIDVB_GlobalNameSpace,r7   "r  !#&'()*+-z /r   ;r   z<=z<>=z=<z=>r\   z><z>=?\^z:=r9   r  rg   rM   r   rY  rd  z	id_{:04X})r%   )idCoder  r  r   internalNamesorigCodes         r   getIDr    s    !MF H
qLF,U?eOF{!aKFD=aKF&&{T>aKF ((,!!(++s   0A A A(c                 6    [        XU5      n[        XaXE5      nU$ r   )rG   r  )r<   r  rA   rF   r  r   objectID
objectNames           r   getNamer    s     vv.Hxf>Jr   c                     / SQn[        XXE5      nU[        U5      :  a  Xc   nOSnUS:X  a  SU-   S-   nUS:X  a  SnUS:X  a  SnO"US	:X  a  S
nOUS:X  a  SnUS:X  a  SnOUS:w  a  SnXx-   S-   $ )N)r3   r  %r  r  r  @r  $r  r  r  r  r  r3   r   []rw  r9   z(Resume Next)rO   z(GoTo 0)r  z(Next)r   r!   )r  r;   )	r
  r  mnemonicopTyper  r   varTypesvarNamestrTypes	            r   
disasmNamer    s    THDv7GH"R<Gmc)G	Y	q[%Gq[ G	X	q[Gq[Gs""r   c                    US:w  a?  US:X  a%  [        U 5      US-   :  a  [        XUS-   XVU5      nU$ SR                  X#5      n U$ / SQn	/ SQn
US-  nUS	-  S-	  nUS
-  S-	  nSnUS-  (       a  US-  nO;US-  (       a  US-  nO+US-  (       a  US-  nOUS-  (       a  US-  nOUS:X  a  US-  nU(       a  U[        U	5      ::  a  USXS-
     -   -  nU(       a,  US-  (       a  US-  nOU[        U	5      ::  a  USXS-
     -   -  nUS-  nU$ )Nr}  r  ri   re   z	{}{:04X} )rU  rm  
Read Write)r  rm  rU  r  i   i   rq   z(For r9   r  rO   rK  rM   rS  r  r   r  z Access z Sharedz Lock r  )r;   r  r%   )objectTabler  argr
  r  rF   r  r   impName
accessModelockModemodeaccesslocks                 r   	disasmImpr    sI   6&=c+.$(:kq&RYZG8 N5 "((3G4 N1 5
4f}-Q&-B&D[wGD[xGD[xGD[xGT\xGvZ0zJz$:::Gd{9$Z(8hax&8883Nr   c                 b    [        XUS-   X4U5      n[        XS-   U5      nUS-  S:X  a  SU-   nU$ )NrO   r|   r9   r   z
(Private) )r  rG   )indirectTabler  dwordrF   r  r   r  optionss           r   	disasmRecr    sC    UQYPWXJmRZ8G!!J.
r   c                 l    / SQnU S-  nU S-  n U [        U5      :  a  X   nOSnUS-  (       a  US-  nU$ )Nr3   rG  r<  rD  r[  r$  r  r  r`  rH  r  r  rj  r3   r  r3   r3   r  r  ir3   r   Ptr)r;   )typeIDdimTypes	typeFlagstypeNames       r   getTypeNamer  
  sL     iHI
eOFH#4EOr   c                 z    / SQn[        XS-      5      nU[        U5      :  a  X#   nU$ SR                  U5      nU$ )Nr  re   ztype_{:08X})r   r;   r%   )r  r  r  r  r  s        r   
disasmTyper    sM     iHqy)*FH# O !''.Or   c                 *   U(       a  g[        XU5      n[        XU5      nUS-  (       a  [        X5      n	U	$ [        XS-   U5      n
U
S:X  a  Sn	U	$ U
S-	  S-  nUS-   [        U5      :  a  g[        XU5      n[        XS-   U5      n[	        XXV5      n	U	$ )Nr3   rO   r   rm   rM   re   )rK   rG   r  r;   r  )r  r  r  rA   rF   r  r   typeDescflagsr  r
  offshlNames                r   disasmObjectr    s    v6HMV4Et|m60 O- }lF;19H( O% AI#Dax#k**[7E[(F;F V&BHOr   c           	         [        X   5      n[        XS-      5      nUS-  S:g  n	US-  S:g  n
[        XUS-   XEU5      nU
(       d  U	(       a  SnU
(       a  US-  nU	(       a  US-  nU	(       ah  U(       a  SnOS	n[        XU-   S-   U5      nUS
:X  a  [        XU-      5      n[        U5      nO[	        XX#U-   XEU5      n[        U5      S:  a  USU-   -  n[        U5      S:  a  USU-   S-   -  nU$ )Nr9   r   r   rO   r3   rq  r!   r   rq   rP   zAs z (r  )r   r  rG   r  r  r;   )r  r  r  r  rF   r  r   bFlag1bFlag2hasAshasNewr  varTyper  r
  r  r  s                    r   	disasmVarr  @  s   %&Fqy)*Ftm!Etm!Fm%!)VWUGuG3=$,*:FCDv~]4<89&v.'KY]Q]_eovw8}q 58++w<!tg~++GNr   c                 X   [        XU5      nU(       a  SnOSn[        XUS-   X4U5      n[        XU-   S-   U5      n	[        XU-   S-   U5      n
U
S-  (       a  SU-   nU
S-  (       a  SU-   nU
S-  (       a  S	U-   nUS
-  (       a%  US-  nSnU	S-  (       a  U	S-  n[        U5      nX-  nU$ )NrM   r   rO   rq   r5  zByVal zByRef i   z	Optional r    As r3         r  )rG   r  rK   r  )r  r  	argOffsetrF   r  r   r  r  argNameargTypeargOptsargTypeName	argTypeIDs                r   	disasmArgr  ]  s    Mf5Em)a-QXYG}$&6&;VDGm%5%:FCGW$W$' 6Z*,I%i0K 	Nr   c                    Sn[        XU5      n	[        XUS-   XVU5      n
US:  a  SnOSnU(       a  US-  n[        XU-   S-   U5      n[        XU-   S-   U5      n[        XU-   S	-   U5      n[        XU-   S
-      5      n[        XU-   S-      5      nSnUS:  a%  US-  S:X  a  U(       d  US-  nUS-  (       a  US-  nOU	S-  S:X  a  US-  nUS-  (       a  US-  nU	S-  (       a  US-  nUS-  S:X  a  US:w  a  U(       d  SnUS-  nUS:  a  US-  (       a  US-  nU	S-  S:g  nU	S-  (       a  US;   a  US-  nO5US-  nO/U	S-  (       a  US-  nOU	S-  (       a  US -  nOU	S!-  (       a  US"-  nX-  nU(       a  [        XUS-   XVU5      nUS#U-   S$-   -  n/ nUS%:w  ae  US:w  a_  US&-   [	        U 5      :  aM  [        XXXg5      nUR                  U5        [        XS'-   U5      nUS%:w  a  US:w  a  US&-   [	        U 5      :  a  MM  USS(R                  U5      -   S)-   -  nU(       a7  US*-  nS+nUS,-  S,:X  a  US--  n[        U5      nO[        XUS.-   XVU5      nUU-  nUS)-  nU$ )/Nr  rO   rc   rM   r   r   r   r   r   rZ  r`  FzPrivate zFriend ri   zPublic r   zStatic r  rP   TzDeclare r   zPtrSafe i   )rO   re   z	Function zSub i    zProperty Get i @  zProperty Let i   zProperty Set z Lib "z" rN   r   r   , r  r  r3   r  r  re   )	rG   r  rK   r   r;   r  r   r-   r  )r  declarationTabler  r  r  rF   r  r   funcDeclr  subNameoffs2r  retType
declOffsetcOptionsnewFlags
hasDeclarer  libNameargListr  r  r  s                           r   
disasmFuncr  {  s   HM&1Em%!)VWUGz(:FCI(:FCG(:FCJ=!345H=!345HJz1$g
"Hf	!HFNq 
"H}Iv~I	DQZ6%97
Jzd?
"HV^!Ev~V#HH	O#	O#	O#H*aY`aHw&--G
"ai"nsS`Oa>aM	6[w]NFC	 
"ai"nsS`Oa>a dii((3..HFj Z/z)F"6*H}7Q;X_`HHOHOr   c           	         XX#-    nSR                  U5      n	US;   a  U	S[        U5      -   S-   -  n	U	$ US;   ax  Un
/ n[        R                  " S [	        US-  5      5       H-  n[        X
US5      u  pUR                  [        XXg5      5        M/     U	SR                  S U 5       5      S	-   -  n	U	$ S	R                  S
 U 5       5      nX-  n	U	$ )Nz	0x{:04X} )rP  r  r  r  r  )ry  r{  rO   Fr  c              3   $   #    U  H  ov   M     g 7fr   r   )r'   vs     r   r)   disasmVarArg.<locals>.<genexpr>  s     04a4s   r!   c              3   V   #    U  H  nS R                  [        U5      5      v   M!     g7fr#   r$   )r'   r  s     r   r)   r    s      FIq8??3q622Ir+   )	r%   r   r   r   intrZ   r   r  r-   )
moduleDatar  rA   r   r  rF   r  r   	substring
varArgNameoffset1varsr  r
  rB   s                  r   disasmVarArgr    s    &"23I##G,J;;cF9--33
  
*	*!!$GaK(89A":FMGKKdAB : 	dii0400366
  ((FIFF
r   c                 8   / SQn/ SQn/ SQnU
(       a   US:  a  [        SR                  U5      SUS9  [        SR                  U5      US	9  US::  a  g U
(       a  [        [        XX-    5      US	9  UnX-   nUU:  Ga  [        U UUS
5      u  nnUS-  S-	  nUS-  n[	        UXE5      nU[
        ;  a  [        SR                  UU5      US	9  g [
        U   nUS   n[        SSUS9  U
(       a  [        SR                  U5      SUS9  [        SR                  U5      SUS9  US;   a]  U[        U5      :  a  [        SR                  UU   5      SUS9  GOUS:X  a  [        SSUS9  GOo[        SR                  U5      SUS9  GOSUS;   a  / nUS-  (       a  UR                  S5        OSUS-  (       a  UR                  S5        O7US-  (       a  UR                  S5        OUS-  (       a  UR                  S 5        US!-  (       a  US":w  a  UR                  S#5        [        U5      (       a)  [        SR                  S$R                  U5      5      SUS9  OUS%:X  a  [        S&R                  UU   5      SUS9  O]US';   a  US:  a  [        S(SUS9  OEUS-  nO?US):X  a  [        S*R                  UU   5      SUS9  OUS+;   a  US-  (       a  [        S,SUS9  US-    GHL  nUS.:X  a<  [        U UUS
5      u  nn[        UUUUXE5      n[        S/R                  U5      SUS9  MF  US0;   a=  [        U UUS
5      u  nn[        XvUUUX4U5      n[        S/R                  U5      SUS9  M  US1;   d  M  [        U UUS25      u  nnUS3:X  a<  [        U5      US4-   :  a*  [        XUX4U5      n[        S/R                  U5      SUS9  GO*US5:X  a9  [        U5      US6-   :  a'  [        UU5      n[        S7R                  U5      SUS9  OUS8:X  a  [        U5      US-   :  au  US-  (       a  [        S9SUS9  [        XUUX4U5      n[        S/R                  U5      SUS9  US-  (       a,  [        U UU5      nUS:-  n[        S;R                  U5      SUS9  O^US<:X  a=  [        U5      US=-   :  a+  [        XUUUX4U5      n [        S/R                  U 5      SUS9  O[        S>R                  UU5      SUS9  U(       d  GM  US?:X  d  GM!  [        U UUS25      u  nn[        S@R                  U5      SUS9  GMO     USA   (       aO  [        U UUS
5      u  nn![!        XUU!UX4U5      n"[        S/R                  U"5      SUS9  UU!-  nU!S!-  (       a  US!-  n[        SUS	9  UU:  a  GM  g g )BN)Varr  r:  LngSngDblCurr  StrObjErrBoolr  )r-  re  rG  r'  )zBase 0zBase 1zCompare TextzCompare Binaryr+  zPrivate Moduler   z{:04X}: r3   r   zLine #{:d}:r   Fi rm   i  z0Unrecognized opcode 0x{:04X} at offset 0x{:08X}.r  	z{:04X} z{} )r  r  r  z({}) rz   z(Byte) z({:d}) )r  r  r  rM   r4  ri   rQ  r   rO  r   r]  r9   r  r  r!   rR  z({}))rl  rn  rp  z(Call) r  z ({}))r  r  z(Preserve) r   r?  z{})rD  r  )r  r  r  rc  r  Tr  r   rc  rg   z(As {})r  z(WithEvents) rO   z	 0x{:04X}r  r   z	{}{:08X} r  z{:08X} r  )r   r%   rB   rZ   r  opcodesr;   r   r-   r  r  r  r  r  rG   r  r  )#r  	lineStart
lineLengthrF   r  r   r  r  r  r  r   liner   varTypesLongspecialsr  rA   	endOfLiner  r  translatedOpcodeinstructionr  dimTyper  r
  theNametheImpr  theRectheTypetheVartheFuncr   	theVarArgs#                                      r   dumpLiner    so   nL1HbGJNj	*E	-

t
$;7Qgj9+ABC+VF&I
9

FFEB7"r)&*66C7*DKKFTZ[bmn./v&d-)""6*Eell8$";?99L))gnn\&%9:U2iRk:i&&v.B[I77G$x($x($y)$x(H$6w'7||gnnSXXg%67RkR(&-- 01rLGG{iRk:"!'..1rL--{m+>v&Cf}%j&&%H$T;&&Zdkk'*E&%j&&%H";S$RXbijdkk&)rDFF &z664 HVm#m*<
*J&}5&ZabF$++f-2KHWn3}+=+J(>G)**73+NVm#m*<
*J}o2KH&};PUW]gnoF$++f-2KH}&z66B!k006B[QWn3}+=+K(+W\^dflv}~G$++g.B[I+,,S%8b{S7z 1$*:vvt$LMFE)**51rLC 'D v$ZGOFG$ZfgxY_ipqI$++i(b{CgF{!b{#q 9

r   c                    UR                   (       a$  UR                  (       d  [        [        U 5      US9  [	        U SS5      S:  a  SnOSnSn [	        USU5      n	UR                   (       a  [        SR                  U	5      US9  U	S:  a  U	S	:  a  S
nOSnU(       a(  [        U SU5      n
U SSU
-    n[        U SU5      n
U
S-   nO'[        U SU5      n
U SSU
-    n[        U SU5      n
U
S-   n[        XU5      n
US-  nXX-    n[        U SU5      n
U
S-   n[        XU5      n
US-  nXX-    nSnOSnSn[        U UU5      n
US-   nU UUU
-    n[        U UUSSS5      nUS-  n[        U UUSSS5      n[        U UUSSS5      nUS-  n[        U UUSSS5      nUS-   n[        U UU5      n
U
S-   nU
S-   n[        U UU5      n
XX-    n[        U UU5      n
U
S-   n[        U UU5      n
US-  nU UUU
-    nUS-  nUR                   (       a  [        U5      (       a  [        SUS9  [        [        U5      US9  [        U5      (       a  [        S US9  [        [        U5      US9  [        U5      (       a  [        S!US9  [        [        U5      US9  [        U UU5      n
U
S"-   n[        U UUS5      u  nnUS#:w  a  g US-  n[        U UUS5      u  nnUUS-  -   S-   n[        U5       HM  nUS-  n[        U UUS5      u  nnUS-  n[        U UUS5      u  nn[        U UU-   UXxXCXXR                   UUS$9  MO     g ! [         a1  n[        S%R                  U5      [        R                  S9   S nAg S nAff = f)&Nr   rO   r   r  r\   r   z"Internal Office version: 0x{:04X}.r   r  rg   re   ro  r   rz   rq   r   rm   rM   rc   r  r   ro   Tr9   Fr   r   ri   ru   r  zDeclaration table:zIndirect table:zObject table:r   i  r   r   )r   r   r   rB   rG   r%   rK   rV   r;   rZ   ranger  r  r  r  )r  r   r   r  r   r   r   rF   r  r  dwLengthr  
tableStartr  	dwLength2r  rA   r  r  numLines
pcodeStartr  r  
lineOffsetr  s                            r   	pcodeDumpr  ;  s    ||DOOgj!4z1c"T)FQ7.!V4<<6==gF[Y d?$#J?#-fVh5F#G #J?%]
#J?#-fVh5F#G #J?%]

?H!OJ&*2GHM
FF;H 4I
v>HNI$y/CDKF FF
FF;HA:D)$th?":vvq%PFbLF":vvub%PF":vvq%PFaKF":vvq%PFA:D
D&9H!BJb=D
D&9H&*2GHM
FF;Hf$D
D&9HAID$T$/:KbLF<<#$$*=g./kB=!!'k:gm,;?;oK8gk*=J7F"z665AF?!!*ffeDhm+b0
(ODaKF!'
FFE!JFJaKF!'
FFD!IFJZj!8*fV] 1A<<QUcnp $   7l!!!$3::6
7s    I*L8 :A=L8 8
M3'M..M3c                 N    U R                  5       nUc  g UR                  5       (       a   [        (       a  [        R                  " 5         U GH_  u  pEn[        SUS9  UR                  (       d  [        SR                  U5      US9  [        XXS9u  pxn	US-   n
[        X
XS9n[        U5      nUR                  (       d[  [        SUS9  [        SUS9  SnU H!  n[        S	R                  X5      US9  US
-  nM#     [        SUS9  [        SUS9  [        SUS9  [        SUS9  U H  nUS-   U-   n[        (       a  UR                  SSS9nOUnU R                  R                  U5      R                  5       n[        SR                  U[!        U5      5      US9  [#        UXXXS9  M     GMb     UR                  5       (       a"  [        (       a  [        R$                  " 5         g g g ! [&         a1  n[        SR                  U5      [(        R*                  S9   S nAg S nAff = f)NzO===============================================================================r   zdir stream: {}r  zVBA/_VBA_PROJECTzIdentifiers:r3   r   z
{:04X}: {}r9   z_VBA_PROJECT parsing done.r   zModule streams:zVBA/r   r   r   z{} - {:d} bytesr   )find_vba_projectsisattyWIN_UNICODE_CONSOLEwin_unicode_consoleenabler   r   r%   r   r   r  r   r   r   r   r   r;   r  disabler  r  r  )r   r   r   vbaProjectsvbaRootr  r   r   r   r   r   r   r  r(   
identifiermodule
modulePathmodulePath_unicoder  r  s                       r   processProjectr*    s   (7113$7$7&&(#.G(-??&--g6[I,6y4,i)G'$'99N0DjN+N;K??n;7b{+"-J,--a<;OFA #. b{+2Eh[1#+6%$v-6
7)3):):6)):)T& *4&&//::;MNSSU
(//
C
OLS^_*n{UYs &' $/> $7$7'') %8 7l!!!$3::67s   G) GG) )
H$3'HH$c                 j   [        SR                  U 5      US9  S n [        U 5      nUR                  c  UR                   H  n[        XAUS9  M     O[        X1US9   U(       a  UR                  5         g g ! [         a1  n[        SR                  U5      [        R                  S9   S nANOS nAff = f)NzProcessing file: {}r   r  r   )
r   r%   r   r   ole_subfilesr*  r  r  r  close)fileNamer   r   r   subFiler  s         r   processFiler0    s    	

&
&x
0{CI7x(	%$11w+F 2 9D    7l!!!$3::67s   5A7 
A7 7
B2'B--B2c            	         [         R                  " SS9n U R                  SSSSR                  [        5      S9  U R                  SS	S
SS9  U R                  SSSS
SS9  U R                  SSS
SS9  U R                  SSSS SS9  U R                  SSSS9  U R                  5       nSn [        R                  nUR                  b  [        UR                  S5      nUR                   GH  n[        R                  R                  U5      (       a  [        R                  " U5       Hp  u  pEnU H,  n[        R                  R                  XG5      n[!        XUS 9  M.     UR"                  (       d  MK  [%        U5      S:  d  M\  US	 [%        U5      S:  a  M  Mr     M  [        R                  R'                  U5      (       a  [!        XAUS 9  M  [)        S!R                  U5      [        R*                  S"9  GM     UR                  b  WR/                  5         [        R0                  " U5        g ! [,         a3  n	[)        S#R                  U	5      [        R*                  S"9  S$n S n	A	NlS n	A	ff = f)%Nz-Dumps the p-code of VBA-containing documents.)descriptionz-vz	--versionr  z%(prog)s version {})actionr  z-nz--norecurse
store_truezDon't recurse into directories)r3  helpz-dz--disasmonlyr   z!Only disassemble, no stream dumps)destr3  r5  z-bz	--verbosezDump the stream contentsz-oz--output
outputfilezOutput file name)r6  defaultr5  	fileOrDirr  zFile or dir)nargsr5  r   wr  z{} does not exist.r   r   )argparseArgumentParseradd_argumentr%   __VERSION__
parse_argsr  stdoutr7  openr9  ospathisdirwalkr-   r0  	norecurser;   isfiler   r  r  r-  exit)
parserr   
errorLevelr   r?  
subdirListfileListfnamefullNamer  s
             r   mainrQ    s   $$1`aF
k) 5 < <[ I  K
mL=  ?
n<@  B
k,7  9
j|T/  1
3]CDJjj??&t4KNNDww}}T""24''$-.Dh!)#%77<<#<#HL "* ~~~!*o1 *1 "*o1 3@ %%DK@*11$7cjjI #  "HHZ  l!!!$3::6
s,   (CH+ 0H+ H+ A"H+ +
I(5)I##I(__main__)r   )=
__future__r   r   r   rD  r  r=  r   r!  r   ImportErrorstructr   oletools.olevbar   r	   oletools.commonr
   version_infor   r   r   r  r:   r   __description____license____uri__r@  
__author__	__email__rB   rG   rK   rV   rZ   r]   rB  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r0  rQ  __name__r   r   r   <module>r_     s   & &  	 
     9 %


1

!
A F1 .
0 
!	88< 69ZZ y)v FIZZ 	rpI2V[]I2V[]I 2V[]I 2V[]	I
 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I 2V[]I  2V[]!I" 2V[]#I$ 2V[]%I& 2V[]'I( 2V[])I* 2V[]+I, 2V[]-I. 2V[]/I0 2V[]1I2 2V[]3I4 2V[]5I6 2V[]7I8 2V[]9I: 2V[];I< 2V[]=I> 2V[]?I@ F8V[]AIB F8V[]CID F8V[]EIF F8V[]GIH D6V[]IIJ Fd3CV[]KIL Fd3CV[]MIN Fd3CV[]OIP F8V[]QIR F8V[]SIT F8V[]UIV D6V[]WIX Fd3CV[]YIZ Fd3CV[][I\ Fd3CV[]]I^ F8V[]_I` F8V[]aIb F8V[]cId D6V[]eIf Fd3CV[]gIh Fd3CV[]iIj Fd3CV[]kIl F8V[]mIn F8V[]oIp Fd3CV[]qIr !Fd3CV[]sIt F8V[]uIv F8V[]wIx Fd3CV[]yIz !Fd3CV[]{I| F8V[]}I~ F8V[]I@ !Fd3CV[]AIB "Fd3CV[]CID Fd3CV[]EIF Fd3CV[]GIH "Fd3CV[]IIJ Fd3CV[]KIL 2V[]MIN D6V[]OIP 2V[]QIR 2V[]SIT F8V[]UIV F8V[]WIX 2V[]YIZ 2V[][I\ 2V[]]I^ 2V[]_I` 2V[]aIb 2V[]cId 2V[]eIf 2V[]gIh 2V[]iIj 2V[]kIl D6V[]mIn D6V[]oIp 2V[]qIr 2V[]sIt 2V[]uIv J<V[]wIx 2V[]yIz D$<V[]{I| 2V[]}I~ 2V[]I@ 2V[]AIB 2V[]CID 2V[]EIF 2V[]GIH 2V[]IIJ 2V[]KIL 2V[]MIN "F8V[]OIP 2V[]QIR 2V[]SIT 2V[]UIV 2V[]WIX 2V[]YIZ 2V[][I\ 2V[]]I^ 2V[]_I` 2V[]aIb 2V[]cId 2V[]eIf D6V[]gIh 2V[]iIj G9V[]kIl FD>V[]mIn $FD>V[]oIp (FD>V[]qIr 2V[]sIt 2V[]uIv 2V[]wIx 2V[]yIz 2V[]{I| 2V[]}I~ 2V[]I@ 2V[]AIB 2V[]CID 2V[]EIF 2V[]GIH 2V[]IIJ 2V[]KIL 2V[]MIN 2V[]OIP 2V[]QIR 2V[]SIT 2V[]UIV D6V[]WIX 2V[]YIZ 2V[][I\ 2V[]]I^ 2V[]_I` 2V[]aIb 2V[]cId D6V[]eIf 2V[]gIh 2V[]iIj F8V[]kIl 2V[]mIn G9V[]oIp G9V[]qIr 2V[]sIt F8V[]uIv F8V[]wIx 2V[]yIz 2V[]{I| F8V[]}I~ F8V[]I@ 3KV[]AIB 2V[]CID 2V[]EIF 2V[]GIH F8V[]IIJ 2V[]KIL D6V[]MIN 2W[]OIP 2V[]QIR F8V[]SIT 3KV[]UIV 3KV[]WIX 2V[]YIZ D6V[][I\ D$<V[]]I^ 3KV[]_I` D6V[]aIb D$<V[]cId 3KV[]eIf 2V[]gIh D6V[]iIj D$<V[]kIl 3KV[]mIn D$<V[]oIp 3KV[]qIr 2V[]sIt 2W[]uIv 2V[]wIx 2V[]yIz 2V[]{I| 2V[]}I~ 2V[]I@ 2V[]AIB 2V[]CID 2V[]EIF 3JV[]GIH 3JV[]IIJ 3JV[]KIL !3JV[]MIN 2V[]OIP 2V[]QIR 2V[]SIT F8V[]UIV 2V[]WIX 2V[]YIZ F8V[][I\ 2W[]]I^ 2W[]_I` D6V[]aIb 2V[]cId 2V[]eIf 2V[]gIh 2V[]iIj F8V[]kIl 2V[]mIn 2V[]oIp 2V[]qIr !2V[]sIt 2V[]uIv 2V[]wIx 2V[]yIz 2V[]{I| 2V[]}I~ 2V[]I@ 2V[]AIB 2V[]CID D6V[]EIF 2V[]GIH D6W[]IIJ 3JV[]KIL 3JV[]MIN 2W[]OIP 2W[]QIR F8V[]SIT 2V[]UIV 2V[]WIX D6V[]YIZ 2V[][I\ 2V[]]I^ F8V[]_I` 2V[]aIb 2V[]cId D$<V[]eIf 2V[]gIh F8V[]iIj 2V[]kIl F8V[]mIn 2V[]oIp 2V[]qIr 2V[]sIt 2V[]uIv 2V[]wIx F8V[]yIz 2V[]{I| 2V[]}I~ 2V[]I@ 2V[]2V[]!2V[]#2V[]2V[] 2V[]F8V[]2V[]2V[]QIV1f6,p
#.B
B:<DL$ dgcmcmg$R ^a]g]g \| 36** )7V -0JJ  %N zF ['    s   i ii