403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/site-packages/docutils/utils/math/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/site-packages/docutils/utils/math/__pycache__/latex2mathml.cpython-39.pyc
a

OԼaE��@s�dZddlZddlZddlZddlZddlZejdkr:eZddl	m
Z
mZe
jZ
de
d<ddd	d
ddd
ddddd�Zdddddddddd�	Ze�dd�dD��dddddd d!d"d#d$d%d&d!d'�
Zd(d)d*d+d,d-d.d/d0d1d2d3d4d3d4d4d5�Ze�e
j�e�e
j�e�e
j�d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdCdCdDddEdFdGdHdI�Ze�e
j�e�e
j�e�e
j�e�e
j�e�e
j�e�e�dJdKdL�ZdMdNdOdPdQdRdSdT�ZdUZdVdWdXdYdZd[d\d]d^dXdYdZd[d_�
Zd`dadbdcdddedfdgdhdidjdkdl�Z dmdndodpdqdrdsdt�Z!dudndodvdqdw�Z"dxdydzd{�Z#d|d}d~dd�d��Z$d�d�d�d�d�d�d�d�d��Z%d�dd��d�dd��d�d�d��d�d�d��d��Z&iifd�dd�d��ife&d�ife&d�ifid�dife&d�d�dife&d�d�difd��Z'gd��Z(ddd�d�d�d�d�d�d�d�d��
Z)Gd�d��d�e*�Z+Gd�d��d�e+�Z,Gd�d��d�e+�Z-Gd�d��d�e+�Z.Gd�d��d�e.�Z/Gd�d��d�e.�Z0Gd�d��d�e.�Z1Gd�d��d�e.�Z2Gd�d��d�e.�Z3Gd�d��d�e.�Z4Gd�d��d�e+�Z5Gd�d��d�e5�Z6Gd�d��d�e5�Z7Gd�d��d�e5�Z8Gd�d��d�e5�Z9Gd�d��d�e+�Z:Gd�d��d�e:�Z;Gd�d��d�e:�Z<Gd�d��d�e:�Z=Gd�d��d�e;�Z>Gd�dÄd�e<�Z?Gd�dńd�e=�Z@Gd�dDŽd�e:�ZAGd�dɄd�e+�ZBGd�d˄d�e+�ZCd�d̈́ZDd�dτZEd�dфZFd�dӄZGd�dՄZHd�dׄZId�dلZJd�dۄZKd�d�dބZLd�d�ZMd�d�ZNd�d�ZOd�d�ZPd�d�d�ZQdS)�z�Convert LaTex maths code into presentational MathML.

This module is provisional:
the API is not settled and may change with any minor Docutils version.
�N)�r)�tex2unichar�
toplevel_codeuℏZhbaruΦuΞ�ΣuΨuΔuΘuϒ�ΠuΩ�ΓuΛ)ZPhiZXiZSigmaZPsiZDeltaZThetaZUpsilonZPiZOmegaZGammaZLambdau	lim infu	lim supu	inj limu
proj lim�lim)	ZliminfZlimsupZinjlimZprojlim�	varlimsup�	varliminf�
varprojlim�	varinjlim�operatornameccs|]}||fVqdS�N�)�.0�namerr�D/usr/lib/python3.9/site-packages/docutils/utils/math/latex2mathml.py�	<genexpr>I�r)ZarccosZarcsinZarctan�argZcosZcoshZcotZcothZcscZdegZdetZdimZexpZgcdZhomZkerZlgZln�logZPrZsecZsinZsinhZtanZtanhZboldZitalicZ	monospace�normalz
sans-serifZscriptzbold-italicz
double-struckZfrakturzsans-serif-italiczsans-serif-bold-italic)
�
boldsymbolZmathbfZmathitZmathttZmathrmZmathsfZmathcalZmathbfit�mathbbZmathfrakZmathsfitZ
mathsfbfit�mathscr�\u↑u↓u↕u⇑u⇓u⇕u⎰u⎱u⏐u⎪�|�‖)Z	backslashZuparrowZ	downarrowZupdownarrowZUparrowZ	DownarrowZUpdownarrowZ
lmoustacheZ
rmoustacheZ	arrowvertZ	bracevert�lvert�lVertZrvertZrVertZ	Arrowvertu≦̸u≧̸u⩽̸u⩾̸u≹u≸u⫅̸u⫆̸u⬝u⌀u∝u△u▽�⋯u…�sup�inf�max�min)ZnleqqZngeqqZ	nleqslantZ	ngeqslantZngtrlessZnlessgtrZ
nsubseteqqZ
nsupseteqqZ	centerdotZ
varnothingZ	varproptoZtriangleZtriangledownZdotsbZdotscZdotsiZdotsmZdotsorr!r"r#r$u∼u≈)ZthicksimZthickapproxu∣u∥u∤u∦u⌢u⌣u∫)ZshortmidZ
shortparallelZ	nshortmidZnshortparallelZ
smallfrownZ
smallsmileZsmallint)ZbigcapZbigcupZbigodotZbigoplusZ	bigotimesZbigsqcupZbiguplusZbigveeZbigwedgeZcoprodZintopZointopZprod�sumrr#r$r!r"�2emZ1emz0.2778emz0.2222emz0.1667emz	-0.1667emz	-0.2222emz	-0.2778emz0.25em)
ZqquadZquadZ
thickspaceZmedspaceZ	thinspaceZnegthinspaceZnegmedspaceZ
negthickspace� �;�:�,�!)�´ú)uˉū)u˘ŭ)uˇǔ)u˙u̇)�¨ü)r u⃛)�`ù)uˆû)u˚ů)u˜ũ)�→u⃗)ZacuteZbarZbreve�check�dotZddotZdddotZgraveZhatZmathring�tilde�vec)u⏞皙����ɿ)�←r4)u↔r4)�_r4)r/r4)�^g�)�~g333333ӿ)Z	overbraceZ
overleftarrowZoverleftrightarrowZoverlineZoverrightarrowZwidehatZ	widetilde)u⏟g�������?)r6g�������)Z
underbraceZunderleftarrowZunderleftrightarrowZ	underlineZunderrightarrowu−u∶� )�-r)r8uℾuℿ�⅀uℽuℼ)rrruγuπ)�r<)�(�))�[�])�{�})rr)rr)rAr<)Zmatrix�smallmatrixZpmatrixZbmatrixZBmatrixZvmatrixZVmatrix�casesT)�displaystyle�scriptlevelF��)rE�	textstyleZscriptstyleZscriptscriptstyle�cfrac)rErF�CLASSrErIZ
linethickness)�fracrJZdfracZtfrac�binomZdbinomZtbinom)r<z1.2emz1.623emz2.047emz2.470emr�)
�left�rightZbiglZbigrZBiglZBigrZbigglZbiggrZBigglZBiggrc@s�eZdZdZdZdZdZed�ded�ded�d	d
diZdd
d�Z	dZ
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd,d&d'�Zd(d)�Zd-d*d+�ZdS).�mathz8Base class for MathML elements and root of MathML trees.Nr�<z&lt;�>z&gt;�&z&amp;ia z&ApplyFunction;�true�false)TF�spancOsBg|_|�|�t��|_t|���D]}|||j|��<q&dS)aSet up node with `children` and `attributes`.

        Attributes are downcased: Use CLASS to set "class" value.
        >>> math(mn(3), CLASS='test')
        math(mn(3), class='test')
        >>> math(CLASS='test').toprettyxml()
        '<math class="test">
</math>'

        N)�children�extend�collections�OrderedDict�
attributes�sorted�keys�lower)�selfrXr\�keyrrr�__init__Ns



z
math.__init__cCsxdd�t|dg�D�}t|d�r0|�t|j��t|t�rJ|jrJ|�d�|dd�|j�	�D�7}|j
jdd�|�S)	NcSsg|]}t|��qSr)�repr)r�itemrrr�
<listcomp>drz!math.__repr__.<locals>.<listcomp>rX�datazswitch=TruecSs$g|]\}}|durd||f�qS)Nz%s=%rr�r�k�vrrrreis�z(%s)z, )
�getattr�hasattr�appendrcrf�
isinstance�
MathSchema�switchr\�items�	__class__�__name__�join)r`Zcontentrrr�__repr__cs

z
math.__repr__cCs
t|j�Sr)�lenrX�r`rrr�__len__nszmath.__len__cCs
|j|Sr�r\)r`rarrr�__getitem__sszmath.__getitem__cCs||j|<dSrrx)r`rardrrr�__setitem__uszmath.__setitem__cOs|jj|i|��Sr)r\�get)r`�args�kwargsrrrr{wszmath.getcCs|jduot|�|jkS)z;Return boolean indicating whether children may be appended.N)�	nchildrenrurvrrr�fullzs
�z	math.fullcCs:|��rtd|��|j�|�||_|��r6|��S|S)z�Append child and return self or first non-full parent.

        If self is full, go up the tree and return first non-full node or
        `None`.
        zNode %s already full!)r�SyntaxErrorrXrl�parent�close)r`�childrrrrlszmath.appendcCs|D]}|�|�q|Sr)rl)r`rXr�rrrrY�szmath.extendcCs"|j}|dur|��r|j}q|S)z7Close element and return first non-full parent or None.N)r�r)r`r�rrrr��sz
math.closecCsd�|���S)z,Return XML representation of self as string.r<)rs�_xmlrvrrr�toprettyxml�szmath.toprettyxmlcCs"|��g|�|�d|jjgS)Nz</%s>)�xml_starttag�	_xml_bodyrqrr�r`�levelrrrr��s
��z	math._xmlcCs,dd�|j��D�}dd�|jjg|�S)NcSs8g|]0\}}|durd|t|��dd��dd�f�qS)Nz%s="%s"�TruerU�FalserV)�str�replacergrrrre�s�z%math.xml_starttag.<locals>.<listcomp>z<%s>r')r\rprsrqrr)r`�attrsrrrr��s�zmath.xml_starttagcCsPg}|jD].}|�dd|dg�|�|�|d��q
|�dd|g�|S)N�
z  rG)rXrYr�)r`r�Zxmlr�rrrr��s
zmath._xml_body)r)r)rr�
__module__�__qualname__�__doc__r~r��_level�ord�xml_entitiesZ_boolstringsZhtml_tagnamerbrtrwryrzr{rrlrYr�r�r�r�r�rrrrrQ9s2�

rQc@seZdZdS)�mtableN�rrr�r�rrrrr��rr�cs eZdZdZ�fdd�Z�ZS)�mrowz*Group sub-expressions as a horizontal row.c	s�|j}t|t�rH|jdkrHt|j�|_|j|_|jD]
}||_q4|��St|�dkr�z(|jd|j|j�|�<||jd_Wn tt	fy�|jdYS0t
t|���S)z�Close element and return first non-full parent or None.

        Remove <mrow>, if it is single child and the parent infers an mrow
        or if it has only one child element.
        rGr)r�rm�
MathRowSchemar~rurXr��index�AttributeError�
ValueError�superr�)r`r�r��rqrrr��s
z
mrow.close)rrr�r�r�r��
__classcell__rrr�rr��sr�c@seZdZdZdS)r�zCBase class for elements treating content as a single inferred mrow.N)rrr�r�r�rrrrr��sr�c@seZdZdS)�mtrNr�rrrrr��rr�c@seZdZdS)�mtdNr�rrrrr��rr�c@seZdZdZdS)�mencloserGN�rrr�r�r~rrrrr��sr�c@seZdZdZdS)�mphantomrGNr�rrrrr��sr�c@seZdZdZdS)�msqrtrGNr�rrrrr��sr�c@seZdZdZdS)�mstylerGNr�rrrrr��sr�cs.eZdZdZdZ�fdd�Zddd�Z�ZS)�	MathTokenzbToken Element: contains textual data instead of children.

    Base class for mo, mi, and mn.
    rcs ||_tt|�jfi|��dSr)rfr�r�rb)r`rfr\r�rrrbszMathToken.__init__cCst|j��|j�gSr)�unicoderf�	translater�r�rrrr�szMathToken._xml_body)r)rrr�r�r�r~rbr�r�rrr�rr��sr�c@seZdZdS)�mtextNr�rrrrr�	rr�c@seZdZdS)�miNr�rrrrr�
rr�c@seZdZdS)�moNr�rrrrr�rr�c@seZdZdS)�mnNr�rrrrr�rr�cs,eZdZdZdZdd�Z�fdd�Z�ZS)rnz�Base class for schemata expecting 2 or more children.

    The special attribute `switch` indicates that the last two child
    elements are in reversed order and must be switched before XML-export.
    rHcOs*|�dd�|_tj|g|�Ri|��dS)NroF)�poprorQrb)r`rXr}rrrrbszMathSchema.__init__csJtt|��|�}|jrF|��rF|jd|jd|jd<|jd<d|_|S)N������F)r�rnrlrorrX)r`r�Zcurrent_noder�rrrl s
"zMathSchema.append)rrr�r�r�r~rbrlr�rrr�rrnsrnc@seZdZdS)�msubNr�rrrrr�(rr�c@seZdZdS)�msupNr�rrrrr�)rr�c@seZdZdZdS)�msubsuprNr�rrrrr�*sr�c@seZdZdS)�munderNr�rrrrr�4rr�c@seZdZdS)�moverNr�rrrrr�5rr�c@seZdZdS)�
munderoverNr�rrrrr�Err�c@seZdZdZdS)�mrootrHNr�rrrrr�Gsr�c@seZdZdZdS)�mfracrHNr�rrrrr�Jsr�c@seZdZdZdS)�mspacerNr�rrrrr�Msr�cCs4t�d|�}|dur t�d|�}|�d�|�d�fS)a"Return leading TeX command name and remainder of `string`.

    >>> tex_cmdname('mymacro2') # up to first non-letter
    ('mymacro', '2')
    >>> tex_cmdname('name 2') # strip trailing whitespace
    ('name', '2')
    >>> tex_cmdname('_2') # single non-letter character
    ('_', '2')

    z([a-zA-Z]+) *(.*)Nz(.?)(.*)rGrH��re�match�group��string�mrrr�tex_cmdnameWsr�cCs0t�d|�}|durd|fS|�d�|�d�fS)zmReturn leading number literal and remainder of `string`.

    >>> tex_number('123.4')
    ('123.4', '')

    z([0-9.,]*[0-9]+)(.*)Nr<rGrHr�r�rrr�
tex_numberrsr�cCs8t�d|tj�}|�dddd�\}}}}|p2|p2||fS)z�Return first simple TeX token and remainder of `string`.

    >>> tex_token('\command{without argument}')
    ('\command', '{without argument}')
    >>> tex_token('or first character')
    ('o', 'r first character')

    a%((?P<cmd>\\[a-zA-Z]+)\s* # TeX command, skip whitespace
                      |(?P<chcmd>\\.)          # one-character TeX command
                      |(?P<ch>.?))            # first character (or empty)
                     (?P<remainder>.*$)    # remaining part of string
                 �cmd�chcmd�ch�	remainder)r�r��VERBOSEr�)r�r�r�r�r�r�rrr�	tex_token�s
	�r�cCs�d}d}d}|�d�s.|dd�|dd�fS|D]R}|d7}|rHd}n0|dkrVd}n"|dkrh|d7}n|dkrx|d8}|dkr2q�q2td	��|d|d�||d�fS)
z�Return first TeX group or token and remainder of `string`.

    >>> tex_group('{first group} returned without brackets')
    ('first group', ' returned without brackets')

    rFrANrGrTrBzGroup without closing bracket)�
startswithr�)r�Zsplit_indexZ
nest_level�escape�crrr�	tex_group�s&

r�cCs,t|�\}}|dkr$t|���\}}||fS)a�Return first TeX group or token and remainder of `string`.

    >>> tex_token_or_group('\command{without argument}')
    ('\command', '{without argument}')
    >>> tex_token_or_group('first character')
    ('f', 'irst character')
    >>> tex_token_or_group(' also whitespace')
    (' ', 'also whitespace')
    >>> tex_token_or_group('{first group} keep rest')
    ('first group', ' keep rest')

    rA)r�r��lstrip)r�rr�rrr�tex_token_or_group�s
r�cCsdt�d|tj�}|dur*|�d�s*d|fSz|�d�|�d�fWSty^td|��Yn0dS)a$Return optional argument and remainder.

    >>> tex_optarg('[optional argument] returned without brackets')
    ('optional argument', ' returned without brackets')
    >>> tex_optarg('{empty string, if there is no optional arg}')
    ('', '{empty string, if there is no optional arg}')

    z�\s*                            # leading whitespace
                 \[(?P<optarg>(\\]|[^\[\]]|\\])*)\] # [group] without nested groups
                 (?P<remainder>.*$)
                 Nr?r<�optargr�z+Could not extract optional argument from %r)r�r�r�r�r�r�r�r�rrr�
tex_optarg�s	�r�c	Cs�d�|���}|}t|�dk�r�|d|dd�}}|dkr@q|dkrft|�\}}t|||�\}}q|dvrzt||�}q|dkr�t�}|�|�|}q|dkr�|��}q|d	kr�t	�}|���|�|}q|�
�r�|�t|��}q|���rt
|�\}}|�t||��}q|tv�r~i}|d
k�rb|j�rb|jd}t|dd
�d
v�sZ|�d�dk�rbd|d<|�tt|fi|���}q|dv�r�|�t|dd��}q|dv�r�|�t|��}qtd|��q|S)u�Append MathML conversion of `string` to `node` and return it.

    >>> parse_latex_math(math(), r'lpha')
    math(mi('α'))
    >>> parse_latex_math(mrow(), r'x_{n}')
    mrow(msub(mi('x'), mi('n')))

    r'rrGNr�_^rArBrTr:r�rfz([=�class�mathopen�prefix�formz/()[]|F�Zstretchyz
+*=<>,.!?`';@zUnsupported character: "%s")rs�splitrur��
handle_cmd�handle_script_or_limitr�rlr�r��isalphar��isdigitr�r��anomalous_charsrXrjr{r�r�)	�noder�Ztreer�Zcmdname�new_nodeZnumberr\Z
previous_noderrr�parse_latex_mathsR





�

r�cCs�	|tvr6tt|�}|tvr$d|d<|�|�}||fS|tvr�|dkr`t|�\}}t|dd�}ntt|�}|dkr�t|td��}nJ|dkr�t|td	�d
d�}n.|dkr�t|td
��}n|dkr�t|td��}|�|�}|r�|ddvr�|�td��}||fS|t	v�r�|dk�rddi}ndt	|i}|dk�r:d|d<t|�\}}|�
d��rft�|dd�|�}|dk�r|t�||�}|�
��s�|dk�r�|�t|fi|���}||fStfi|��}|�|�||fS|dk�r�|�tddddd ��}||fS|d!k�rt|d"�}||fS|tv�r:|�tt|d#d$��}||fS|tv�rb|�tt|d%d&��}||fS|tv�r�i}|tv�r�|�r�|dd'v�r�d(|d)<n|d*v�r�d+|d<|�tt|fi|���}||fS|tv�r�i}tt|}	t|�\}
}|
d,v�r4zt|
�d�}
Wn$t�y2td-||
f��Yn0|	�rR|	|d.<|	|d/<d(|d0<|d1k�sh|�d2��r|t�}|�|�|}|
d3k�r�|�t|
fi|���|d4k�s�|�d5��r�|��}||fS|d6k�rVt|�\}}|d7k�r�|d8|fS|�
d��r0zt|dd�}Wn t�y.td9|��Yn0t�d:|d;�}|�t|��}||fS|d<v�r�t|�\}}|� d=�}t!|�D]@\}
}|
d>dk�r�t"�#d?d@|�}|�t$|��}n
t||��q~||fS|t%v�r�|�t&dAt%|dB��}||fS|dCv�rHt'|�\}}|�dD��r,dEt(|ddF��dG}|�t&dA|dB��}||fS|dHk�rjt)�}|�|�||fS|dIk�r�t*dJdK�}|�|�||fS|dLk�r�t+|�\}}|�r�t�}t,|d(dM�}t||�|��nt-�}|�|�||fS|t.v�r�t.|\}}|dNk�rNt+|�\}}d1d4dO�}||v�rN|�/�}|||dP<dQ|||d<t0fi|��}}|�dR��r�ttdS�|tdT�dRdU�}dV|_1|�r�t|fi|��}|�|�||fS|dk�r�t2�}t3|�}|�����|�||fS|t4v�r:ttt4|dd
dW�d(dM�}|dXk�r"d
|j5ddY<||_6|�|�||fS|t7v�rzttt7|dd(d�d(d
dZ�}||_6|�|�||fS|d[k�r�td(dM�}|�|�||fS|t8v�r�ttt8|d�d(dM�}||_6|�|�||fS|d\k�rtd(dM�}|�|�||fS|d]v�r�t+|�\}}ttd^|dd��}|�rlt9|�}tt�|�}t:|�dk�r`|j5d}|�|�nt|�}|�|�||fS|t;v�	rtfit;|��}d|_1t<|t��r�t:|�dk�r�||j=j5|j=j5�>|�<|j=|_=n&|j?j@d_k�r�|�|�ntd`|��||fS|�da��	rLt|�\}}|dbv�	rD|}tA|||dc�}||fS|ddk�	r`tB||�S|dek�	rttC||�Stdf|��dS)gujProcess LaTeX command `name` followed by `string`.

    Append result to `node`.
    If needed, parse `string` for command argument.
    Return new current node and remainder of `string`:

    >>> handle_cmd('hbar', math(), r' rac')
    (math(mi('ℏ')), ' \frac')
    >>> handle_cmd('hspace', math(), r'{1ex} (x)')
    (math(mspace(width='1ex')), ' (x)')

    z
capital-greekr�r
r)�mathvariantr
r6r	�¯F)�accentrr5rr/r)r7r6u⁡rr�rrrGNrr;�colonr)Zpostfix�0z0.28em)r�Zlspace�rspaceZidotsintz\int\dotsi\intzfont-weight: bold)�stylez75%)Zmathsizez _^T�
movablelimits)rrr�z()[]/|.z!Unsupported "\%s" delimiter "%s"!�maxsizeZminsizeZ	symmetricrO�l�.rP�r�notrAz{\not z\not: Cannot negate: "%s"!ZNFCu̸)�textZmboxZtextrm�$rHz(^ | $)r9z%s)�width)Zhspacer�Zmuz%semr��ZphantomZboxedZbox)ZnotationZsqrt)rorJ)r�r�Znumalignz	numalign-rMr=r>)rKrr�r3r�)ror�ZoversetZunderset)Z
xleftarrowZxrightarrowZlongrQz3Declaration "\%s" must be first command in a group.�limitsr�)r�Zbegin�endzUnknown LaTeX command: )D�lettersr��greek_capitalsrl�	functionsr�r�r�r��math_alphabetsr�r{rr�r�r��thick_operators�small_operators�	operatorsr��
bigdelimiters�delimiter_sizes�stretchablesr��KeyErrorr��endswithr�r�r��unicodedata�	normalizer��	enumerater��subr��spacesr�r��floatr�r�r�r�r��	fractions�copyr�r~r�r��accentsrXZtex_cmd�over�underr�ru�
layout_stylesrmr�r�rqrrr��begin_environment�end_environment)rr�r�r�rr\r�r�Zdelimiter_attributes�sizeZ	delimiter�row�parts�i�part�radixZ	indexnodeZ
style_attsZ	frac_attsr�ZoptargsrL�entryZ	subscript�baseZsub_noderrrr�as�

















�


























�













�




r�r<cCs,|j��}|dkrd|d<n |dks4t|dd�tvr<d|d<|dkr�t|t�r`t|jddi�}nNt|t�r|t|jddi�}n2|d	vs�|dkr�|�	dd
�dkr�t
|�}nt|�}nn|dk�rt|t
�r�t|j�}nNt|t�r�t|j�}n8|d	v�s|dk�r|�	dd
�dk�rt|�}nt|�}|�|�|S)z)Append script or limit element to `node`.r�Fr�rfr<Tr6ro)r�r�Nr7)
rXr�rjr�rmr�r�r�r�r{r�r�rl)r�r�r�r�r�rrrr��sB

�

��





��

r�cCs�t|�\}}|tvr�t|d}i}|rdtt|��}|dkrTtt|dd��}d|d<|�|�|}n0|dkr�d|d	<d
|d<tdd
�}|�|�|}t�}|�tt|�fi|���|}nt	d��||fS)NrrDz0.17em)r�rO�columnalignrCz0.02emZ
rowspacingz0.333em�
columnspacing�1)rF�Environment not supported!)
r��matricesr�r�rlr�r�r�r�r�)r�r�rZleft_delimiterr\�wrapperrrrrr�s,


rcCsnt|�\}}|tvr^|������}t|d}|rL|�t|��}|��}qf|dkrf|��}ntd��||fS)NrGrDr)r�rr�rlr�r�)r�r�rZright_delimiterrrrr�s

rcCs.tdd�|D��}|dkrdSt|dd�S)Ncss"|]}|�d�|�d�VqdS�rTz\&N��count�rrrrrr�rz'tex_equation_columns.<locals>.<genexpr>rrHrG)r#�int)�rows�tabsrrr�tex_equation_columns�sr"cCslddd�}tdd�|D��}|rhddg|}dd	g|}d
�|d|d��|d<d
�|d|��|d
<|S)NZalignT)r�rEcss"|]}|�d�|�d�VqdSrrrrrrrrz#align_attributes.<locals>.<genexpr>rPrOr�r&r'rGrr)r#rs)r Zattsr!ZalignsZspacingrrr�align_attributess�r#cCsjtdd�}|}|sXd|d<t|��d�}t|�dkrXt�}|�tt|�fit|����t	||�|�
�S)zoReturn string with MathML code corresponding to `tex_math`.

    Set `inline` to False for displayed math.
    z"http://www.w3.org/1998/Math/MathML)Zxmlns�blockZdisplayz\\rG)rQrr�rur�rlr�r�r#r�r�)Ztex_mathZinlineZ	math_treer�r rrr�
tex2mathml$s
�
r%)r<)T)Rr�rZrr��sysr��version_infor�r�Zdocutils.utils.mathrrZ	mathalphar�r�r��updater�r�Z	mathfencer�Z	mathcloser�ZmathbinZmathrelZmathordZ	mathpunctZmathopr�r�r�rrrr	r�rrr
rr�r��objectrQr�r�r�r�r�r�r�r�r�r�r�r�r�r�rnr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr"r#r%rrrr�<module>s�

��
����
��
���	���	��	��


��	

2RO
#

Youez - 2016 - github.com/yon3zu
LinuXploit