__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

*:�gce���SrSSKJr SSKrSSKrSSKJr SSKJrJ	r	 SSK
Jr SSKJ
r
Jr SSKJrJr \(aSS	KJrJr SS
KJr S SjrS SjrS!S
jr"SS\5r"SS5r"SS5rS"S#Sjjr\R<"S5rS Sjr S$S%Sjjr!S&Sjr"S'S(Sjjr#SSSSSSSS.S)Sjjr$S*Sjr%g)+z�
babel.messages.pofile
~~~~~~~~~~~~~~~~~~~~~

Reading and writing of files in the ``gettext`` PO (portable object)
format.

:copyright: (c) 2013-2025 by the Babel Team.
:license: BSD, see LICENSE for more details.
�)�annotationsN)�Iterable)�
TYPE_CHECKING�Literal)�Locale)�Catalog�Message)�TextWrapper�_cmp)�IO�AnyStr)�
SupportsWritec�X�Sn[R"S5RXSS5$)z�Reverse `escape` the given string.

>>> print(unescape('"Say:\\n  \\"hello, world!\\"\\n"'))
Say:
  "hello, world!"
<BLANKLINE>

:param string: the string to unescape
c�R�URS5nUS:XagUS:XagUS:XagU$)N��n�
�t�	�r�
)�group)�match�ms  �7/usr/lib/python3/dist-packages/babel/messages/pofile.py�replace_escapes�!unescape.<locals>.replace_escapes&s2���K�K��N����8��
�#�X��
�#�X����z\\([\\trn"])r���)�re�compile�sub)�stringrs  r�unescaper$s)��	��:�:�o�&�*�*�?�1�R�L�I�Irc��SU;aLUR5nURS5(aUSSn[[U5nSR	U5$[U5$)a�Reverse the normalization done by the `normalize` function.

>>> print(denormalize(r'''""
... "Say:\n"
... "  \"hello, world!\"\n"'''))
Say:
  "hello, world!"
<BLANKLINE>

>>> print(denormalize(r'''""
... "Say:\n"
... "  \"Lorem ipsum dolor sit "
... "amet, consectetur adipisicing"
... " elit, \"\n"'''))
Say:
  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
<BLANKLINE>

:param string: the string to denormalize
r�""rN�)�
splitlines�
startswith�mapr$�join)r#�
escaped_lines�liness   r�denormalizer.3s[��*�v�~��)�)�+�
����T�"�"�)�!�"�-�M��H�m�,���w�w�u�~�����rc��SU;a$SU;aUR5R5$/nSnSnUHpnUS:XaU(a[S5eSnMUS:XaU(d[S5eSnM;US:Xa+U(aX$-
nMNU(aURU5 SnMjMlX$-
nMr U(a#U(a[S5eURU5 U$)	z�Extract locations from location comments.

Locations are extracted while properly handling First Strong
Isolate (U+2068) and Pop Directional Isolate (U+2069), used by
gettext to enclose filenames with spaces and tabs in their names.
�⁨�⁩r'Fzglocation comment contains more First Strong Isolate characters, than Pop Directional Isolate charactersTzglocation comment contains more Pop Directional Isolate characters, than First Strong Isolate characters� )�lstrip�split�
ValueError�append)�line�	locations�location�in_filename�cs     r�_extract_locationsr<Rs����t���� 4��{�{�}�"�"�$�$��I��H��K�
����=�� �"W�X�X��K��
�(�]�� �"T�U�U��K��
�#�X���
���� � ��*����
�M�H�)�,�� �"W�X�X����X�&��rc�0^�\rSrSrSrSU4SjjrSrU=r$)�PoFileError�~zDException thrown by PoParser when an invalid po file is encountered.c�R>�[TU]USU35 X lX0lX@lg)Nz on )�super�__init__�catalogr7�lineno)�self�messagerCr7rD�	__class__s     �rrB�PoFileError.__init__�s*���
���G�9�D���1�2����	��r)rCr7rD)
rF�strrCrr7rIrD�int�return�None)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rB�__static_attributes__�
__classcell__)rGs@rr>r>~s���N��rr>c��\rSrSrSSjrSSjrSSjrSSjrSSjrSSjr	SSjr
SS	jrSS
jrSSjr
SSjrSS
jrSrg)�_NormalizedString�c�F�/UlUHnURU5 M g�N)�_strsr6)rE�args�args   rrB�_NormalizedString.__init__�s�� "��
��C��K�K���rc�V�URRUR55 grX)rYr6�strip)rE�ss  rr6�_NormalizedString.append�s���
�
���!�'�'�)�$rc�T�SR[[UR55$)Nr')r+r*r$rY�rEs rr.�_NormalizedString.denormalize�s���w�w�s�8�T�Z�Z�0�1�1rc�,�[UR5$rX)�boolrYrbs r�__bool__�_NormalizedString.__bool__�s���D�J�J��rc�T�[RRUR5$rX)�os�linesepr+rYrbs r�__repr__�_NormalizedString.__repr__�s���z�z���t�z�z�*�*rc�N�U(dg[[U5[U55$)Nr)rrI�rE�others  r�__cmp__�_NormalizedString.__cmp__�s�����C��I�s�5�z�*�*rc�*�URU5S:�$�Nr�rprns  r�__gt__�_NormalizedString.__gt__�����|�|�E�"�Q�&�&rc�*�URU5S:$rsrtrns  r�__lt__�_NormalizedString.__lt__�rwrc�*�URU5S:�$rsrtrns  r�__ge__�_NormalizedString.__ge__�����|�|�E�"�a�'�'rc�*�URU5S:*$rsrtrns  r�__le__�_NormalizedString.__le__�r~rc�*�URU5S:H$rsrtrns  r�__eq__�_NormalizedString.__eq__�r~rc�*�URU5S:g$rsrtrns  r�__ne__�_NormalizedString.__ne__�r~r)rYN)rZrIrKrL)r_rIrKrL)rKrI)rKre)ro�objectrKrJ)ror�rKre)rMrNrOrPrBr6r.rfrkrpruryr|r�r�r�rR�rrrUrU�s>���
%�2� �+�+�'�'�(�(�(�(rrUc��\rSrSrSr/SQrSSSjjrSSjrSSjrSSjr	SSSjjr
SSS	jjrSS
jrSSjr
SSjrSS
jrSrg)�PoFileParser�z�Support class to  read messages from a ``gettext`` PO (portable object) file
and add them to a `Catalog`

See `read_po` for simple cases.
)�msgid�msgstr�msgctxt�msgid_pluralc�d�XlX lSUlSUlX0lUR5 grs)rC�ignore_obsolete�counter�offset�
abort_invalid�_reset_message_state)rErCr�r�s    rrB�PoFileParser.__init__�s-����.��������*���!�!�#rc��/Ul/Ul/Ul/Ul/Ul/UlSUlSUlSUlSUl	SUl
g)NF)�messages�translationsr8�flags�
user_comments�
auto_comments�context�obsolete�in_msgid�	in_msgstr�
in_msgctxtrbs rr��!PoFileParser._reset_message_state�sR����
���������
������������
���
������rc��URR5 [UR5S:�a[	SUR55nOURSR5n[
U[[45(a�[URR5Vs/sHnSPM nnURHOupEX@RR:�aURSURS5 M=UR5X4'MQ [	U5nO URSSR5nUR(aURR5OSn[X[UR5[!UR"5UR$UR&URS-US9nUR((aCUR*(d1XpRR(URR-X5'OXpRU'U=R.S-
slUR15 gs snf)zw
Add a message to the catalog based on the current parser state and
clear the state ready to process the next message.
rc3�@# �UHoR5v� M g7frX)r.)�.0rs  r�	<genexpr>�,PoFileParser._add_message.<locals>.<genexpr>�s���A�=�a�-�-�/�/�=�s�rr'z5msg has more translations than num_plurals of catalogN)rDr�)r��sort�lenr��tupler.�
isinstance�list�rangerC�num_plurals�_invalid_pofiler�r�r	r8�setr�r�r�r�r��_key_forr�r�)rEr��_r#�idx�translationr�rFs        r�_add_message�PoFileParser._add_message�s���
	
����� ��t�}�}���!��A�4�=�=�A�A�E��M�M�!�$�0�0�2�E��e�d�E�]�+�+�"'����(@�(@�"A�B�"A�Q�b�"A�F�B�$(�$5�$5� ���,�,�2�2�2��(�(��T�[�[�:q�r��)�5�5�7���	%6�
�6�]�F��&�&�q�)�!�,�8�8�:�F�04���$�,�,�*�*�,�$���%��d�n�n�)=�s�4�:�:���,�,�d�.@�.@����WX��")�+���=�=��'�'�OV���%�%�d�l�l�&;�&;�E�&K�L��")�L�L����������!�!�#��'Cs�*Ic�.�UR(a�UR(dbURSURSURSR	5S35 URRS[
S5/5 UR5 gg)Nr'zmissing msgstr for msgid 'r�')r�r�r�r�r.r6rUr�rbs r�_finish_current_message�$PoFileParser._finish_current_message�sz���=�=��$�$��$�$�R����8R�SW�S`�S`�ab�Sc�So�So�Sq�Rr�rs�6t�u��!�!�(�(�!�->�r�-B�)C�D�����	rc�x�URS5(aURX!5 gURXU5 g)N�")r)�!_process_string_continuation_line�_process_keyword_line)rErDr7r�s    r�_process_message_line�"PoFileParser._process_message_line�s/���?�?�3����2�2�4�@��&�&�v�X�>rc�<�URH>nURU5(a$U[U5S;aU[U5Sn OM>M@ UR	X!S5 gUS;aUR5 X0lUS:XaXlUS;a3SUlSUl	URR[U55 gUS	:Xa�SUl	SUl
URS
5(aGUSSRSS5upgURR[!U5[U5/5 gURRS
[U5/5 gUS:XaSUl[U5Ulgg![a UR	X!S5 GM�f=f)N)r2�[z$Keyword must be followed by a stringz0Start of line didn't match any expected keyword.)r�r�r�)r�r�FTr�r�r�]rr�)�	_keywordsr)r��
IndexErrorr�r�r�r�r�r�r�r6rUr�r4r�rJr�)rErDr7r��keywordr[r��msgs        rr��"PoFileParser._process_keyword_lines����~�~�G�
[��?�?�7�+�+��S��\�0B�j�0P��s�7�|�}�-�C��1Q�+�&�
� � ��/a�b���*�*��(�(�*� �
��g�� �K��/�/�#�D�O� �D�M��M�M� � �!2�3�!7�8�
��
 �!�D�M�!�D�N��~�~�c�"�"��q�r�7�=�=��a�0����!�!�(�(�#�c�(�4E�c�4J�)K�L��!�!�(�(�!�->�s�-C�)D�E�
�	�
!�"�D�O�,�S�1�D�L�"��=�
[��$�$�T�3Y�Z�Z�
[�s�6E:�:F�Fc��UR(aURSnOUUR(aURSSnO1UR(a
UR
nOUR
XS5 gURU5 g)Nrrz<Got line starting with " but not in msgid, msgstr or msgctxt)r�r�r�r�r�r�r�r6)rEr7rDr_s    rr��.PoFileParser._process_string_continuation_line-sb���=�=��
�
�b�!�A�
�^�^��!�!�"�%�a�(�A�
�_�_����A�� � ��/n�o��	����rc�D�UR5 USSRS5(a}[USS5HjnURS5nUS:�a3[	X#S-S5nURRUSUU45 MMURRUS45 Ml gUSSRS5(aSUSSR5RS5H,nURRUR55 M. gUSSRS5(a7USSR5nU(aURRU5 ggURRUSSR55 g![
a GMff=f)Nr�:�r�,�.)r�r)r<�rfindrJr5r8r6r3r4r�r^r�r�)rEr7r9�posrD�flag�comments       r�_process_comment�PoFileParser._process_comment9sl���$�$�&����8���s�#�#�.�t�A�B�x�8���n�n�S�)���!�8�!�!$�X�A�g�h�%7�!8���N�N�)�)�8�D�S�>�6�*B�C��N�N�)�)�8�T�*:�;�9��!�"�X�
 �
 ��
%�
%��Q�R����)�/�/��4���
�
�!�!�$�*�*�,�/�5�
�!�"�X�
 �
 ��
%�
%��1�2�h�n�n�&�G���"�"�)�)�'�2��
���%�%�d�1�2�h�n�n�&6�7��&�!� �!�s�F�
F�Fc	��[U5H�up#UR5n[U[5(d%UR	UR
R5nU(dMXURS5(aPUSSRS5(a#URX#SSR5SS9 M�URU5 M�URX#5 M� UR5 UR(d�UR(d"UR (dUR"(a[UR$R'[)S55 UR*R'S	[)S5/5 UR-5 ggg![a'nURX2[U55 SnAGM�SnAff=f)
z�
Reads from the file-like object `fileobj` and adds any po file
units found in it to the `Catalog` supplied to the constructor.
�#rN�~r�T)r�r&r)�	enumerater^r�rI�decoderC�charsetr)r�r3r�r5r�r�r�r�r�r�r�r6rUr�r�)rE�fileobjrDr7�excs     r�parse�PoFileParser.parseTsZ��&�g�.�L�F��:�:�<�D��d�C�(�(��{�{�4�<�<�#7�#7�8�������s�#�#����8�&�&�s�+�+��.�.�v�A�B�x���7H�SW�.�X�E��-�-�d�3��*�*�6�8�/�"	
�$�$�&��|�|����t�/A�/A�T�EW�EW��M�M� � �!2�4�!8�9����$�$�a�):�4�)@�%A�B�����FX�|��&�E��,�,�T�3�s�8�D�D��E�s�7F�
G�F<�<Gc���[U[5(deUR(a[X0RX5e[SU5 [SUS-SU<35 g)NzWARNING:zWARNING: Problem on line rz: )r�rIr�r>rC�print)rEr7rDr�s    rr��PoFileParser._invalid_pofiletsS���$��$�$�$�$�����c�<�<��>�>�
�j�#��
�)�&�1�*��R��x�@�Ar)r�r�rCr�r�r�r�r�r�r�r8r�r�r�r�r�N)FF)rCrr�rer�rerKrL)rKrL)F)r��IO[AnyStr] | Iterable[AnyStr]rKrL)rMrNrOrPrQr�rBr�r�r�r�r�r�r�r�r�rRr�rrr�r��sD����I�$� �$�@ �?�'2�R
�8�6 �@Brr�Fc�P�[XUS9n[XcUS9nURU5 U$)aRead messages from a ``gettext`` PO (portable object) file from the given
file-like object (or an iterable of lines) and return a `Catalog`.

>>> from datetime import datetime
>>> from io import StringIO
>>> buf = StringIO('''
... #: main.py:1
... #, fuzzy, python-format
... msgid "foo %(name)s"
... msgstr "quux %(name)s"
...
... # A user comment
... #. An auto comment
... #: main.py:3
... msgid "bar"
... msgid_plural "baz"
... msgstr[0] "bar"
... msgstr[1] "baaz"
... ''')
>>> catalog = read_po(buf)
>>> catalog.revision_date = datetime(2007, 4, 1)

>>> for message in catalog:
...     if message.id:
...         print((message.id, message.string))
...         print(' ', (message.locations, sorted(list(message.flags))))
...         print(' ', (message.user_comments, message.auto_comments))
(u'foo %(name)s', u'quux %(name)s')
  ([(u'main.py', 1)], [u'fuzzy', u'python-format'])
  ([], [])
((u'bar', u'baz'), (u'bar', u'baaz'))
  ([(u'main.py', 3)], [])
  ([u'A user comment'], [u'An auto comment'])

.. versionadded:: 1.0
   Added support for explicit charset argument.

:param fileobj: the file-like object (or iterable of lines) to read the PO file from
:param locale: the locale identifier or `Locale` object, or `None`
               if the catalog is not bound to a locale (which basically
               means it's a template)
:param domain: the message domain
:param ignore_obsolete: whether to ignore obsolete messages in the input
:param charset: the character set of the catalog.
:param abort_invalid: abort read if po file is invalid
)�locale�domainr�)r�)rr�r�)r�r�r�r�r�r�rC�parsers        r�read_por�|s.��l�V�G�D�G�
�'�-�
P�F�
�L�L����NrzL(\s+|[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))c��SURSS5RSS5RSS5RSS	5RS
S5-$)z�Escape the given string so that it can be included in double-quoted
strings in ``PO`` files.

>>> escape('''Say:
...   "hello, world!"
... ''')
'"Say:\\n  \\"hello, world!\\"\\n"'

:param string: the string to escape
z"%s"�\z\\rz\trz\rrz\nr�z\")�replace)r#s r�escaper��sN���F�N�N�4��0�"�7�4��/�"�7�4��/�"�7�4��/�"�7�4��/�	0�0r�Lc
��U(Ga8US:�Ga1[U5n/nURS5GH
n[[U55U-U:�a�[R	U5nUR5 U(a�/nSnU(ay[[US55S-
U-n	X�-U:a$UR
UR55 X�-
nO'U(dUR
UR55 O	U(aMyUR
SRU55 U(aM�M�M�UR
U5 GM OURS5n[U5S::a[U5$U(aUS(dUS	US==S-
ss'SSRUVs/sHoQ[U5-PM sn5-$s snf)	a]Convert a string into a format that is appropriate for .po files.

>>> print(normalize('''Say:
...   "hello, world!"
... ''', width=None))
""
"Say:\n"
"  \"hello, world!\"\n"

>>> print(normalize('''Say:
...   "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
... ''', width=32))
""
"Say:\n"
"  \"Lorem ipsum dolor sit "
"amet, consectetur adipisicing"
" elit, \"\n"

:param string: the string to normalize
:param prefix: a string that should be prepended to every line
:param width: the maximum line width; use `None`, 0, or a negative number
              to completely disable line wrapping
rTr�rr'rrz""
)	r�r(r��WORD_SEPr4�reverser6�popr+)
r#�prefix�width�	prefixlenr-r7�chunks�buf�size�lengths
          r�	normalizer��sn��0
������K�	����%�%�d�+�D��6�$�<� �9�,�u�4�!����-����� ���C��D� �!$�V�F�2�J�%7�!8�1�!<�y�!H���=�5�0��J�J�v�z�z�|�4� �N�D�#&�!$�
�
�6�:�:�<� 8�!�!�&��L�L������.��f� ���T�"�),�,�!�!�$�'��
�5�z�Q���f�~��
�U�2�Y��"�I�
�b�	�T��	��D�I�I�5�I�5�4���� 5�5�I�J�J�J��Is�F=
c��SU;aSU;aU$URS5(dSU-nURS5(dUS-
nU$)z�Enclose filenames which include white spaces or tabs.

Do the same as gettext and enclose filenames which contain white
spaces or tabs with First Strong Isolate (U+2068) and Pop
Directional Isolate (U+2069).
r2rr0r1)r)�endswith)�filenames r�_enclose_filename_if_necessaryr�sS���(��t�8�3������x�(�(��h�&�����X�&�&��H����OrTc
���Sn
U(aSn
O	U(aSn
[UUU	UUUU
US9HEn[U[5(aURURS5nURU5 MG g)a-Write a ``gettext`` PO (portable object) template file for a given
message catalog to the provided file-like object.

>>> catalog = Catalog()
>>> catalog.add(u'foo %(name)s', locations=[('main.py', 1)],
...             flags=('fuzzy',))
<Message...>
>>> catalog.add((u'bar', u'baz'), locations=[('main.py', 3)])
<Message...>
>>> from io import BytesIO
>>> buf = BytesIO()
>>> write_po(buf, catalog, omit_header=True)
>>> print(buf.getvalue().decode("utf8"))
#: main.py:1
#, fuzzy, python-format
msgid "foo %(name)s"
msgstr ""
<BLANKLINE>
#: main.py:3
msgid "bar"
msgid_plural "baz"
msgstr[0] ""
msgstr[1] ""
<BLANKLINE>
<BLANKLINE>

:param fileobj: the file-like object to write to
:param catalog: the `Catalog` instance
:param width: the maximum line width for the generated output; use `None`,
              0, or a negative number to completely disable line wrapping
:param no_location: do not emit a location comment for every message
:param omit_header: do not include the ``msgid ""`` entry at the top of the
                    output
:param sort_output: whether to sort the messages in the output by msgid
:param sort_by_file: whether to sort the messages in the output by their
                     locations
:param ignore_obsolete: whether to ignore obsolete messages and not include
                        them in the output; by default they are included as
                        comments
:param include_previous: include the old msgid as a comment when
                         updating the catalog
:param include_lineno: include line number in the location comment
NrFr9�r��include_lineno�include_previous�no_location�omit_header�sort_byr��backslashreplace)�generate_por�rI�encoder��write)r�rCr�rr�sort_output�sort_by_filer�rrrr7s            r�write_porsq��p�G����	�����'�%�)�����	���d�C� � ��;�;�w���0B�C�D��
�
�d��	rrc	#�8^^^# �T(aTS:�aTOSn[USS9m[TSSS9n	SU4Sjjn
SUU4S	jjn[TUS
9GH6nUR(dfU(aMTRn
T(aCTS:�a=/nU
R	5HnX�RU5-
nM SR
U5n
U
S3v� URHnU
"U5Shv�N M URHnU
"US
S9Shv�N M U(d�/n[URSS9nUH`unnUR[RS5n[U5nU(aU(aUSUS3nUU;dMOUR!U5 Mb U
"SR
U5SS9Shv�N UR"(a-SSR
S/[UR"5Q5S3v� UR$(apU(aiU
"S['UR$STS93SS9Shv�N [)UR$5S:�a)['UR$STS9nU
"SU3SS9Shv�N U"U5Shv�N Sv� GM9 U(d`[TR*R-5US
9H9nURHnU
"U5Shv�N M U"USS9Shv�N Sv� M; ggGNGN�![a URnGN�f=fGNhN�N�N�NMN<7f)z|Yield text strings representing a ``gettext`` PO (portable object) file.

See `write_po()` for a more detailed description.
rr�F)r��break_long_wordsz# )r��subsequent_indentrr'c3�p># �TRU5HnSUSUR5S3v� M g7f)Nr�r2r)�wrapr^)r�r�r7�comment_wrappers   �r�_format_comment�$generate_po.<locals>._format_comment�s6����#�(�(��1�D��f�X�Q�t�z�z�|�n�B�/�/�2�s�36c3�># �[UR[[45(a�UR(aUS[URUTS9S3v� US[URSUTS9S3v� US[URSUTS9S3v� [
TR5H)nURUnUS	US
S[X1TS9S3v� M+ gUR(aUS[URUTS9S3v� US[URUTS9S3v� US[UR=(d SUTS9S3v� g![a SnN�f=f7f)
Nzmsgctxt )r�r�r�msgid r�
msgid_plural rr'zmsgstr[�dz] zmsgstr )
r��idr�r�r�r�r�r�r#r�)rFr�r�r#rCr�s    ��r�_format_message�$generate_po.<locals>._format_message�sm�����g�j�j�4��-�0�0��������7�?�?�6�Y^�)_�(`�`b�c�c��H�F�9�W�Z�Z��]�6�QV�#W�"X�XZ�[�[��H�M�)�G�J�J�q�M�&�X]�*^�)_�_a�b�b��W�0�0�1�� �$�^�^�C�0�F� ����A�w�b��6�X]�1^�0_�_a�b�b�2��������7�?�?�6�Y^�)_�(`�`b�c�c��H�F�9�W�Z�Z��e�#T�"U�UW�X�X��H�G�I�g�n�n�.B��6�Y^�$_�#`�`b�c�c��"� ��F� �s+�B,E�0E�?B
E�E�E�E�E)rrNr�)r�c�\�US[US[5=(a US=(d S4$)Nrrr)r�rJ)�xs r�<lambda>�generate_po.<locals>.<lambda>�s*��!�A�$�
�1�Q�4��8M�8V�RS�TU�RV�8\�Z\�1]r��key�/r�rr2r�z, r)r��|rrz#~ )r')r
�_sort_messagesr�header_commentr(rr+r�r��sortedr8�	TypeErrorr�ri�sepr�r6r��previous_idr�r�r��values)rCr�rrrrrr��
comment_width�header_wrapperrrrF�comment_headerr-r7r��locsr8r�rDr9�norm_previous_idrs`      `               @rrrls����"#�u�q�y�E�b�M�!�
��N�O� �u��W\�]�N�0�d�d�&"�'�7�;���z�z���$�3�3�N�������*�5�5�7�D��0�0��6�6�E�8�!%���5�!1��#�$�B�'�'��,�,�G�&�w�/�/�/�-��,�,�G�&�w�s�;�;�;�-���D�
.�"�7�#4�#4�']�_�	�
%.� ��&�#�+�+�B�F�F�C�8��9�(�C���n�"*��1�V�A�J�7�H��4�'��K�K��)�
%.�'�s�x�x��~�c�B�B�B��=�=��d�i�i�� <�f�W�]�]�&;� <�=�>�b�A�A����#3�&���7�#6�#6�q�#9��G�H�I���
�
��7�&�&�'�!�+�#,�W�-@�-@��-C�5�#Q� �*�]�;K�:L�+M�VY�Z�Z�Z�"�7�+�+�+��
�g<�j�%����#�#�%��
�G�#�0�0��*�7�3�3�3�1�&�w�u�=�=�=��J�
��Q
0�;���
.�#�-�-�	�
.��
C�

�[�+�4�=�s��CL�K*�!L�>K-�?L�K0�&A
L�7.L�%L
�&A<L�"L�#AL�$L�%L�4L�5AL�L�	L�L�L�-L�0L
�L�	L
�
L�L�L�L�L�Lc�x�[U5nUS:XaUR5 U$US:XaURSS9 U$)z�
Sort the given message iterable by the given criteria.

Always returns a list.

:param messages: An iterable of Messages.
:param sort_by: Sort by which criteria? Options are `message` and `location`.
:return: list[Message]
rFr9c��UR$rX)r8)rs rr� _sort_messages.<locals>.<lambda>�s��A�K�Krr )r�r�)r�rs  rr$r$�sC���H�~�H��)���
�
���O�
�J�	��
�
�/�
�0��Or)r#rIrKrI)r7rIrKz	list[str])NNFNF)r�r�r�zLocale | str | Noner��
str | Noner�rer�r3r�rerKr)r'r�)r#rIr�rIr�rJrKrI)r�rIrKrI)r�FFFFFFT)r�zSupportsWrite[bytes]rCrr�rJrrerrer
rerrer�rerrerrerKrL)rCrr�rerrerrerrerrer�%Literal['message', 'location'] | Noner�rJrKz
Iterable[str])r�zIterable[Message]rr4rKz
list[Message])&rQ�
__future__rrir �collections.abcr�typingrr�
babel.corer�babel.messages.catalogrr	�
babel.utilr
rrr
�	_typeshedrr$r.r<�	Exceptionr>rUr�r�r!r�r�r�r�rrr$r�rr�<module>r=s���	�#�	�	�$�)��3�(��!�'�J�. �>)�X�)��)(�)(�XEB�EB�T#'��!���
9�
*�9��9�
�9��	9�
�9��
9�
�9�x�:�:����0�$:K�z�(�����!�"��J�
!�J�
�J��J��	J�
�J��
J��J��J��J��J�
�J�`"��"���59��j�
�j��j��	j�
�j��
j��j�3�j��j��j�Zr

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 472 B 0644
_compat.cpython-313.pyc File 1.42 KB 0644
catalog.cpython-313.pyc File 43.18 KB 0644
checkers.cpython-313.pyc File 6.54 KB 0644
extract.cpython-313.pyc File 32.85 KB 0644
frontend.cpython-313.pyc File 52.74 KB 0644
jslexer.cpython-313.pyc File 7.69 KB 0644
mofile.cpython-313.pyc File 7.77 KB 0644
plurals.cpython-313.pyc File 6.01 KB 0644
pofile.cpython-313.pyc File 32.1 KB 0644
setuptools_frontend.cpython-313.pyc File 4.07 KB 0644
Filemanager