ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     B
     fU                 @   sx  d Z ddlZddlZddlZddlZddddddd	d
dddddddddgZejejddZ	e
dejejB Zdd Zdd ZdZdd eedD Zdd d!d"Zd>d$d%Zd&d' Zd(d) Zd*d+ ZG d,d dZG d-d deZd?d/dZi Zd@d0dZdAd1dZi ai ad2adBd3d	Z dCd4d
Z!dDd5dZ"d6d Z#d7d Z$d8d Z%d9d Z&d:d Z'd;d Z(d<d Z)d=d Z*eZ+dS )Ea  Internationalization and localization support.

This module provides internationalization (I18N) and localization (L10N)
support for your Python programs by providing an interface to the GNU gettext
message catalog library.

I18N refers to the operation by which a program is made aware of multiple
languages.  L10N refers to the adaptation of your program, once
internationalized, to the local language and cultural habits.

    NNullTranslationsGNUTranslationsCatalogfindtranslationinstall
textdomainbindtextdomainbind_textdomain_codesetdgettext	dngettextgettextlgettext	ldgettext
ldngettext	lngettextngettextZsharelocalea  
        (?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 t| D ]8}|j}|dkr"q||}|dkr@td| |V  qW dV  d S )NZWHITESPACESZINVALIDz invalid token in plural form: %s )refinditer_token_pattern	lastgroupgroup
ValueError)pluralZmoZkindvalue r   ,/opt/alt/python37/lib64/python3.7/gettext.py	_tokenizeV   s    

r   c             C   s   | rt d|  S t dS d S )Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r   r   r   r   _errora   s    r    ))z||)z&&)z==z!=)<>z<=z>=)+-)*/%c             C   s    i | ]\}}|D ]
}||qqS r   r   ).0iZopsopr   r   r   
<dictcomp>o   s    r+      orandz//)z||z&&r&   c             C   s  d}t | }x|dkr(|d7 }t | }qW |dkr\t| \}}d||f }|dkrtdnP|dkrrd	||f }n:yt|d
}W n tk
r   t|d Y nX d||f }t | }d}xh|tkr t| }||k rP |dkr|dkrd| }t||}t| |d \}	}d|||	f }|}qW ||  kr:dkrFn nd| }|dkr|dkrt| d\}
}|dkrzt|t| \}}d|
||f }|dkrd| }||fS )Nr   !znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s
   z%s%dd   )      z(%s)r,   z%s %s %sr7   ?r   :z%s if %s else %s)next_parser   intr    _binary_ops	_c2py_opsget)tokensZpriorityresultnexttoksubr   jr)   r*   rightZif_trueZif_falser   r   r   r;   r   sP    



r;   c             C   sZ   yt | }W n( tk
r4   td| jjf d Y nX dd l}|d| jjf td | S )Nz'Plural value must be an integer, got %sr   r7   )round	TypeError	__class____name__warningswarnDeprecationWarning)r3   r)   rJ   r   r   r   _as_int   s    
rM   c             C   s   t | dkrtdy~tt| \}}|r2t|d}x>|D ]6}|dkrb|d7 }|dkrrtdq<|dkr<|d8 }q<W d	ti}td
| | |d S  tk
r   tdY nX dS )zGets a C expression as used in PO files for plural forms and returns a
    Python function that implements an equivalent expression.
    i  z"plural form expression is too longr   r1   r,      z%plural form expression is too complexr2   rM   zif True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            funcN)lenr   r;   r   r    rM   execRecursionError)r   rA   rB   Zdepthcnsr   r   r   c2py   s(    

rU   c             C   s8  t | } d}d}d}d}| d}|dkrN| |d  }| d | } ||O }nd}| d}|dkr| |d  }| d | } ||O }nd}| d}|dkr| |d  }| d | } ||O }nd}| }	g }
x`t|d D ]P}|| @ s|	}||@ r||7 }||@ r||7 }||@ r||7 }|
| qW |
  |
S )	Nr,      r7   r   @r   ._)r   Z	normalizer   rangeappendreverse)ZlocZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERmaskposZmodifiercodesetZ	territoryZlanguageZretr)   valr   r   r   _expand_lang   sJ    







 
 
 ra   c               @   sp   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd ZdddZdS )r   Nc             C   s.   i | _ d | _d | _d | _|d k	r*| | d S )N)_info_charset_output_charset	_fallbackr;   )selffpr   r   r   __init__   s    zNullTranslations.__init__c             C   s   d S )Nr   )rf   rg   r   r   r   r;     s    zNullTranslations._parsec             C   s   | j r| j | n|| _ d S )N)re   add_fallback)rf   fallbackr   r   r   ri   	  s    zNullTranslations.add_fallbackc             C   s   | j r| j |S |S )N)re   r   )rf   messager   r   r   r     s    zNullTranslations.gettextc             C   s2   | j r| j |S | jr$|| jS |t S )N)re   r   rd   encoder   getpreferredencoding)rf   rk   r   r   r   r     s
    zNullTranslations.lgettextc             C   s*   | j r| j |||S |dkr"|S |S d S )Nr,   )re   r   )rf   msgid1msgid2r3   r   r   r   r     s
    zNullTranslations.ngettextc             C   sH   | j r| j |||S |dkr$|}n|}| jr:|| jS |t S )Nr,   )re   r   rd   rl   r   rm   )rf   rn   ro   r3   tmsgr   r   r   r   #  s    zNullTranslations.lngettextc             C   s   | j S )N)rb   )rf   r   r   r   info.  s    zNullTranslations.infoc             C   s   | j S )N)rc   )rf   r   r   r   charset1  s    zNullTranslations.charsetc             C   s   | j S )N)rd   )rf   r   r   r   output_charset4  s    zNullTranslations.output_charsetc             C   s
   || _ d S )N)rd   )rf   rr   r   r   r   set_output_charset7  s    z#NullTranslations.set_output_charsetc             C   sv   dd l }| j|jd< t|drrd|kr6|jd |jd< d|krJ| j|jd< d|kr^| j|jd< d|krr| j|jd< d S )Nr   rY   __contains__r   r   r   r   )builtinsr   __dict__hasattrr   r   r   )rf   namesrv   r   r   r   r   :  s    
zNullTranslations.install)N)N)rI   
__module____qualname__rh   r;   ri   r   r   r   r   rq   rr   rs   rt   r   r   r   r   r   r      s   
c               @   sH   e Zd ZdZdZdZdd Zdd Zdd	 Zd
d Z	dd Z
dd ZdS )r   l   * l   $< )r   r,   c             C   s   |d? |d@ fS )z/Returns a tuple of major version, minor version   i  r   )rf   versionr   r   r   _get_versionsP  s    zGNUTranslations._get_versionsc       "      C   s  ddl m} t|dd}i  | _}dd | _| }t|}|d|dd	 d }|| jkr||d
|d	d \}}	}
}d}n6|| jkr|d|d	d \}}	}
}d}nt	dd|| 
|\}}|| jkrt	ddt| |xtd|	D ]}||||
|
d  \}}|| }|||||d  \}}|| }||k rd||k rd||| }||| }nt	dd||dkrXd}x|dD ]}|  }|sqd }}d|kr|dd\}}|  }| }|| j|< |}n|r| j|  d| 7  < |dkr"|dd | _n0|dkr|d}|d dd }t|| _qW | jpbd}d|kr|d\}} |d}t||}x>t|D ]\}}!t|!||||f< qW nt|||t||< |
d7 }
|d7 }qW dS )z8Override this method to support alternative .mo formats.r   )unpacknamer   c             S   s   t | dkS )Nr,   )r<   )r3   r   r   r   <lambda>]      z(GNUTranslations._parse.<locals>.<lambda>z<INr7   z<4IrN   z<IIz>4Iz>IIzBad magic numberzBad version number    zFile is corrupt   
r9   r,   
zcontent-typezcharset=zplural-forms;zplural=ascii    )Zstructr   getattr_catalogr   readrP   LE_MAGICBE_MAGICOSErrorr~   VERSIONSstrrZ   splitdecodestriplowerrb   rc   rU   	enumerate)"rf   rg   r   filenameZcatalogZbufZbuflenmagicr}   ZmsgcountZ	masteridxZtransidxZiiZmajor_versionZminor_versionr)   ZmlenZmoffZmendZtlenZtoffZtendmsgrp   ZlastkZb_itemitemkvr   rr   rn   ro   xr   r   r   r;   T  sr    














zGNUTranslations._parsec             C   sR   t  }| j||}||kr2| jr.| j|S |}| jrD|| jS |t S )N)	objectr   r?   re   r   rd   rl   r   rm   )rf   rk   missingrp   r   r   r   r     s    zGNUTranslations.lgettextc             C   sv   y| j || |f }W n< tk
rT   | jr>| j|||S |dkrL|}n|}Y nX | jrh|| jS |t S )Nr,   )	r   r   KeyErrorre   r   rd   rl   r   rm   )rf   rn   ro   r3   rp   r   r   r   r     s    
zGNUTranslations.lngettextc             C   s6   t  }| j||}||kr2| jr.| j|S |S |S )N)r   r   r?   re   r   )rf   rk   r   rp   r   r   r   r     s    zGNUTranslations.gettextc             C   sZ   y| j || |f }W n< tk
rT   | jr>| j|||S |dkrL|}n|}Y nX |S )Nr,   )r   r   r   re   r   )rf   rn   ro   r3   rp   r   r   r   r     s    
zGNUTranslations.ngettextN)rI   rz   r{   r   r   r   r~   r;   r   r   r   r   r   r   r   r   r   H  s   V	Fc             C   s   |d krt }|d krTg }x(dD ] }tj|}|r|d}P qW d|krT|d g }x0|D ](}x"t|D ]}||krl|| qlW q^W |rg }	nd }	xL|D ]D}|dkrP tj||dd|  }
tj	|
r|r|	|
 q|
S qW |	S )N)ZLANGUAGELC_ALLLC_MESSAGESZLANGr9   Cr   z%s.mo)
_default_localedirosenvironr?   r   r[   ra   pathjoinexists)domain	localedir	languagesallZenvarr`   ZnelangsZlangZnelangrA   mofiler   r   r   r     s8    




c          
   C   s   |d krt }t| ||dd}|sB|r*t S ddlm} t|d| d }x|D ]}	|tj|	f}
t	
|
}|d krt|	d}t	|
||}W d Q R X dd l}||}|r|| |d kr|}qL|| qLW |S )NT)r   r   )ENOENTz$No translation file found for domainrb)r   r   r   errnor   FileNotFoundErrorr   r   abspath_translationsr?   open
setdefaultcopyrt   ri   )r   r   r   Zclass_rj   r_   Zmofilesr   rA   r   keytrg   r   r   r   r   r     s0    



c             C   s   t | |d|d}|| d S )NT)rj   r_   )r   r   )r   r   r_   ry   r   r   r   r   r   &  s    Zmessagesc             C   s   | d k	r| a t S )N)_current_domain)r   r   r   r   r   4  s    c             C   s   |d k	r|t | < t | tS )N)_localedirsr?   r   )r   r   r   r   r   r	   ;  s    c             C   s   |d k	r|t | < t | S )N)_localecodesetsr?   )r   r_   r   r   r   r
   B  s    c             C   s@   y t | t| d t| d}W n tk
r4   |S X ||S )N)r_   )r   r   r?   r   r   r   )r   rk   r   r   r   r   r   I  s    c             C   sR   t | }yt| t| d |d}W n" tk
rF   ||pBt S X ||S )N)r_   )	r   r?   r   r   r   rl   r   rm   r   )r   rk   r_   r   r   r   r   r   Q  s    
c             C   sT   y t | t| d t| d}W n$ tk
rD   |dkr<|S |S Y nX ||||S )N)r_   r,   )r   r   r?   r   r   r   )r   rn   ro   r3   r   r   r   r   r   Y  s    
c             C   sh   t | }yt| t| d |d}W n4 tk
rX   |dkrB|}n|}||pTt S X ||||S )N)r_   r,   )	r   r?   r   r   r   rl   r   rm   r   )r   rn   ro   r3   r_   r   rp   r   r   r   r   d  s    
c             C   s
   t t| S )N)r   r   )rk   r   r   r   r   p  s    c             C   s
   t t| S )N)r   r   )rk   r   r   r   r   s  s    c             C   s   t t| ||S )N)r   r   )rn   ro   r3   r   r   r   r   v  s    c             C   s   t t| ||S )N)r   r   )rn   ro   r3   r   r   r   r   y  s    )r/   )NNF)NNNFN)NNN)N)N)N),__doc__r   r   r   sys__all__r   r   base_prefixr   compileVERBOSEDOTALLr   r   r    r=   r   r>   r;   rM   rU   ra   r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sX   &



1$*K 
& 
#



