ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
i fQ                 @   s  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m	 Z	 d d d d d d	 d
 d d d d d d d d d d g Z
 e j j e j d d  Z e j d e j e j B Z d d   Z d d   Z dO Z d) d*   e e d+  D Z i d, d 6d- d 6d. d' 6Z dP d/ d0  Z d1 d2   Z d3 d4   Z d5 d6   Z Gd7 d   d  Z Gd8 d   d e  Z d d d9 d: d  Z i  Z d d d d9 d d; d  Z  d d d d< d	  Z! i  a" i  a# d= a$ d d> d
  Z% d d? d  Z& d d@ d  Z' dA d   Z( dB d   Z) dC d   Z* dD d   Z+ dE d   Z, dF d   Z- dG d   Z. dH d   Z/ e  Z0 d S)Qa  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)ENOENT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   xh t  j t |   D]T } | j } | d k r4 q n  | j |  } | d k rb t d |   n  | Vq Wd 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/python34/lib64/python3.4/gettext.py	_tokenizeT   s    		r    c             C   s"   |  r t  d |   St  d  Sd  S)Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r   r   r   r   _error_   s    r!   ||&&==!=<><=>=+-*/%c             C   s,   i  |  ]" \ } } | D] } | |  q q Sr   r   ).0iZopsopr   r   r   
<dictcomp>m   s   	 r2      orandz//c             C   sQ  d } t  |   } x& | d k r: | d 7} t  |   } q W| d k r t |   \ } } d | | f } | d k r t d   q nf | d k r d	 | | f } nG y t | d
  } Wn! t k
 r t |  d   Yn Xd | | f } t  |   } d } x | t k rt | } | | k  r(Pn  | d k rM| d k rMd | } n  t j | |  } t |  | d  \ }	 } d | | |	 f } | } qW| | k od k n rd | } n  | d k rG| d k rGt |  d  \ }
 } | d k rt |   n  t |   \ } } d |
 | | f } | d k rGd | } qGn  | | f S)Nr   !znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s
   z%s%dd         z(%s)r3   z%s %s %s?r   :z%s if %s else %s)r<   r=   )r<   r=   )next_parser   intr!   _binary_ops	_c2py_opsget)tokensZpriorityresultnexttoksubr   jr0   r1   rightZif_trueZif_falser   r   r   rA   p   sP    


rA   c             C   sE   y t  |   } Wn. t k
 r@ t d |  j j f  d   Yn X|  S)Nz'Plural value must be an integer, got %s)round	TypeError	__class____name__)r9   r0   r   r   r   _as_int   s    rP   c             C   s  t  |   d k r! t d   n  y t t |    \ } } | rQ t |   n  d } x[ | D]S } | d k r | d 7} | d k r t d   q q^ | d k r^ | d 8} q^ q^ Wi t d	 6} t d
 | |  | d SWn t k
 r t d   Yn Xd 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   r7   r3      z%plural form expression is too complexr8   rP   zif True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            funcN)lenr   rA   r    r!   rP   execRuntimeError)r   rG   rH   Zdepthcnsr   r   r   c2py   s(    
rX   c             C   s  t  j |   }  d } d	 } d
 } d } |  j d  } | d k ro |  | d   } |  d  |  }  | | O} n d } |  j d  } | d k r |  | d   } |  d  |  }  | | O} n d } |  j d  } | d k r|  | d   } |  d  |  }  | | O} n d } |  }	 g  }
 x~ t | d  D]l } | | @s.|	 } | | @r\| | 7} n  | | @rs| | 7} n  | | @r| | 7} n  |
 j |  q.q.W|
 j   |
 S)Nr3   r      @r   ._r3   rY   r=   )r   Z	normalizer   rangeappendreverse)locZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERmaskposZmodifiercodesetZ	territoryZlanguageZretr0   valr   r   r   _expand_lang   sJ    
 
 
 
re   c               @   s   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   sD   i  |  _  d  |  _ d  |  _ d  |  _ | d  k	 r@ |  j |  n  d  S)N)_info_charset_output_charset	_fallbackrA   )selffpr   r   r   __init__   s    				zNullTranslations.__init__c             C   s   d  S)Nr   )rj   rk   r   r   r   rA      s    zNullTranslations._parsec             C   s)   |  j  r |  j  j |  n	 | |  _  d  S)N)ri   add_fallback)rj   fallbackr   r   r   rm     s    	zNullTranslations.add_fallbackc             C   s   |  j  r |  j  j |  S| S)N)ri   r   )rj   messager   r   r   r   	  s    	zNullTranslations.gettextc             C   s   |  j  r |  j  j |  S| S)N)ri   r   )rj   ro   r   r   r   r     s    	zNullTranslations.lgettextc             C   s7   |  j  r |  j  j | | |  S| d k r/ | S| Sd  S)Nr3   )ri   r   )rj   msgid1msgid2r9   r   r   r   r     s
    	zNullTranslations.ngettextc             C   s7   |  j  r |  j  j | | |  S| d k r/ | S| Sd  S)Nr3   )ri   r   )rj   rp   rq   r9   r   r   r   r     s
    	zNullTranslations.lngettextc             C   s   |  j  S)N)rf   )rj   r   r   r   info#  s    zNullTranslations.infoc             C   s   |  j  S)N)rg   )rj   r   r   r   charset&  s    zNullTranslations.charsetc             C   s   |  j  S)N)rh   )rj   r   r   r   output_charset)  s    zNullTranslations.output_charsetc             C   s   | |  _  d  S)N)rh   )rj   rs   r   r   r   set_output_charset,  s    z#NullTranslations.set_output_charsetc             C   s   d d  l  } |  j | j d <t | d  r d | k rN | j d | j d <n  d | k rm |  j | j d <n  d | k r |  j | j d <n  d | k r |  j | j d <q n  d  S)Nr   r\   __contains__r   r   r   r   )builtinsr   __dict__hasattrr   r   r   )rj   namesrw   r   r   r   r   /  s    zNullTranslations.install)rO   
__module____qualname__rl   rA   rm   r   r   r   r   rr   rs   rt   ru   r   r   r   r   r   r      s   c               @   sX   e  Z d  Z d Z d Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z	 d S)r   l   * l   $< c              C   s  t  j } t | d d  } i  |  _ } d d   |  _ | j   } t |  } | d | d d   d } | |  j k r | d	 | d d
   \ } }	 }
 } d } nO | |  j k r | d | d d
   \ } }	 }
 } d } n t	 d d |   xt
 d |	  D]} | | | |
 |
 d   \ } } | | } | | | | | d   \ } } | | } | | k  r| | k  r| | |  } | | |  } n t	 d d |   | d k rd } x*| j d j d   D]} | j   j   } | sqn  d } } d | k rf| j d d  \ } } | j   j   } | j   } | |  j | <| } n | r|  j | d | 7<n  | d k r| j d  d |  _ q| d k r| j d  } | d j d  d } t |  |  _ qqWn  |  j p d } d | k r{| j d  \ } } | j d  } t | |  } xR t |  D]% \ } } t | |  | | | f <qOWn t | |  | t | |  <|
 d 7}
 | d 7} qWd S)z8Override this method to support alternative .mo formats.namer   c             S   s   t  |  d k  S)Nr3   )rB   )r9   r   r   r   <lambda>I  s    z(GNUTranslations._parse.<locals>.<lambda>z<INr=   r   z<4IrQ   z<IIz>4Iz>IIzBad magic number   zFile is corrupt
asciir?   r3   zcontent-typezcharset=zplural-forms;zplural=s    )structunpackgetattr_catalogr   readrS   LE_MAGICBE_MAGICOSErrorr]   splitencodedecodestriplowerrf   rg   rX   str	enumerate) rj   rk   r   filenameZcatalogZbufZbuflenmagicversionZmsgcountZ	masteridxZtransidxZiir0   ZmlenZmoffZmendZtlenZtoffZtendmsgtmsgZlastkZb_itemitemkvr   rs   rp   rq   xr   r   r   rA   B  sl    	%	%	#
#

	
 
zGNUTranslations._parsec             C   ss   t    } |  j j | |  } | | k rG |  j rC |  j j |  S| S|  j r` | j |  j  S| j t j    S)N)	objectr   rE   ri   r   rh   r   r   getpreferredencoding)rj   ro   missingr   r   r   r   r     s    			zGNUTranslations.lgettextc             C   s   yL |  j  | |  j |  f } |  j r8 | j |  j  S| j t j    SWnE t k
 r |  j r{ |  j j | | |  S| d k r | S| SYn Xd  S)Nr3   )	r   r   rh   r   r   r   KeyErrorri   r   )rj   rp   rq   r9   r   r   r   r   r     s    		zGNUTranslations.lngettextc             C   sK   t    } |  j j | |  } | | k rG |  j rC |  j j |  S| S| S)N)r   r   rE   ri   r   )rj   ro   r   r   r   r   r   r     s    		zGNUTranslations.gettextc             C   ss   y  |  j  | |  j |  f } WnL t k
 rn |  j rO |  j j | | |  S| d k rd | } n | } Yn X| S)Nr3   )r   r   r   ri   r   )rj   rp   rq   r9   r   r   r   r   r     s     		zGNUTranslations.ngettextN)
rO   r{   r|   r   r   rA   r   r   r   r   r   r   r   r   r   =  s   N	Fc             C   sT  | d  k r t  } n  | d  k r g  } x9 d D]1 } t j j |  } | r. | j d  } Pq. q. Wd | k r | j d  q n  g  } xA | D]9 } x0 t |  D]" } | | k r | j |  q q Wq W| r g  }	 n d  }	 xl | D]d } | d k r Pn  t j j | | d d |   }
 t j j	 |
  r | rE|	 j |
  qL|
 Sq q W|	 S)	NLANGUAGELC_ALLLC_MESSAGESLANGr?   Cz%s.mo)r   zLC_ALLzLC_MESSAGESr   )
_default_localedirosenvironrE   r   r^   re   pathjoinexists)domain	localedir	languagesallZenvarrd   ZnelangsZlangZnelangrG   mofiler   r   r   r     s8    		c             C   s  | d  k r t  } n  t |  | | d d } | sU | r@ t   St t d |    n  d  } x | D] } | t j j |  f }	 t j	 |	  }
 |
 d  k r t
 | d   } t j |	 | |   }
 Wd  QXn  t j |
  }
 | r |
 j |  n  | d  k r|
 } qb | j |
  qb W| S)Nr   Tz$No translation file found for domainrb)r   r   r   r   r   r   r   abspath_translationsrE   open
setdefaultcopyru   rm   )r   r   r   Zclass_rn   rc   ZmofilesrG   r   keytrk   r   r   r   r     s*    	!	c             C   s,   t  |  | d d d | } | j |  d  S)Nrn   Trc   )r   r   )r   r   rc   rz   r   r   r   r   r     s    Zmessagesc             C   s   |  d  k	 r |  a  n  t  S)N)_current_domain)r   r   r   r   r	     s    	c             C   s)   | d  k	 r | t  |  <n  t  j |  t  S)N)_localedirsrE   r   )r   r   r   r   r   r
     s    c             C   s&   | d  k	 r | t  |  <n  t  j |   S)N)_localecodesetsrE   )r   rc   r   r   r   r   #  s    c             C   sT   y. t  |  t j |  d   d t j |   } Wn t k
 rF | SYn X| j |  S)Nrc   )r   r   rE   r   r   r   )r   ro   r   r   r   r   r   *  s    	c             C   sT   y. t  |  t j |  d   d t j |   } Wn t k
 rF | SYn X| j |  S)Nrc   )r   r   rE   r   r   r   )r   ro   r   r   r   r   r   2  s    	c             C   sj   y. t  |  t j |  d   d t j |   } Wn& t k
 rV | d k rN | S| SYn X| j | | |  S)Nrc   r3   )r   r   rE   r   r   r   )r   rp   rq   r9   r   r   r   r   r   :  s    	c             C   sj   y. t  |  t j |  d   d t j |   } Wn& t k
 rV | d k rN | S| SYn X| j | | |  S)Nrc   r3   )r   r   rE   r   r   r   )r   rp   rq   r9   r   r   r   r   r   E  s    	c             C   s   t  t |   S)N)r   r   )ro   r   r   r   r   P  s    c             C   s   t  t |   S)N)r   r   )ro   r   r   r   r   S  s    c             C   s   t  t |  | |  S)N)r   r   )rp   rq   r9   r   r   r   r   V  s    c             C   s   t  t |  | |  S)N)r   r   )rp   rq   r9   r   r   r   r   Y  s    r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r   r   r   r   r   r   )1__doc__r   r   ior   r   r   syserrnor   __all__r   r   base_prefixr   compileVERBOSEDOTALLr   r    r!   rC   r   rD   rA   rP   rX   re   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>   s\   &T	     1$*F&