MINI MINI MANI MO
3
  \T                 @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ ddddddd	d
ddd
ddddddgZ	ej
jejddZ
ejdejejB Zdd Zdd ZdOZd(d) eed*D Zd+d,d-d.ZdQd/d0Zd1d2 Zd3d4 Zd5d6 ZG d7d dZG d8d deZdRd:dZi ZdSd;dZdTd<dZ i a!i a"d=a#dUd>d	Z$dVd?d
Z%dWd@dZ&dAd Z'dBd Z(dCd
 Z)dDd Z*dEd Z+dFd Z,dGd Z-dHd Z.eZ/dS )X    N)ENOENTNullTranslationsGNUTranslationsCatalogfindtranslationinstall
textdomainbindtextdomainbind_textdomain_codesetdgettext	dngettextgettextlgettext	ldgettext
ldngettext	lngettextngettextZsharelocalea  
        (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
        (?P<NUMBER>[0-9]+\b)                       | # decimal integer
        (?P<NAME>n\b)                              | # only n is allowed
        (?P<PARENTHESIS>[()])                      |
        (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                     # <=, >=, ==, !=, &&, ||,
                                                     # ? :
                                                     # unary and bitwise ops
                                                     # not allowed
        (?P<INVALID>\w+|.)                           # invalid token
    c             c   sT   xHt jt| D ]8}|j}|dkr"q|j|}|dkr@td| |V  qW dV  d S )NZWHITESPACESZINVALIDz invalid token in plural form: %s )refinditer_token_pattern	lastgroupgroup
ValueError)pluralZmoZkindvalue r   /usr/lib64/python3.6/gettext.py	_tokenizeT   s    
r    c             C   s   | rt d|  S t dS d S )Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r   r   r   r   _error_   s    r!   ||&&==!=<><=>=+-*/%c             C   s    i | ]\}}|D ]
}||qqS r   r   ).0iZopsopr   r   r   
<dictcomp>m   s    r2      orandz//)z||z&&r-   c             C   s  d}t | }x|dkr(|d7 }t | }qW |dkr\t| \}}d||f }|dkrtdnP|dkrrd	||f }n:yt|d
}W n tk
r   t|d Y nX d||f }t | }d}xh|tkr t| }||k rP |dkr|dkrd| }tj||}t| |d \}	}d|||	f }|}qW ||  ko6dkn  rFd| }|dkr|dkrt| d\}
}|dkrzt|t| \}}d|
||f }|dkrd| }||fS )Nr   !znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s
   z%s%dd         z(%s)r3   z%s %s %s?r   :z%s if %s else %s)r<