§
    aÒ³g‚  ã            
       ó\  — d dl Z e j        j        dk     reefZneZeZdZdZ	d„ Z
dZdZdZd	„ ZeZd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd dlZd dlZd dlZd dlZ ej        d¦  «        Zddddddddddœ	Zd„ Z G d„ de¦  «        Z  G d„ de¦  «        Z!e"d k    ršd dl#m$Z$  e$j$        ¦   «         Z%d dl Z  e&e j'        d!         ¦  «        Z(e( )                    ¦   «         Z* e!e%¦  «        Z+e+ ,                    e*e j'        d!         ¦  «         	 e+ -                    ¦   «         Z.e.sdS  e/e+j0        e.¦  «         Œ*dS )"é    Né   )
ÚCPP_IDÚCPP_INTEGERÚ	CPP_FLOATÚ
CPP_STRINGÚCPP_CHARÚCPP_WSÚCPP_COMMENT1ÚCPP_COMMENT2Ú	CPP_POUNDÚ
CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"c                 ó`   — | j         xj        | j                             d¦  «        z  c_        | S )z\s+ú
©ÚlexerÚlinenoÚvalueÚcount©Úts    úO/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pycparser/ply/cpp.pyÚt_CPP_WSr      ó'   € à„G€N„N�a”g—m’m DÑ)Ô)Ñ)€N„NØ€Hó    z\#z\#\#z[A-Za-z_][\w_]*c                 ó   — | S )zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)© r   s    r   r   r   +   s   € à€Hr   z?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?c                 ó`   — | j         xj        | j                             d¦  «        z  c_        | S )z\"([^\\\n]|(\\(.|\n)))*?\"r   r   r   s    r   Út_CPP_STRINGr   5   r   r   c                 ó`   — | j         xj        | j                             d¦  «        z  c_        | S )z(L)?\'([^\\\n]|(\\(.|\n)))*?\'r   r   r   s    r   Ú
t_CPP_CHARr    ;   r   r   c                 óŽ   — | j                              d¦  «        }| j        xj        |z  c_        d| _        |rd|z  nd| _         | S )z(/\*(.|\n)*?\*/)r   r	   ú )r   r   r   r   Útype)r   Úncrs     r   Út_CPP_COMMENT1r%   A   sF   € à
Œ'�-Š-˜Ñ
Ô
€CØ„G€N„N�cÑ€N„Nà€A„F¨sÐ!; ¨¡ ¸�q”wØ€Hr   c                 ó"   — d| _         d| _        | S )z(//.*?(\n|$))r	   r   )r#   r   r   s    r   Út_CPP_COMMENT2r'   J   s   € ð €A„F �q”wØ€Hr   c                 ó‚   — | j         d         | _        | j         d         | _         | j                             d¦  «         | S ©Nr   é   )r   r#   r   Úskipr   s    r   Út_errorr,   P   s2   € ØŒW�QŒZ€A„FØŒg�aŒj€A„GØ„G‡L‚L��O„O€OØ€Hr   z\?\?[=/\'\(\)\!<>\-]ú#ú\ú^ú[ú]ú|Ú{Ú}ú~)	ú=ú/ú'ú(ú)ú!ú<ú>ú-c                 ó:   — t                                d„ | ¦  «        S )Nc                 óL   — t           |                      ¦   «         d                  S ©Néÿÿÿÿ)Ú_trigraph_repÚgroup)Úgs    r   ú<lambda>ztrigraph.<locals>.<lambda>z   s   € ¥}°Q·W²W±Y´Y¸r´]Ô'C€ r   )Ú_trigraph_patÚsub)Úinputs    r   ÚtrigraphrJ   y   s   € Ý×ÒÐCÐCÀEÑJÔJÐJr   c                   ó   — e Zd Zdd„ZdS )ÚMacroNFc                 ój   — || _         || _        || _        || _        |r|d         | _        d | _        d S rA   )Únamer   ÚarglistÚvariadicÚvarargÚsource)ÚselfrN   r   rO   rP   s        r   Ú__init__zMacro.__init__�   s<   € ØˆŒ	ØˆŒ
ØˆŒØ ˆŒØð 	&Ø! "œ+ˆDŒKØˆŒˆˆr   )NF)Ú__name__Ú
__module__Ú__qualname__rT   r   r   r   rL   rL   Œ   s(   € € € € € ðð ð ð ð ð r   rL   c                   ó†   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd„ Zd„ Zdi fd„Zd„ ZdS )ÚPreprocessorNc                 ób  — |€t           j        }|| _        i | _        g | _        g | _        |                      ¦   «          t          j        ¦   «         }|                      dt          j	        d|¦  «        z  ¦  «         |                      dt          j	        d|¦  «        z  ¦  «         d | _
        d S )Nz__DATE__ "%s"z%b %d %Yz__TIME__ "%s"z%H:%M:%S)Úlexr   ÚmacrosÚpathÚ	temp_pathÚlexprobeÚtimeÚ	localtimeÚdefineÚstrftimeÚparser)rS   r   Útms      r   rT   zPreprocessor.__init__ž   s™   € Øˆ=Ý”IˆEØˆŒ
ØˆŒØˆŒ	ØˆŒð 	�Š‰ŒˆåŒ^ÑÔˆØ�ŠÐ%­¬°jÀÑ(DÔ(DÑDÑEÔEÐEØ�ŠÐ%­¬°jÀÑ(DÔ(DÑDÑEÔEÐEØˆŒˆˆr   c                 ó¤   — g }| j                              |¦  «         	 | j                              ¦   «         }|sn|                     |¦  «         Œ2|S ©N)r   rI   ÚtokenÚappend)rS   ÚtextÚtokensÚtoks       r   ÚtokenizezPreprocessor.tokenize´   s[   € ØˆØŒ
×Ò˜ÑÔÐð	Ø”*×"Ò"Ñ$Ô$ˆCØÐ˜Ø�MŠM˜#ÑÔÐð	ð ˆr   c                 ó0   — t          d|||fz  ¦  «         d S )Nz%s:%d %s)Úprint)rS   ÚfileÚlineÚmsgs       r   ÚerrorzPreprocessor.errorÃ   s!   € Ýˆj˜D  c˜?Ñ*Ñ+Ô+Ð+Ð+Ð+r   c                 óÄ  — | j                              d¦  «         | j                              ¦   «         }|r|j        dk    rt	          d¦  «         n|j        | _        | j                              d¦  «         | j                              ¦   «         }|rt          |j        ¦  «        dk    rt	          d¦  «         n%|j        | _        t          |j        ¦  «        | _	        | j                              d¦  «         | j                              ¦   «         }|r|j        dk    rt	          d¦  «         n|j        | _
        | j                              d¦  «         | j                              ¦   «         }|r|j        dk    rd | _        n|j        | _        | j                              d	¦  «         | j                              ¦   «         }|r|j        d	k    rd | _        t	          d
¦  «         n|j        | _        | j        | j        f| _        g d¢}|D ]T}| j                              |¦  «         | j                              ¦   «         }|r|j        |k    rt	          d|z  ¦  «         ŒUd S )NÚ
identifierz"Couldn't determine identifier typeÚ12345i90  zCouldn't determine integer typez
"filename"zCouldn't determine string typez  r   z%Couldn't determine token for newlines)	r<   r=   r-   ú##r.   r9   r:   ú,ú.z,Unable to lex '%s' required for preprocessor)r   rI   rh   r   ro   r#   Út_IDÚintÚ	t_INTEGERÚt_INTEGER_TYPEÚt_STRINGÚt_SPACEÚ	t_NEWLINEÚt_WS)rS   rl   ÚcharsÚcs       r   r_   zPreprocessor.lexprobeÏ   sc  € ð 	Œ
×Ò˜Ñ&Ô&Ð&ØŒj×ÒÑ Ô ˆØð 	!�c”i <Ò/Ð/ÝÐ6Ñ7Ô7Ð7Ð7àœˆDŒIð 	Œ
×Ò˜Ñ!Ô!Ð!ØŒj×ÒÑ Ô ˆØð 	2•c˜#œ)‘n”n¨Ò-Ð-ÝÐ3Ñ4Ô4Ð4Ð4à œXˆDŒNÝ"& s¤y¡/¤/ˆDÔð 	Œ
×Ò˜Ñ(Ô(Ð(ØŒj×ÒÑ Ô ˆØð 	%�c”i >Ò1Ð1ÝÐ2Ñ3Ô3Ð3Ð3àœHˆDŒMð 	Œ
×Ò˜ÑÔÐØŒj×ÒÑ Ô ˆØð 	$�c”i 4Ò'Ð'ØˆDŒLˆLàœ8ˆDŒLð 	Œ
×Ò˜ÑÔÐØŒj×ÒÑ Ô ˆØð 	&�c”i 4Ò'Ð'Ø!ˆDŒNÝÐ9Ñ:Ô:Ð:Ð:à œXˆDŒNà”\ 4¤>Ð2ˆŒ	ð 9Ð8Ð8ˆØð 	Jð 	JˆAØŒJ×Ò˜QÑÔÐØ”*×"Ò"Ñ$Ô$ˆCØð J˜#œ) qš.˜.ÝÐDÀqÑHÑIÔIÐIøð		Jð 	Jr   c                 ó:   — | j                              |¦  «         d S rg   )r]   ri   )rS   r]   s     r   Úadd_pathzPreprocessor.add_path  s   € ØŒ	×Ò˜ÑÔÐÐÐr   c              #   ó¼  K  — | j                              ¦   «         }d„ |                     ¦   «         D ¦   «         }t          t	          |¦  «        ¦  «        D ]‰}|dz   }||                              d¦  «        rg|t	          |¦  «        k     rT||         d d…         ||         z   ||<   d||<   |dz  }||                              d¦  «        r|t	          |¦  «        k     °TŒŠd                     |¦  «        } |j        |¦  «         d|_        g }	  |j	        ¦   «         }|sn3| 
                    |¦  «         |j        | j        v rd|j        v r|V — g }ŒE|r|V — d S d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Úrstrip©Ú.0Úxs     r   ú
<listcomp>z,Preprocessor.group_lines.<locals>.<listcomp>  s    € Ð8Ð8Ð8 �—’‘”Ð8Ð8Ð8r   r*   r.   rB   Ú r   )r   ÚcloneÚ
splitlinesÚxrangeÚlenÚendswithÚjoinrI   r   rh   ri   r#   r�   r   )rS   rI   r[   ÚlinesÚiÚjÚcurrent_linerl   s           r   Úgroup_lineszPreprocessor.group_lines  sš  è è € ØŒj×ÒÑ Ô ˆØ8Ð8 U×%5Ò%5Ñ%7Ô%7Ð8Ñ8Ô8ˆÝ�˜E™
œ
Ñ#Ô#ð 	ð 	ˆAØ�!‘ˆAØ˜”(×#Ò# DÑ)Ô)ð ¨qµ3°u±:´:ª~¨~Ø  œ8 C R Cœ=¨¨q¬Ñ1��a‘Ø��a‘Ø�Q‘�ð ˜”(×#Ò# DÑ)Ô)ð ¨qµ3°u±:´:ª~¨~øð
 —	’	˜%Ñ Ô ˆØˆŒ	�%ÑÔÐØˆŒ
àˆð	"Ø�#”)‘+”+ˆCØð ØØ×Ò Ñ$Ô$Ð$ØŒx˜4œ9Ð$Ð$¨°´Ð):Ð):Ø"Ð"Ð"Ð"Ø!�ð	"ð ð 	ØÐÐÐÐÐð	ð 	r   c                 ó`  — d}|t          |¦  «        k     r@||         j        | j        v r,|dz  }|t          |¦  «        k     r||         j        | j        v °,|d |…= t          |¦  «        dz
  }|dk    r3||         j        | j        v r|dz  }|dk    r||         j        | j        v °||dz   d …= |S r)   )r‘   r#   r�   )rS   rk   r•   s      r   Ú
tokenstripzPreprocessor.tokenstrip8  sÃ   € ØˆØ•#�f‘+”+Šoˆo &¨¤)¤.°D´IÐ"=Ð"=Ø�‰FˆAð •#�f‘+”+Šoˆo &¨¤)¤.°D´IÐ"=Ð"=à�2�A�2ˆJÝ�‰KŒK˜‰MˆØ�1Šfˆf˜ œœ¨4¬9Ð4Ð4Ø�‰FˆAð �1Šfˆf˜ œœ¨4¬9Ð4Ð4à�1�Q‘3�4�4ˆLØˆr   c                 óú  — g }g }g }d}t          |¦  «        }d}||k     r3||         j        | j        v r|dz  }||k     r||         j        | j        v °||k     r*||         j        dk    r|                     |dz   ¦  «         n,|                      | j        |d         j        d¦  «         dg g fS |dz  }||k     �r||         }|j        dk    r|                     |¦  «         |dz  }nÜ|j        dk    rh|dz  }|dk    rG|r=|                     |                      |¦  «        ¦  «         |                     |¦  «         |dz   ||fS |                     |¦  «         ni|j        dk    rI|dk    rC|                     |                      |¦  «        ¦  «         |                     |dz   ¦  «         g }n|                     |¦  «         |dz  }||k     �°|                      | j        |d         j        d¦  «         dg g fS )	Nr*   r   r9   zMissing '(' in macro argumentsr:   rx   rB   zMissing ')' in macro arguments)	r‘   r#   r�   r   ri   rs   rR   r   rš   )	rS   Ú	tokenlistÚargsÚ	positionsÚcurrent_argÚnestingÚtokenlenr•   r   s	            r   Úcollect_argszPreprocessor.collect_argsT  s7  € ØˆØˆ	ØˆØˆÝ�y‘>”>ˆð ˆØ�8Š|ˆ| )¨A¤,Ô"3°t´yÐ"@Ð"@Ø�‰FˆAð �8Š|ˆ| )¨A¤,Ô"3°t´yÐ"@Ð"@ð �ŠLˆL˜y¨œ|Ô1°SÒ8Ð8Ø×Ò˜Q˜q™SÑ!Ô!Ð!Ð!à�JŠJ�t”{ 9¨Q¤<Ô#6Ð7WÑXÔXÐXØ�b˜"�9Ðà	ˆQ‰ˆà�(Šl‰lØ˜!”ˆAØŒw˜#Š~ˆ~Ø×"Ò" 1Ñ%Ô%Ð%Ø˜1‘��Ø”˜C’�Ø˜1‘�Ø˜a’<�<Ø"ð ,ØŸš D§O¢O°KÑ$@Ô$@ÑAÔAÐAØ!×(Ò(¨Ñ+Ô+Ð+Ø˜Q™3˜t IÐ-Ð-Ø×"Ò" 1Ñ%Ô%Ð%Ð%Ø”˜C’� G¨q¢L LØ—’˜DŸOšO¨KÑ8Ô8Ñ9Ô9Ð9Ø× Ò   1¡Ñ%Ô%Ð%Ø ��à×"Ò" 1Ñ%Ô%Ð%Ø�‰FˆAð' �(Šl‰lð, 	�
Š
�4”;˜y¨œ}Ô3Ð4TÑUÔUÐUØ�"�Rˆxˆr   c                 ó’  — g |_         g |_        g |_        d}|t          |j        ¦  «        k     �ry|j        |         j        | j        k    �r�|j        |         j        |j        v �ru|j                             |j        |         j        ¦  «        }|dk    rƒ|j        |dz
           j        dk    rjt          j	        |j        |         ¦  «        |j        |<   | j
        |j        |         _        |j        |dz
  = |j                             ||dz
  f¦  «         �Œ|dk    rF|j        |dz
           j        dk    r-|j                              d||dz
  f¦  «         |j        |dz
  = �ŒN|dz   t          |j        ¦  «        k     r=|j        |dz            j        dk    r$|j                              d||f¦  «         |dz  }�Œ¦|j                              d||f¦  «         n°|j        |         j        dk    rš|j        r“|dk    r�|j        |dz
           j        dk    rt|dz   t          |j        ¦  «        k     rY|j        |dz            j        | j        k    r;|j        |dz            j        |j        k    r|j                             |dz
  ¦  «         |dz  }|t          |j        ¦  «        k     �°y|j                              d„ d	¬
¦  «         d S )Nr   r*   r-   rw   rƒ   Úerx   c                 ó   — | d         S )Né   r   )r‹   s    r   rF   z,Preprocessor.macro_prescan.<locals>.<lambda>ª  s
   €  q¨¤t€ r   T)ÚkeyÚreverse)ÚpatchÚ	str_patchÚvar_comma_patchr‘   r   r#   rz   rO   ÚindexÚcopyr~   ri   rP   rQ   Úsort)rS   Úmacror•   Úargnums       r   Úmacro_prescanzPreprocessor.macro_prescan‰  s±  € ØˆŒØˆŒØ "ˆÔØˆØ•#�e”kÑ"Ô"Ò"Ñ"ØŒ{˜1Œ~Ô" d¤iÒ/Ñ/°E´KÀ´NÔ4HÈEÌMÐ4YÑ4YØœ×,Ò,¨U¬[¸¬^Ô-AÑBÔB�à�q’5�5˜Uœ[¨¨1©Ô-Ô3°sÒ:Ð:Ý%)¤Y¨u¬{¸1¬~Ñ%>Ô%>�E”K ‘NØ*.¬-�E”K ”NÔ'Øœ A a¡CÐ(Ø”O×*Ò*¨F°1°Q±3¨<Ñ8Ô8Ð8Ùà˜!’e�e ¤¨A¨a©CÔ 0Ô 6¸$Ò >Ð >Ø”K×&Ò&¨¨F°1°Q±3Ð'7Ñ8Ô8Ð8Øœ A a¡CÐ(ÙØ˜‘s�c %¤+Ñ.Ô.Ò.Ð.°5´;¸qÀ¹sÔ3CÔ3IÈTÒ3QÐ3QØ”K×&Ò&¨¨F°1 ~Ñ6Ô6Ð6Ø˜‘F�AÙð ”K×&Ò&¨¨F°1 ~Ñ6Ô6Ð6Ð6Ø”˜Q”Ô%¨Ò-Ð-Ø”>ð 6 q¨1¢u u°5´;¸qÀ¹sÔ3CÔ3IÈSÒ3PÐ3PØ˜A™#¥ U¤[Ñ!1Ô!1Ò1Ð1¸¼ÀAÀaÁCÔ8HÔ8MÐQUÔQZÒ8ZÐ8ZØœ Q q¡SÔ)Ô/°5´<Ò?Ð?ØÔ)×0Ò0°°1±Ñ5Ô5Ð5Ø�‰FˆAð7 •#�e”kÑ"Ô"Ò"Ñ"ð8 	Œ×Ò˜^˜^°DÐÑ9Ô9Ð9Ð9Ð9r   c                 óJ  — d„ |j         D ¦   «         }i }|j        D ]x\  }}||vr?dd                     d„ ||         D ¦   «         ¦  «        z                       dd¦  «        ||<   t	          j        ||         ¦  «        ||<   ||         ||         _         Œyd}|j        r|d         s|j        D ]	}d ||<   d	}Œ
i }|j        D ]U\  }	}}|	d
k    r||         |||dz   …<   Œ|	dk    r2||vr|                      ||         ¦  «        ||<   ||         |||dz   …<   ŒV|rd„ |D ¦   «         }|S )Nc                 ó6   — g | ]}t          j         |¦  «        ‘ŒS r   ©r­   ©rŠ   Ú_xs     r   rŒ   z2Preprocessor.macro_expand_args.<locals>.<listcomp>¶  s    € Ð3Ð3Ð3 �tŒy˜‰}Œ}Ð3Ð3Ð3r   z"%s"r�   c                 ó   — g | ]	}|j         ‘Œ
S r   ©r   r‰   s     r   rŒ   z2Preprocessor.macro_expand_args.<locals>.<listcomp>½  s   € Ð:YÐ:YÐ:YÀq¸1¼7Ð:YÐ:YÐ:Yr   r.   z\\FrB   Trƒ   r*   r¤   c                 ó   — g | ]}|¯|‘ŒS r   r   ©rŠ   Ú_is     r   rŒ   z2Preprocessor.macro_expand_args.<locals>.<listcomp>Ù  s   € Ð*Ð*Ð*˜" rÐ*�2Ð*Ð*Ð*r   )	r   rª   r“   Úreplacer­   rP   r«   r©   Úexpand_macros)
rS   r¯   r�   ÚrepÚstr_expansionr°   r•   Úcomma_patchÚexpandedÚptypes
             r   Úmacro_expand_argszPreprocessor.macro_expand_args´  sŽ  € à3Ð3 u¤{Ð3Ñ3Ô3ˆð ˆØœð 	1ð 	1‰IˆF�AØ˜]Ð*Ð*Ø)/°"·'²'Ð:YÐ:YÈDÐQWÌLÐ:YÑ:YÔ:YÑ2ZÔ2ZÑ)Z×(cÒ(cÐdhÐioÑ(pÔ(p�˜fÑ%Ý”Y˜s 1œvÑ&Ô&ˆC�‰FØ(¨Ô0ˆC�ŒFŒLˆLð ˆØŒ>ð 	# $ r¤(ð 	#ØÔ*ð #ð #�Ø��A‘Ø"��ð ˆØ %¤ð 	.ð 	.ÑˆE�6˜1à˜Š|ˆ|Ø! &œ\��A�a˜‘c�E‘
�
à˜#’�Ø Ð)Ð)Ø'+×'9Ò'9¸$¸v¼,Ñ'GÔ'G�H˜VÑ$Ø% fÔ-��A�a˜‘c�E‘
øð ð 	+Ø*Ð* Ð*Ñ*Ô*ˆCàˆ
r   c           	      óÆ  — |€i }d}|t          |¦  «        k     �rÆ||         }|j        | j        k    �r”|j        | j        v �rO|j        |v�rEd||j        <   | j        |j                 }|j        sT|                      d„ |j        D ¦   «         |¦  «        }|D ]}|j        |_        Œ||||dz   …<   |t          |¦  «        z  }�nÄ|dz   }|t          |¦  «        k     r@||         j        | j        v r,|dz  }|t          |¦  «        k     r||         j        | j        v °,||         j        dk    �rZ|  	                    ||d …         ¦  «        \  }	}
}|j
        sit          |
¦  «        t          |j        ¦  «        k    rD|                      | j        |j        d|j        t          |j        ¦  «        fz  ¦  «         ||	z   }�nÉ|j
        rÇt          |
¦  «        t          |j        ¦  «        dz
  k     rŸt          |j        ¦  «        dk    rA|                      | j        |j        d|j        t          |j        ¦  «        dz
  fz  ¦  «         n@|                      | j        |j        d	|j        t          |j        ¦  «        dz
  fz  ¦  «         ||	z   }nû|j
        r›t          |
¦  «        t          |j        ¦  «        dz
  k    r|
                     g ¦  «         n]|||t          |j        ¦  «        dz
           z   ||	z   dz
  …         |
t          |j        ¦  «        dz
  <   |
t          |j        ¦  «        d …= |                      ||
¦  «        }|                      ||¦  «        }|D ]}|j        |_        Œ|||||	z   …<   |t          |¦  «        z  }||j        = �Œ‹|j        d
k    r+| j        |_        |                      |j        ¦  «        |_        |dz  }|t          |¦  «        k     �°Æ|S )Nr   Tc                 ó6   — g | ]}t          j         |¦  «        ‘ŒS r   r´   rµ   s     r   rŒ   z.Preprocessor.expand_macros.<locals>.<listcomp>ô  s    € Ð0QÐ0QÐ0QÀ2µ´¸2±´Ð0QÐ0QÐ0Qr   r*   r9   zMacro %s requires %d argumentsr¦   z(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argumentÚ__LINE__)r‘   r#   rz   r   r\   rO   r½   r   r�   r¢   rP   rs   rR   ri   rÃ   r|   r}   )rS   rk   rÁ   r•   r   ÚmÚexr¤   r–   Útokcountr�   rž   r¾   Úrs                 r   r½   zPreprocessor.expand_macrosæ  s7  € ØÐØˆHØˆØ•#�f‘+”+Šo‰oØ�q”	ˆAØŒv˜œÒ"Ñ"Ø”7˜dœkÐ)Ñ)¨a¬g¸XÐ.EÑ.Eà(,�H˜QœWÑ%àœ A¤GÔ,�AØœ9ð %.à!×/Ò/Ð0QÐ0QÈÌÐ0QÑ0QÔ0QÐRZÑ[Ô[˜Ø!#ð 0ð 0˜AØ'(¤x˜AœH˜HØ(*˜˜q  1¡˜u™Ø�S ™WœW™˜™ð  ™E˜Ø¥# f¡+¤+šo˜o°&¸´)´.ÀDÄIÐ2MÐ2MØ ™F˜Að  ¥# f¡+¤+šo˜o°&¸´)´.ÀDÄIÐ2MÐ2Mà! !œ9œ?¨cÒ1Ñ1Ø6:×6GÒ6GÈÈqÈrÈrÌ
Ñ6SÔ6SÑ3˜H T¨)Ø#$¤:ð .µ#°d±)´)ÅÀAÄIÁÄÒ2NÐ2NØ $§
¢
¨4¬;°q´xÐ@`ÐdeÔdkÕloÐpqÔpyÑlzÔlzÐc{Ñ@{Ñ |Ô |Ð |Ø$%¨¡L ¡Ø!"¤ð .µ°D±	´	½CÀÄ	¹N¼NÈ1Ñ<LÒ0LÐ0LÝ#& q¤y¡>¤>°AÒ#5Ð#5Ø$(§J¢J¨t¬{¸1¼8ÐDnÐrsÔryÕ{~ð  @Aô  @Iñ  |Jô  |Jð  KLñ  |Lð  rMñ  EMñ  %Nô  %Nð  %Nð  %Nà$(§J¢J¨t¬{¸1¼8ÐDmÐqrÔqxÕz}Ð~ô  Hñ  {Iô  {Ið  JKñ  {Kð  qLñ  ELñ  %Mô  %Mð  %MØ$%¨¡L  à#$¤:ð !BÝ'*¨4¡y¤yµC¸¼	±N´NÀ1Ñ4DÒ'DÐ'DØ(,¯ª°B©¬¨¨àAGÈÈ)ÕTWÐXYÔXaÑTbÔTbÐcdÑTdÔJeÑHeÐfgÐhpÑfpÐqrÑfrÐHrÔAs¨­S°´©^¬^¸AÑ-=Ñ(>Ø,0µ°Q´Y±´°°Ð,Að '+×&<Ò&<¸Q¸tÑ&DÔ&D Ø&*×&8Ò&8¸¸XÑ&FÔ&F Ø),ð !8ð !8 AØ/0¬x A¤H HØ7:  q¨¨8© |Ñ 4Ø !¥S¨¡X¤X¡ Ø  ¤Ð)ÙØ”W 
Ò*Ð*Ø!œ^�A”FØ"×1Ò1°!´(Ñ;Ô;�A”Gà�‰FˆAði •#�f‘+”+Šo‰oðj ˆr   c                 óV  — d}|t          |¦  «        k     �rM||         j        | j        k    �r||         j        dk    �r|dz   }d}d}|t          |¦  «        k     r²||         j        | j        v r|dz  }Œ-||         j        | j        k    r||         j        | j        v rd}nd}|snfnM||         j        dk    rd}n9||         j        d	k    rn?|                      | j        ||         j        d
¦  «         |dz  }|t          |¦  «        k     °²| j	        ||         _        |  
                    |¦  «        ||         _        ||dz   |dz   …= |dz  }|t          |¦  «        k     �°M|                      |¦  «        }t          |¦  «        D ]õ\  }}|j        | j        k    rJt          j        |¦  «        ||<   | j	        ||         _        |  
                    d¦  «        ||         _        Œ_|j        | j	        k    r†t          j        |¦  «        ||<   t          ||         j        ¦  «        ||         _        ||         j        d         dvr5||         j        d d…         ||         _        ||         j        d         dv°5Œöd                     d„ |D ¦   «         ¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }	 t#          |¦  «        }n9# t$          $ r, |                      | j        |d         j        d¦  «         d}Y nw xY w|S )Nr   Údefinedr*   FÚ0LÚ1Lr9   Tr:   zMalformed defined()rB   Ú0123456789abcdefABCDEFr�   c                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS r   ©Ústrr   r‰   s     r   rŒ   z)Preprocessor.evalexpr.<locals>.<listcomp>S  s    € Ð5Ð5Ð5¨�˜AœG™œÐ5Ð5Ð5r   z&&z and z||z or r;   z not zCouldn't evaluate expression)r‘   r#   rz   r   r�   r\   rs   rR   r   r|   r}   r½   Ú	enumerater­   rÒ   r“   r¼   ÚevalÚ	Exception)rS   rk   r•   r–   Ú	needparenÚresultr   Úexprs           r   ÚevalexprzPreprocessor.evalexpr(  s(  € ð ˆØ•#�f‘+”+Šo‰oØ�aŒyŒ~ ¤Ò*Ñ*¨v°a¬y¬À)Ò/KÑ/KØ˜‘E�Ø!�	Ø�Ø�#˜f™+œ+’o�oØ˜a”y”~¨¬Ð2Ð2Ø˜Q™˜Ø Ø œœ¨4¬9Ò4Ð4Ø! !œ9œ?¨d¬kÐ9Ð9Ø%)˜F˜Fà%)˜FØ(Ð/¨%Ð/Ø œœ¨CÒ/Ð/Ø$(˜	˜	Ø œœ¨CÒ/Ð/ØàŸ
š
 4¤;¨v°a¬yÔ/?Ð@UÑVÔVÐVØ˜‘F�Að! �#˜f™+œ+’o�oð" "&¤��q”	”Ø"&×"5Ò"5°fÑ"=Ô"=��q”	”Ø˜1˜Q™3˜q ™s˜7�OØ�‰FˆAð3 •#�f‘+”+Šo‰oð4 ×#Ò# FÑ+Ô+ˆÝ˜VÑ$Ô$ð 
	;ð 
	;‰CˆAˆaØŒv˜œÒ"Ð"Ý œI a™LœL��q‘	Ø!%¤��q”	”Ø"&×"5Ò"5°dÑ";Ô";��q”	”�Ø”˜4œ>Ò)Ð)Ý œI a™LœL��q‘	å"% f¨Q¤i¤oÑ"6Ô"6��q”	”Ø˜Q”i”o bÔ)Ð1IÐIÐIØ&,¨Q¤i¤o°c°r°cÔ&:�F˜1”I”Oð ˜Q”i”o bÔ)Ð1IÐIÐIøð �wŠwÐ5Ð5¨fÐ5Ñ5Ô5Ñ6Ô6ˆØ�|Š|˜D Ñ)Ô)ˆØ�|Š|˜D Ñ(Ô(ˆØ�|Š|˜C Ñ(Ô(ˆð	Ý˜$‘Z”ZˆFˆFøÝð 	ð 	ð 	Ø�JŠJ�t”{ 6¨!¤9Ô#3Ð4RÑSÔSÐSØˆFˆFˆFð	øøøð ˆs   Ë K0 Ë03L&Ì%L&c              #   óª  K  — t          |¦  «        }|                      |¦  «        }|sd}|                      d|z  ¦  «         || _        g }d}d}g }|D �]_}	t	          |	¦  «        D ]\  }
}|j        | j        vr nŒ|j        dk    �r|	D ].}|j        | j        v rd|j        v r|                     |¦  «         Œ/|  	                    |	|
dz   d …         ¦  «        }|r+|d         j        }|  	                    |dd …         ¦  «        }nd}g }|d	k    r6|r3|  
                    |¦  «        D ]}|V — Œg }|                      |¦  «         Œò|d
k    r\|rX|  
                    |¦  «        D ]}|V — Œg }| j        d         }|                      |¦  «        D ]}|V — Œ|| j        d<   || _        �ŒT|dk    r7|r3|  
                    |¦  «        D ]}|V — Œg }|                      |¦  «         �Œ‘|dk    r7|                     ||f¦  «         |r|d         j        | j        vrd}d}�ŒÊd}�ŒÎ|dk    r7|                     ||f¦  «         |r|d         j        | j        v rd}d}�Œd}�Œ|dk    r:|                     ||f¦  «         |r|                      |¦  «        }|sd}d}�ŒGd}�ŒK|dk    r^|r3|d         d         r#|rd}�Œg|s|                      |¦  «        }|rd}d}�Œ†|                      | j        |d         j        d¦  «         �Œ¯|dk    rG|r|d         d         r|rd}�ŒË|sd}d}�ŒÓ|                      | j        |d         j        d¦  «         �Œü|dk    rD|r|                     ¦   «         \  }}�Œ|                      | j        |d         j        d¦  «         �ŒF�ŒH|r|                     |	¦  «         �Œa|  
                    |¦  «        D ]}|V — Œg }d S )Nr�   z__FILE__ "%s"TFr-   r   r*   r   rb   ÚincludeÚ__FILE__ÚundefÚifdefÚifndefÚifÚelifrB   zMisplaced #elifÚelsezMisplaced #elseÚendifzMisplaced #endif)rJ   r˜   rb   rR   rÓ   r#   r�   r   ri   rš   r½   r\   rÛ   rÝ   rÙ   rs   r   ÚpopÚextend)rS   rI   rR   r   r”   ÚchunkÚenableÚ	iftriggerÚifstackr‹   r•   rl   Ú	dirtokensrN   r�   Úoldfiler×   s                    r   ÚparsegenzPreprocessor.parsegenc  sá  è è € õ �U‰OŒOˆØ× Ò  Ñ#Ô#ˆàð 	ØˆFà�ŠÐ%¨Ñ.Ñ/Ô/Ð/àˆŒØˆØˆØˆ	Øˆàð f	$ñ f	$ˆAÝ" 1™œð 4ð 4‘��#Ø”8 4¤9Ð,Ð,¨e¨eÐ,ØŒy˜CÒÑð ð *ð *�CØ”x 4¤9Ð,Ð,°¸¼Ð1BÐ1BØŸš SÑ)Ô)Ð)øà ŸOšO¨A¨a°©c¨d¨d¬GÑ4Ô4�	Øð Ø$ Qœ<Ô-�DØŸ?š?¨9°Q°R°R¬=Ñ9Ô9�D�Dà�DØ�Dà˜8Ò#Ð#Øð *Ø#'×#5Ò#5°eÑ#<Ô#<ð &ð &˜CØ"%˜I˜I˜I˜IØ "˜ØŸš DÑ)Ô)Ð)øØ˜YÒ&Ð&Øð -Ø#'×#5Ò#5°eÑ#<Ô#<ð &ð &˜CØ"%˜I˜I˜I˜IØ "˜Ø"&¤+¨jÔ"9˜Ø#'§<¢<°Ñ#5Ô#5ð &ð &˜CØ"%˜I˜I˜I˜IØ29˜œ JÑ/Ø&,˜œùØ˜W’_�_Øð )Ø#'×#5Ò#5°eÑ#<Ô#<ð &ð &˜CØ"%˜I˜I˜I˜IØ "˜ØŸ
š
 4Ñ(Ô(Ð(ùØ˜W’_�_Ø—N’N F¨9Ð#5Ñ6Ô6Ð6Øð -Ø# Aœwœ}°´Ð;Ð;Ø%*˜FØ(-˜I™Ià(,˜IùØ˜XÒ%Ð%Ø—N’N F¨9Ð#5Ñ6Ô6Ð6Øð -Ø œ7œ=¨D¬KÐ7Ð7Ø%*˜FØ(-˜I™Ià(,˜IùØ˜T’\�\Ø—N’N F¨9Ð#5Ñ6Ô6Ð6Øð -Ø!%§¢¨tÑ!4Ô!4˜Ø%ð -Ø%*˜FØ(-˜I™Ià(,˜IùØ˜V’^�^Øð 
VØ" 2œ; qœ>ð 5Ø%ð 5Ø). ¡Ø%.ð 5Ø)-¯ª°tÑ)<Ô)< Ø#)ð !5Ø.2 FØ04 IùàŸ
š
 4¤;¨y¸¬|Ô/BÐCTÑUÔUÐUÑUà˜V’^�^Øð VØ" 2œ; qœ>ð 1Ø%ð 1Ø). ¡Ø%.ð 1Ø)- Ø,0 	ùàŸ
š
 4¤;¨y¸¬|Ô/BÐCTÑUÔUÐUÑUà˜W’_�_Øð WØ+2¯;ª;©=¬=Ñ(˜˜y™yàŸ
š
 4¤;¨y¸¬|Ô/BÐCUÑVÔVÐVÑVñ ð ð $Ø—L’L ‘O”O�Oùà×%Ò% eÑ,Ô,ð 	ð 	ˆCØˆIˆIˆIˆIØˆˆˆr   c              #   ó  K  — |sd S |�r(|d         j         dk    r+|d         j        | j        k    r|                      |¦  «        }|d         j         dk    r‹d}|t	          |¦  «        k     r*||         j         dk    rn)|dz  }|t	          |¦  «        k     °*t          d¦  «         d S d                     d„ |d|…         D ¦   «         ¦  «        }| j        dgz   | j        z   }nP|d         j        | j        k    r)|d         j         dd…         }| j        dgz   | j        z   }nt          d	¦  «         d S |D ]º}t          j                             ||¦  «        }	 t          |d
¦  «                             ¦   «         }t          j                             |¦  «        }|r| j                             d|¦  «         |                      ||¦  «        D ]}	|	V — Œ|r| j        d=  d S # t          $ r Y Œ·w xY wt          d|z  ¦  «         d S )Nr   r<   r*   r=   zMalformed #include <...>r�   c                 ó   — g | ]	}|j         ‘Œ
S r   r¸   r‰   s     r   rŒ   z(Preprocessor.include.<locals>.<listcomp>ø  s   € Ð#AÐ#AÐ#A° A¤GÐ#AÐ#AÐ#Ar   rB   zMalformed #include statementrÊ   zCouldn't find '%s')r   r#   r~   r½   r‘   ro   r“   r]   r^   ÚosÚopenÚreadÚdirnameÚinsertrì   ÚIOError)
rS   rk   r•   Úfilenamer]   ÚpÚinameÚdataÚdnamerl   s
             r   rÛ   zPreprocessor.includeæ  s=  è è € àð 	ØˆFØñ 	Ø�aŒyŒ #Ò%Ð%¨&°¬)¬.¸D¼MÒ*IÐ*IØ×+Ò+¨FÑ3Ô3�à�aŒyŒ #Ò%Ð%à�Ø�#˜f™+œ+’o�oØ˜a”y”¨#Ò-Ð-ØØ˜‘F�Að �#˜f™+œ+’o�oõ
 Ð4Ñ5Ô5Ð5Ø�FØŸ7š7Ð#AÐ#A°V¸A¸a¸C´[Ð#AÑ#AÔ#AÑBÔB�Ø”y B 4Ñ'¨$¬.Ñ8��Ø˜”” 4¤=Ò0Ð0Ø! !œ9œ?¨1¨R¨4Ô0�Ø”~¨¨Ñ,¨t¬yÑ8��åÐ4Ñ5Ô5Ð5Ø�Øð 	3ð 	3ˆAÝ”G—L’L  8Ñ,Ô,ˆEðÝ˜E #‘”×+Ò+Ñ-Ô-�ÝœŸš¨Ñ.Ô.�Øð 3Ø”N×)Ò)¨!¨EÑ2Ô2Ð2ØŸ=š=¨¨hÑ7Ô7ð ð �CØ�I�I�I�IØð *Øœ qÐ)Ø��øÝð ð ð Ø�ðøøøõ Ð&¨Ñ1Ñ2Ô2Ð2Ð2Ð2s   ÅBGÇ
G,Ç+G,c                 óx  — t          |t          ¦  «        r|                      |¦  «        }|}	 |d         }t          |¦  «        dk    r	|d         }nd }|s&t	          |j        g ¦  «        }|| j        |j        <   d S |j        | j        v rAt	          |j        |  	                    |dd …         ¦  «        ¦  «        }|| j        |j        <   d S |j        dk    �r4|  
                    |dd …         ¦  «        \  }}}d}	|D �]}
|	rt          d¦  «          �nôd                     d„ |
D ¦   «         ¦  «        }|d	k    r)d
}	| j        |
d         _        d|
d         _        d
}	|
dd …= Œe|dd …         d	k    rW|
d         j        | j        k    rAd
}	|
dd …= |
d         j        dd …         d	k    r |
d         j        d d…         |
d         _        ŒÊt          |
¦  «        dk    s|
d         j        | j        k    rt          d¦  «          �n�Œ|  	                    |d|z   d …         ¦  «        }d}|t          |¦  «        k     rˆ|dz   t          |¦  «        k     rZ||         j        | j        v r||dz            j        dk    r||= ŒU||         j        dk    r||dz            j        | j        v r||dz   = |dz  }|t          |¦  «        k     °ˆt	          |j        |d„ |D ¦   «         |	¦  «        }|                      |¦  «         || j        |j        <   d S d S d S t          d¦  «         d S # t          $ r t          d¦  «         Y d S w xY w)Nr   r*   r¦   r9   Fz0No more arguments may follow a variadic argumentr�   c                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS r   rÑ   rº   s     r   rŒ   z'Preprocessor.define.<locals>.<listcomp>1  s    € Ð#>Ð#>Ð#>°b¥C¨¬¡M¤MÐ#>Ð#>Ð#>r   z...TÚ__VA_ARGS__éýÿÿÿzInvalid macro argumentrw   c                 ó(   — g | ]}|d          j         ‘ŒS )r   r¸   r‰   s     r   rŒ   z'Preprocessor.define.<locals>.<listcomp>O  s   € Ð0JÐ0JÐ0JÀ°°1´´Ð0JÐ0JÐ0Jr   zBad macro definition)Ú
isinstanceÚSTRING_TYPESrm   r‘   rL   r   r\   r#   r�   rš   r¢   ro   r“   rz   r±   ÚLookupError)rS   rk   ÚlinetokrN   ÚmtyperÇ   rÉ   r�   rž   rP   ÚaÚastrÚmvaluer•   s                 r   rb   zPreprocessor.define  sž  € Ý�f�\Ñ*Ô*ð 	+Ø—]’] 6Ñ*Ô*ˆFàˆð9	*Ø˜1”:ˆDÝ�7‰|Œ|˜aÒÐØ œ
��à�Øð 1.Ý˜$œ* RÑ(Ô(�Ø*+�”˜DœJÑ'Ð'Ð'Ø”˜tœyÐ(Ð(å˜$œ* T§_¢_°W¸Q¸R¸R´[Ñ%AÔ%AÑBÔB�Ø*+�”˜DœJÑ'Ð'Ð'Ø” Ò#Ñ#à,0×,=Ò,=¸gÀaÀbÀb¼kÑ,JÔ,JÑ)�˜$ 	Ø �Øð $0ñ $0�AØð ÝÐPÑQÔQÐQØ™ØŸ7š7Ð#>Ð#>¸AÐ#>Ñ#>Ô#>Ñ?Ô?�DØ˜u’}�}Ø#'˜Ø$(¤I˜˜!œœ	Ø%2˜˜!œœ
Ø#'˜Ø˜a˜b˜b˜EØ Ø˜b˜c˜cœ eÒ+Ð+°°!´´	¸T¼YÒ0FÐ0FØ#'˜Ø˜a˜b˜b˜Eð ˜Qœ4œ: b c cœ?¨eÒ3Ð3Ø)*¨1¬¬°C°R°C¬˜A˜aœDœJØ Ý˜1‘v”v ’z�z Q q¤T¤Y°$´)Ò%;Ð%;ÝÐ6Ñ7Ô7Ð7Ø™ñ &<ð "Ÿ_š_¨W°Q°x±Z°[°[Ô-AÑBÔB�FØ�AØ�c &™kœkš/˜/Ø˜Q™3¥ V¡¤Ò,Ð,Ø% aœyœ~°´Ð:Ð:¸vÀaÈÁc¼{Ô?PÐTXÒ?XÐ?XØ$*¨1 IØ (Ø!'¨¤¤°DÒ!8Ð!8¸VÀAÀaÁC¼[Ô=MÐQUÔQZÐ=ZÐ=ZØ$*¨1¨Q©3 KØ˜Q™˜ð �c &™kœkš/˜/õ ˜dœj¨Ð0JÐ0JÀTÐ0JÑ0JÔ0JÈ8ÑTÔT�AØ×&Ò& qÑ)Ô)Ð)Ø./�D”K ¤
Ñ+Ð+Ð+ðC ˜ð& ˜õ  Ð,Ñ-Ô-Ð-Ð-Ð-øÝð 	*ð 	*ð 	*ÝÐ(Ñ)Ô)Ð)Ð)Ð)Ð)ð	*øøøs&   ®AL Á<AL ÃH:L ÌL ÌL9Ì8L9c                 óT   — |d         j         }	 | j        |= d S # t          $ r Y d S w xY w)Nr   )r   r\   r  )rS   rk   Úids      r   rÝ   zPreprocessor.undef]  sA   € Ø�AŒYŒ_ˆð	Ø”˜B���øÝð 	ð 	ð 	ØˆDˆDð	øøøs   � ™
'¦'c                 óJ   — || _         |                      ||¦  «        | _        d S rg   )Úignorerì   rd   )rS   rI   rR   r
  s       r   ÚparsezPreprocessor.parsei  s"   € ØˆŒØ—m’m E¨&Ñ1Ô1ˆŒˆˆr   c                 ó€   — 	 	 t          | j        ¦  «        }|j        | j        vr|S Œ%# t          $ r d | _        Y d S w xY wrg   )Únextrd   r#   r
  ÚStopIteration)rS   rl   s     r   rh   zPreprocessor.tokenr  s^   € ð	ð;Ý˜4œ;Ñ'Ô'�Ø”8 4¤;Ð.Ð.°s°
ð;øõ ð 	ð 	ð 	ØˆDŒKØ�4�4ð	øøøs   ‚$( §( ¨=¼=rg   )rU   rV   rW   rT   rm   rs   r_   r…   r˜   rš   r¢   r±   rÃ   r½   rÙ   rì   rÛ   rb   rÝ   r  rh   r   r   r   rY   rY   �   sN  € € € € € ðð ð ð ð,ð ð ð,ð ,ð ,ð4Jð 4Jð 4Jðxð ð ðð ð ðB	ð 	ð 	ð8+ð +ð +ðj!:ð !:ð !:ðV'ð 'ð 'ðd9ð 9ð 9ð 9ðD4ð 4ð 4ðv{ð {ð {ð {ðF)3ð )3ð )3ðb>*ð >*ð >*ðLð ð ð !%¨Bð 2ð 2ð 2ð 2ðð ð ð ð r   rY   Ú__main__r*   )1ÚsysÚversion_infoÚmajorrÒ   Úunicoder   Úranger�   rk   Úliteralsr   Út_CPP_POUNDÚt_CPP_DPOUNDÚt_CPP_IDr   Út_CPP_INTEGERÚt_CPP_FLOATr   r    r%   r'   r,   Úrer­   r`   Úos.pathrï   ÚcompilerG   rC   rJ   ÚobjectrL   rY   rU   Úply.lexr[   r   rð   ÚargvÚfrñ   rI   rö   r  rh   rl   ro   rR   r   r   r   ú<module>r"     s`  ðð €
€
€
ð ÔÔ˜AÒÐØ˜�>€L€Là€LØ€Fð
€ð ,€ðð ð ð
 €Ø€ð €ðð ð ð €ð Q€ðð ð ðð ð ðð ð ðð ð ðð ð ð 
€	€	€	Ø €€€Ø €€€Ø €€€ð& �”
Ð6Ñ7Ô7€àØØØØØØØØð
ð 
€ðKð Kð Kð&ð ð ð ð ˆFñ ô ð ð"\ð \ð \ð \ð \�6ñ \ô \ð \ð| ˆzÒÐØÐÐÐÐÐØˆCŒG‰IŒI€Eð €J€J€JØˆˆSŒX�aŒ[ÑÔ€AØ�FŠF‰HŒH€Eàˆ�UÑÔ€AØ‡G‚GˆE�#”(˜1”+ÑÔÐðØ�gŠg‰iŒiˆØÐ�E�EØˆˆaŒh˜ÑÔÐðð Ðr   