ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 4\0Xc@sodZddlZddlZddlmZmZddlmZmZdZ dZ dZ e dZ dS( s babel.messages.mofile ~~~~~~~~~~~~~~~~~~~~~ Writing of files in the ``gettext`` MO (machine object) format. :copyright: (c) 2013 by the Babel Team. :license: BSD, see LICENSE for more details. iN(tCatalogtMessage(t range_typet array_tobytesIIcCs]t}i}t|dd}|j}t|}tj}|d|d d}|tkr|d|dd!\}} } } d} nI|tkr|d |dd!\}} } } d } ntdd |xnt d| D]]} || || | d !\}}||}|| || | d !\}}||}||krx||krx|||!}|||!}ntdd ||dkr<d}}x|j D]}|j }|sqnd|kr|j dd\}}|j j}}|j ||4Is>IIsBad magic numberisFile is corruptt:is sstcontextN(RtgetattrtreadtlentstructtunpacktLE_MAGICtBE_MAGICtIOErrorRtNonet splitlineststriptsplittlowertcharsettdecodeRtitemst mime_headers(tfileobjtcatalogtheaderstfilenametbuftbuflenR tmagictversiontmsgcounttorigidxttransidxtiititmlentmofftmendttlenttoffttendtmsgttmsgtlastkeytkeytitemtvaluetctxttx((s9/usr/lib/python2.7/site-packages/babel/messages/mofile.pytread_mosh     "  "             %+  c Cst|}|s?g|dD]}|js|^q|d)n|jd}}g}x|D]}|jr0djg|jD]} | j|j^q} g} xVt|j D]E\} } | s| j |jt t | dq| j | qWdjg| D]} | j|j^q } nK|jj|j} |j sf|jj|j} n|j j|j} |j rdj|j j|j| g} n|j t|t| t|t| f|| d7}|| d7}q`Wd dt|}|t|}g}g}xB|D]:\}}}}||||g7}||||g7}q3W||}|jtjdtd t|ddt|d d d ttjd |||d S(sWrite a catalog to the specified file-like object using the GNU MO file format. >>> import sys >>> from babel.messages import Catalog >>> from gettext import GNUTranslations >>> from babel._compat import BytesIO >>> catalog = Catalog(locale='en_US') >>> catalog.add('foo', 'Voh') >>> catalog.add((u'bar', u'baz'), (u'Bahr', u'Batz')) >>> catalog.add('fuz', 'Futz', flags=['fuzzy']) >>> catalog.add('Fizz', '') >>> catalog.add(('Fuzz', 'Fuzzes'), ('', '')) >>> buf = BytesIO() >>> write_mo(buf, catalog) >>> x = buf.seek(0) >>> translations = GNUTranslations(fp=buf) >>> if sys.version_info[0] >= 3: ... translations.ugettext = translations.gettext ... translations.ungettext = translations.ngettext >>> translations.ugettext('foo') u'Voh' >>> translations.ungettext('bar', 'baz', 1) u'Bahr' >>> translations.ungettext('bar', 'baz', 2) u'Batz' >>> translations.ugettext('fuz') u'fuz' >>> translations.ugettext('Fizz') u'Fizz' >>> translations.ugettext('Fuzz') u'Fuzz' >>> translations.ugettext('Fuzzes') u'Fuzzes' :param fileobj: the file-like object to write to :param catalog: the `Catalog` instance :param use_fuzzy: whether translations marked as "fuzzy" should be included in the output iRssiiitIiiiiiiiiR%Niii(tlisttfuzzytsortt pluralizabletjointidtencodeRt enumeratetstringtappendtmintintRR twriteR tpackR Rtarray(RRt use_fuzzytmessagestmtidststrstoffsetstmessagetmsgidtmsgstrstidxR>tmsgstrtkeystartt valuestarttkoffsetstvoffsetsto1tl1to2tl2((s9/usr/lib/python2.7/site-packages/babel/messages/mofile.pytwrite_moksJ0 -    +&+  1 (t__doc__RDR tbabel.messages.catalogRRt babel._compatRRR RR4tFalseRX(((s9/usr/lib/python2.7/site-packages/babel/messages/mofile.pyt s   T