HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/docutils/writers/__pycache__/_html_base.cpython-310.pyc
o

,�a`���@sRdZddlZddlZddlZddlZddlZddlZzddlZWn&e	yFzddl
Z
Gdd�de�Ze
e_
Wne	yCdZYnwYnwddlZddlm
Z
mZmZmZmZddlmZddlmZddlmZmZmZmZmZejd	krdd
lmZndd
lmZejd	kr�e Z!Gdd�dej"�Z"Gd
d�de
j#�Z$Gdd�de
j%�Z&dS)z,common definitions for Docutils HTML writers�Nc@seZdZdS)�PILN)�__name__�
__module__�__qualname__�rr�=/usr/lib/python3/dist-packages/docutils/writers/_html_base.pyrsr)�nodes�utils�writers�	languages�io)�
SafeString)�
writer_aux)�unichar2tex�pick_math_environment�	math2html�latex2mathml�tex2mathml_extern)�r)�url2pathnamec@sNeZdZdZ	dZddiZdZdZdd�Zd	d
�Z	dd�Z
d
d�Zdd�ZdS)�Writer)�html�xhtmlztemplate.txt�output_encoding_error_handler�xmlcharrefreplace)r
zhtml writers)�head_prefix�head�
stylesheet�body_prefix�body_pre_docinfo�docinfo�body�body_suffix�title�subtitle�header�footer�meta�fragment�html_prolog�	html_head�
html_title�
html_subtitle�	html_bodycCstj�|�tjgS�N)r
r�get_transformsr�Admonitions��selfrrrr/K�zWriter.get_transformscCsJ|�|j�|_}|j�|�|jD]}t||t||��q|��|_dSr.)	�translator_class�document�visitor�	walkabout�visitor_attributes�setattr�getattr�apply_template�output)r2r6�attrrrr�	translateNs

zWriter.translatecCs6t|jjjd�}t|��d�}|��|��}||S)N�rb�utf-8)�openr5�settings�template�unicode�read�close�interpolation_dict)r2�
template_filerC�subsrrrr;Us
zWriter.apply_templatecCsJi}|jj}|jD]}d�t||���d�||<q	|j|d<tj|d<|S)N��
�encoding�version)	r5rBr8�joinr:�rstrip�output_encoding�docutils�__version__)r2rIrBr=rrrrG\s


zWriter.interpolation_dictcCs2tj�|�|jD]
}d�t||��|j|<q	dS�NrJ)r
r�assemble_partsr8rNr:�parts)r2�partrrrrTes
�zWriter.assemble_partsN)
rrr�	supported�default_template�settings_defaults�config_section_dependenciesr8r/r>r;rGrTrrrrr4s	rc
@seZdZdZdZdZeZdZdZdZ	dZ
dZ	d	Zd
Z
e�d�Ze�dej�Zd
Zed�ded�ded�ded�ded�diZ	dd�Zdd�Zdd�Zdd�Zd d!�Ze�d"�fd#d$�Zd%d&�Z�d�d)d*�Z�d�d+d,�Z�d�d.d/�Zd0d1�Z d2d3�Z!d4d5�Z"d6d7�Z#d8d9�Z$d:d;�Z%d<d=�Z&d>d?�Z'd@dA�Z(�d�dCdD�Z)dEdFdFdGdH�Z*dIdJ�Z+dKdL�Z,dMdN�Z-dOdP�Z.dQdR�Z/dSdT�Z0dUdV�Z1dWdX�Z2dYdZ�Z3d[d\�Z4d]d^�Z5d_d`�Z6dadb�Z7dcdd�Z8dedf�Z9dgdh�Z:didj�Z;dkdl�Z<dmdn�Z=dodp�Z>dqdr�Z?dsdt�Z@e�du�jAfdvdw�ZBdxdy�ZCdzd{�ZDd|d}�ZEd~d�ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZX�d�d�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d��Zcd�d��Zdd�d��Zed�d��Zfd�d„Zgd�dĄZhd�dƄZid�dȄZjd�dʄZkd�d̄Zld�d΄Zmd�dЄZnd�d҄Zod�dԄZpd�dքZqd�d؄Zrd�dڄZsd�d܄Ztd�dބZud�d�Zvd�d�Zwd�d�Zxd�d�Zyd�d�Zzd�d�Z{d�d�Z|d�d�Z}d�d�Z~d�d�Zd�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�d�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&�Z��d'�d(�Z��d)�d*�Z��d+�d,�Z��d-�d.�Z��d/�d0�Z��d1�d2�Z��d3�d4�Z��d5�d6�Z��d7�d8�Z��d9�d:�Z��d;�d<�Z��d=�d>�Z��d?�d@�Z��dA�dB�Z��dC�dD�Z��dE�dF�Z��dG�dH�Z��dI�dJ�Z��dK�dL�Z��dM�dN�Z��dO�dP�Z��dQ�dR�Z��dS�dT�Z��dU�dV�Z��dW�dX�Z��dY�dZ�Z��d[�d\�Z��d]�d^�Z��d_�d`�Z��da�db�Z��dc�dd�Z��de�df�Z��dg�dh�Z��di�dj�Z��dk�dl�Z��dm�dn�Z��do�dp�Z��dq�dr�Z��ds�dt�Z��du�dv�Z��dw�dx�Z��dy�dz�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��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�dBS(��HTMLTranslatorai
    Generic Docutils to HTML translator.

    See the `html4css1` and `html5_polyglot` writers for full featured
    HTML writers.

    .. IMPORTANT::
      The `visit_*` and `depart_*` methods use a
      heterogeneous stack, `self.context`.
      When subclassing, make sure to be consistent in its use!

      Examples for robust coding:

      a) Override both `visit_*` and `depart_*` methods, don't call the
         parent functions.

      b) Extend both and unconditionally call the parent functions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">')
               html4css1.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               html4css1.HTMLTranslator.depart_example(self, node)
               if foo:
                   self.body.append('</div>')

      c) Extend both, calling the parent functions under the same
         conditions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">
')
               else: # call the parent method
                   _html_base.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               if foo:
                   self.body.append('</div>
')
               else: # call the parent method
                   _html_base.HTMLTranslator.depart_example(self, node)

      d) Extend one method (call the parent), but don't otherwise use the
         `self.context` stack::

           def depart_example(self, node):
               _html_base.HTMLTranslator.depart_example(self, node)
               if foo:
                   # implementation-specific code
                   # that does not use `self.context`
                   self.body.append('</div>
')

      This way, changes in stack use will not bite you.
    z%<?xml version="1.0" encoding="%s" ?>
z<!DOCTYPE html>
zW<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%(lang)s" lang="%(lang)s">
<head>
z<meta charset="%s"/>
zR<meta name="generator" content="Docutils %s: http://docutils.sourceforge.net/" />
z2<script type="text/javascript" src="%s"></script>
z-file:/usr/share/javascript/mathjax/MathJax.jsz4<link rel="stylesheet" href="%s" type="text/css" />
z%<style type="text/css">

%s
</style>
z
[^ \n]+| +|\nz.+\W\W.+|[-?].+�lang�&z&amp;�<z&lt;�"z&quot;�>z&gt;�@�&#64;cs�tj��|�|j�_}|j}t�||j��_�j	t
jg�_g�_
g�_|jr:�j
��j|j��j��j��jdd��_�fdd�t�|�D��_dg�_g�_g�_g�_g�_dg�_d�_t|j��_|j� ��_�jdd��_!�jd�"��_g�_#	g�_$g�_%d�_&d�_'d�_(d�_)d�_*d�_+g�_,g�_-g�_.g�_/�j0g�_1g�_2g�_3g�_4d�_5d�_6d�_7g�_8dS)	Ncsg|]}��|��qSr)�stylesheet_call)�.0�pathr1rr�
<listcomp>���z+HTMLTranslator.__init__.<locals>.<listcomp>z</head>
<body>
z</body>
</html>
r�TF)9r�NodeVisitor�__init__rB�
language_coder�get_language�reporter�language�	generatorrQrRr'rr)�xml_declaration�appendrPrr	�get_stylesheet_listrrrr r!r(r"�
section_level�int�initial_header_level�math_output�split�math_output_options�lower�context�
topic_classes�colspecs�	compact_p�compact_simple�compact_field_list�
in_docinfo�
in_sidebar�in_footnote_listr#r$r%r&�content_typer*r+r,r-�in_document_title�	in_mailto�author_in_authors�math_header)r2r5rB�lcoderr1rrj�sb
�
�

zHTMLTranslator.__init__cCs6d�|j|j|j|j|j|j|j|j�SrS)	rNrrrrrr r!r"r1rrr�astexts������zHTMLTranslator.astextcCst|�}|�|j�S)z-Encode special characters in `text` & return.)rDr>�special_characters)r2�textrrr�encodeszHTMLTranslator.encodecCs|�dd�S)z*Try to hide a mailto: URL from harvesters.ra�%40��replace)r2�urirrr�cloak_mailtoszHTMLTranslator.cloak_mailtocCs|�dd�}|�dd�}|S)z;Try to hide the link text of a email link from harversters.rbz<span>&#64;</span>�.z<span>&#46;</span>r�)r2�addrrrr�cloak_email!szHTMLTranslator.cloak_emailz[

	]cCs<|�|�d|��}|jr|jjr|�dd�}|�dd�}|S)z6Cleanse, HTML encode, and return attribute value text.� r�z&#37;&#52;&#48;r�z&#46;)r��subr�rB�cloak_email_addressesr�)r2r��
whitespace�encodedrrr�attval)s
zHTMLTranslator.attvalc
Cs�|jjrBztj|dd���}|jj�|�Wn&ty<}zd|t|j	�f}|j
j�|�d|WYd}~Sd}~ww|j
|S|jjrNt�|jj|�}|j|�|�S)z8Return code to reference or embed stylesheet file `path`r@)�source_pathrLz!Cannot embed stylesheet '%r': %s.z
<--- %s --->
N)rB�embed_stylesheetr�	FileInputrE�record_dependencies�add�IOErrorr
�strerrorr5rm�error�embedded_stylesheet�stylesheet_pathr	�
relative_path�_destination�stylesheet_linkr�)r2re�content�err�msgrrrrc3s(��
���
zHTMLTranslator.stylesheet_callrKFc
Ks|��}g}i}g}|��D]
\}	}
|
||	��<qg}g}|�dg�|�dd���D]}
|
�d�r<|�|
dd��q+|
��rI|
|vrI|�|
�q+|rS|d||j<|r\d�	|�|d<d	|vsbJ�|�
|�d
g��d
|vry|�
|d
�|d
=|r�|d|d	<|dd�D]%}|s�t|tj
tjtjtjtjtjtjf�r�|�d|�q�|d|7}q�t|���}|g}|D]8\}	}
|
dus�J�t|
t�r�d
d�|
D�}|�d|	��|�d�	|��f�q�|�d|	��|�t|
��f�q�|r�d}nd}d�	|�dd�	|�|f|S)z�
        Construct and return a start tag given a node (id & class attributes
        are extracted), tag name, and optional attributes.
        �classes�classrJz	language-�	Nrr��id�idsrhz<span id="%s"></span>cSsg|]}t|��qSr)rD)rd�vrrrrf}sz+HTMLTranslator.starttag.<locals>.<listcomp>z%s="%s"z /z<%s%s>)ry�items�get�poprw�
startswithrq�strip�lang_attributerN�extend�
isinstancer�bullet_listr �definition_list�enumerated_list�
field_list�option_list�table�sorted�listr�rD)r2�node�tagname�suffix�empty�
attributes�prefix�attsr��name�valuer�r�clsr��attlistrU�values�infixrrr�starttagFsf 

���

�
� zHTMLTranslator.starttagcKs|j|||fddi|��S)z1Construct and return an XML-compatible empty tag.r�T)r�)r2r�r�r�r�rrr�emptytag��zHTMLTranslator.emptytagrcCsBdd�|D�}z||}Wn
tyYdSw|d�|�dS)z�
        Set class `class_` on the visible child no. index of `node`.
        Do nothing if node has fewer children than `index`.
        cS�g|]
}t|tj�s|�qSr�r�r�	Invisible)rd�nrrrrf�sz5HTMLTranslator.set_class_on_child.<locals>.<listcomp>Nr�)�
IndexErrorrq)r2r��class_�index�children�childrrr�set_class_on_child�s�z!HTMLTranslator.set_class_on_childcCs:|��}|�|�}|jr|jjr|�|�}|j�|�dSr.)r�r�r�rBr�r�r!rq)r2r�r�r�rrr�
visit_Text�s


zHTMLTranslator.visit_TextcC�dSr.r�r2r�rrr�depart_Text��zHTMLTranslator.depart_TextcC�|j�|�|dd��dS)N�abbrrJ�r!rqr�r�rrr�visit_abbreviation�r�z!HTMLTranslator.visit_abbreviationcC�|j�d�dS)Nz</abbr>�r!rqr�rrr�depart_abbreviation��z"HTMLTranslator.depart_abbreviationcCr�)N�acronymrJr�r�rrr�
visit_acronym�r�zHTMLTranslator.visit_acronymcCr�)Nz
</acronym>r�r�rrr�depart_acronym�r�zHTMLTranslator.depart_acronymcCs.|j|ddd�|j�|j|dddd��dS)N�addressF�r'�prerJ�r��CLASS)�visit_docinfo_itemr!rqr�r�rrr�
visit_address�s�zHTMLTranslator.visit_addresscCs|j�d�|��dS�N�
</pre>
)r!rq�depart_docinfo_itemr�rrr�depart_address�szHTMLTranslator.depart_addresscCs(|d�dd�|j�|�|d��dS)Nr�r�
admonition�div)�insertr!rqr�r�rrr�visit_admonition�szHTMLTranslator.visit_admonitionNcCr��N�</div>
r�r�rrr�depart_admonition�r�z HTMLTranslator.depart_admonition)u—rJ)�(�))rJrJ)�dash�parentheses�parens�nonecCs<|j|jj\}}|j�|�|j�|j|d|dd��dS)N�p�attribution�r�)�attribution_formatsrBrrzrqr!r�)r2r�r�r�rrr�visit_attribution�s
�z HTMLTranslator.visit_attributioncCs|j�|j��d�dS�N�</p>
�r!rqrzr�r�rrr�depart_attribution��z!HTMLTranslator.depart_attributioncCs*t|jtj�s
|�|d�|j�d�dS)N�authorz<p>)r��parentr�authorsr�r!rqr�rrr�visit_author�szHTMLTranslator.visit_authorcCs6|j�d�t|jtj�r|j�d�dS|��dS)N�</p>rK)r!rqr�rrrr�r�rrr�
depart_author�szHTMLTranslator.depart_authorcC�|�|d�dS)Nr�r�r�rrr�
visit_authors�r�zHTMLTranslator.visit_authorscC�|��dSr.�r�r�rrr�depart_authors��zHTMLTranslator.depart_authorscC�|j�|�|d��dS)N�
blockquoter�r�rrr�visit_block_quote��z HTMLTranslator.visit_block_quotecCr�)Nz</blockquote>
r�r�rrr�depart_block_quote�r�z!HTMLTranslator.depart_block_quotecCs2t|j�}z|�|�WdStjyYdSw)z7Check for a simple list that can be rendered compactly.FT)�SimpleListCheckerr5�walkr�	NodeFound)r2r�r6rrr�check_simple_list�s
��z HTMLTranslator.check_simple_listcCsvd|dvrdSd|dvrdSt|tjtjf�r|jjsdSt|tjtjf�r.|jjs.dS|j	dgkr6dS|�
|�S)N�compactr�TrAF�contents)r�rr�r�rB�compact_field_listsr�r��
compact_listsr{r"r�rrr�is_compactable�s��
zHTMLTranslator.is_compactablecCsbi}|j}|j�|j|jf�d|_|�|�|_|jr!|s!d|d<|j�|j|dfi|���dS)N�simpler��ul)r~rzrqr}r'r!r�)r2r�r��old_compact_simplerrr�visit_bullet_lists
 z HTMLTranslator.visit_bullet_listcCs"|j��\|_|_|j�d�dS)Nz</ul>
)rzr�r~r}r!rqr�rrr�depart_bullet_listsz!HTMLTranslator.depart_bullet_listcC�|j�|j|dddd��dS)NrrJ�captionrr�r�rrr�
visit_caption�zHTMLTranslator.visit_captioncCr�rr�r�rrr�depart_captionr�zHTMLTranslator.depart_captioncCs<|js|��}g|d<|j�|j|ddd��d|_dSdS)Nr��dl�citationrT)r��copyr!rqr�)r2r��listnoderrr�visit_citation s
�zHTMLTranslator.visit_citationcC�<|j�d�t|jddd�tj�s|j�d�d|_dSdS�N�</dd>
FT��descend�siblings�</dl>
)r!rqr��	next_noderr3r�r�rrr�depart_citation+��
�zHTMLTranslator.depart_citationc	CsVd}d|vr
||d7}nd|vr||jj|d7}|j�|j|ddd|d��dS)N�#�refid�refname�a�[zcitation-reference�r��href)r5�nameidsr!rqr�)r2r�rGrrr�visit_citation_reference2s

�z'HTMLTranslator.visit_citation_referencecCr�)Nz]</a>r�r�rrr�depart_citation_reference=r�z(HTMLTranslator.depart_citation_referencecCr-)N�spanrJ�
classifierrr�r�rrr�visit_classifierDr0zHTMLTranslator.visit_classifiercCr��N�</span>r�r�rrr�depart_classifierGr�z HTMLTranslator.depart_classifiercCs&|j�|�|jj�|j�d��dS)N�stub)r|rqr�stubsr�r�r�rrr�
visit_colspecJszHTMLTranslator.visit_colspeccCs�t|jddd�tj�r
dSd|jjdvs#d|jjvr%d|jjdvr%dStdd�|jD��}|j	�
|�|d	��|jD]}t|d
d|d�}|j	�
|j
|d
d|d��q<|j	�
d�dS)NFTr:zcolwidths-autor�zcolwidths-givencss�|]}|dVqdS)�colwidthNr)rdr�rrr�	<genexpr>Xs�z0HTMLTranslator.depart_colspec.<locals>.<genexpr>�colgrouprTgY@g�?�colzwidth: %i%%)�stylez</colgroup>
)r�r>r�colspecrrB�table_style�sumr|r!rqr�rtr�)r2r��total_widthrTrrr�depart_colspecOs �

�zHTMLTranslator.depart_colspecz-(?=-)cCs |j�d|d|����tj�)z%Escape double-dashes in comment text.z<!-- %s -->
z- )r!rqr�r�SkipNode)r2r�r�rrr�
visit_comment`szHTMLTranslator.visit_commentcCsp|j�|j|ddd��t|�dkr4|dd�d�|dd�d	�|dd�D]}|d�d
�q*dSdS)Nr��compoundrrhrr�zcompound-first���z
compound-lastzcompound-middle�r!rqr��len)r2r�r�rrr�visit_compoundgs�zHTMLTranslator.visit_compoundcCr�r�r�r�rrr�depart_compoundor�zHTMLTranslator.depart_compoundcC�|j�|j|ddd��dS)Nr�zdocutils containerrr�r�rrr�visit_containerr�zHTMLTranslator.visit_containercCr�r�r�r�rrr�depart_containerur�zHTMLTranslator.depart_containercC�|j|ddd�dS)N�contactFr�rr�rrr�
visit_contactxr3zHTMLTranslator.visit_contactcCrr.rr�rrr�depart_contact{rzHTMLTranslator.depart_contactcCr)N�	copyrightrr�rrr�visit_copyright~r�zHTMLTranslator.visit_copyrightcCrr.rr�rrr�depart_copyright�rzHTMLTranslator.depart_copyrightcCr)N�daterr�rrr�
visit_date�r�zHTMLTranslator.visit_datecCrr.rr�rrr�depart_date�rzHTMLTranslator.depart_datecCr�r.rr�rrr�visit_decoration�r�zHTMLTranslator.visit_decorationcCr�r.rr�rrr�depart_decoration�r�z HTMLTranslator.depart_decorationcCs&|j�d�|j�|�|dd��dS)N�</dt>
�ddrJr�r�rrr�visit_definition�szHTMLTranslator.visit_definitioncCr��Nr9r�r�rrr�depart_definition�r�z HTMLTranslator.depart_definitioncCs8|�dg�}|�|�r|�d�|j�|�|d��dS)Nr�r(r2)�
setdefaultr'rqr!r��r2r�r�rrr�visit_definition_list�s

z$HTMLTranslator.visit_definition_listcCr��Nr=r�r�rrr�depart_definition_list�r�z%HTMLTranslator.depart_definition_listcCs||�dg�|jd�dg�|jdd<|�dg�|jd�dg�|jdd<|�dg�|jd�dg�|jdd<dS)Nr�rr��names)r�r�r�rrr�visit_definition_list_item�s���z)HTMLTranslator.visit_definition_list_itemcCr�r.rr�rrr�depart_definition_list_item�r�z*HTMLTranslator.depart_definition_list_itemcCr�)NrwrJr�r�rrr�visit_description�rz HTMLTranslator.visit_descriptioncCr�ryr�r�rrr�depart_description�r�z!HTMLTranslator.depart_descriptioncCsD|j�t|j��d}|�|�r|d7}|j�|j|d|d��dS)Nr � simpler2r)rzrqrcr!r'r�r|rrr�
visit_docinfo�s

zHTMLTranslator.visit_docinfocCs0|j�d�|j��}|j|d�|_g|_dSr~)r!rqrzr�r )r2r��startrrr�depart_docinfo�s

zHTMLTranslator.depart_docinfoTcCs^|rd||�|���f}|�|�|j�d||jj|f�|j�|j|dd|d��dS)Nz <meta name="%s" content="%s" />
z<dt class="%s">%s</dt>
rwrJr)r�r��add_metar!rqrn�labelsr�)r2r�r�r'�meta_tagrrrr��s�
�z!HTMLTranslator.visit_docinfo_itemcCr�ryr�r1rrrr��r�z"HTMLTranslator.depart_docinfo_itemcCr-)Nr�rJzcode python doctestr�r�r�rrr�visit_doctest_block�s�z"HTMLTranslator.visit_doctest_blockcCr�r�r�r�rrr�depart_doctest_block�r�z#HTMLTranslator.depart_doctest_blockcCs:|�dd�ptj�|d�pd}|j�d|�|��dS)Nr#rJ�sourcezdocutils document without titlez<title>%s</title>
)r��osre�basenamerrqr�)r2r�r#rrr�visit_document�s�zHTMLTranslator.visit_documentcCsD|j�|j|jd|jjig�|j�|j�|j�	d|j
|jj�|j�	d|j
|jj�dd�
|j�vr=|j�d�|jrT|jdkrM|j�|j�n|j�|j�|j�|jdd��|j�|j|dd	d
��|j�	dd�|j�|j�|j�|jdd�|j|j|j|jdd��|jr�Jd
t|j���dS)Nr\rzname="dcterms.rJz=<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>�mathjaxrhr�r5rr�razlen(context) = %s)rr��doctype�head_prefix_templaterBrkr)rqr'r�r�rPrrNr�rvrr*rr�r"r(r!r-rr rzrcr�rrr�depart_document�s8

���
���zHTMLTranslator.depart_documentcCr�)N�emrJr�r�rrr�visit_emphasis�rzHTMLTranslator.visit_emphasiscCr�)Nz</em>r�r�rrr�depart_emphasis�r�zHTMLTranslator.depart_emphasiscCs�dgi}t|jjtj�r|d�d�|jjjj|jjr$|d�d�|dr4d}d�|d�|d<nd}|d=|jjd7_d|vrM|dd|d	<d
|vrc|d
d|d<|jj|d
7_|j�|j	||dfi|���|j
�d
|���dS)Nr�rrQ�thr��tdrh�morerows�rowspan�morecols�colspanrJz</%s>
)r�rr�theadrqrR�columnrNr!r�rzry)r2r�r�r�rrr�visit_entry�s$zHTMLTranslator.visit_entrycC�|j�|j���dSr.r
r�rrr�depart_entry�zHTMLTranslator.depart_entrycCsni}d|vr|d|d<d|vr|d|d<|�|�r'|�dd�d��|d<|j�|j|dfi|���dS)Nr��enumtyper�rJr��ol)r'r�r�r!rqr��r2r�r�rrr�visit_enumerated_lists
 z$HTMLTranslator.visit_enumerated_listcCr�)Nz</ol>
r�r�rrr�depart_enumerated_listr�z%HTMLTranslator.depart_enumerated_listcCs2d}|�|�r|d7}|j�|j|d|d��dS)Nz
field-listr�r2r)r'r!rqr�r|rrr�visit_field_lists
zHTMLTranslator.visit_field_listcCr�r~r�r�rrr�depart_field_list'r�z HTMLTranslator.depart_field_listcCr�r.rr�rrr�visit_field*r�zHTMLTranslator.visit_fieldcCr�r.rr�rrr�depart_field-r�zHTMLTranslator.depart_fieldc
Cs*|j�|j|ddd�|jd�d��dS)N�dtrJr�r)r!rqr�rNrr�rrr�visit_field_name2s�zHTMLTranslator.visit_field_namecCr�)Nrvr�r�rrr�depart_field_name6r�z HTMLTranslator.depart_field_namec
Cs@|j�|j|ddd�|jd�d��|js|j�d�dSdS)NrwrJr�rz<p></p>)r!rqr�rNrr�r�rrr�visit_field_body9s��zHTMLTranslator.visit_field_bodycCr�ryr�r�rrr�depart_field_body@r�z HTMLTranslator.depart_field_bodycCsdddi}|�d�rd|d|d<|�d�r"|dd|d7<|j�|j|dfi|���dS)	Nr��figure�width�	width: %srX�alignz align-r�)r�r!rqr�r�rrr�visit_figureCs

 zHTMLTranslator.visit_figurecCr�r�r�r�rrr�
depart_figureKr�zHTMLTranslator.depart_figurecC�|j�t|j��dSr.�rzrqrcr!r�rrr�visit_footerOr�zHTMLTranslator.visit_footercCsf|j��}|j|ddd�dg}|�|j|d��|�d�|j�|�||jdd�<|j|d�=dS)Nr�r&rz<hr class="footer" />
z
</div>
r)rzr�r�r�r!rqr&r")r2r�r�r&rrr�
depart_footerRs
�
zHTMLTranslator.depart_footercCsH|js"|��}g|d<d|jj}|j�|j|d|d��d|_dSdS)Nr�z	footnote r2rT)r�r4rB�footnote_referencesr!rqr�)r2r�r5r�rrr�visit_footnote_s
�zHTMLTranslator.visit_footnotecCr7r8)r!rqr�r>r�footnoter�r�rrr�depart_footnotehr@zHTMLTranslator.depart_footnotec	Cs8d|d}d|jj}|j�|j|dd||d��dS)NrArBzfootnote-reference rDrJrF)rBr�r!rqr�)r2r�rGr�rrr�visit_footnote_referenceos
�z'HTMLTranslator.visit_footnote_referencecCr�)N�</a>r�r�rrr�depart_footnote_referenceur�z(HTMLTranslator.depart_footnote_referencecCs:d|dvr|���d�}|j�d|�|��tj�dS)N�sectnumr�� z <span class="sectnum">%s</span> )r�rOr!rqr�rr^)r2r�r�rrr�visit_generatedys��zHTMLTranslator.visit_generatedcCr�r.rr�rrr�depart_generated�r�zHTMLTranslator.depart_generatedcCr�r.r�r�rrr�visit_header�r�zHTMLTranslator.visit_headercCsb|j��}|j|ddd�g}|�|j|d��|�d�|j�|�|j�|�|j|d�=dS)Nr�r%rz
<hr class="header"/>
</div>
)rzr�r�r�r!rqrr%)r2r�r�r%rrr�
depart_header�s

zHTMLTranslator.depart_headerc
Cs`i}|d}t�|�d}d|vr|d|d<d|vr!|d|d<d|vr�trvd|vr/d|vsv|jjrvt|�}z
tj�|�t	�
���}WnttfyOYn'w|jj
�|�dd��d|vrhd|jd|d<d|vrud|jd	|d<~d
D]*}||vr�t�d||�}|s�J�dt|�d	��t|d�d
|�d�f||<qxg}	d
D]$}||vr�t�d||�r�||d7<|	�d|||f�||=q�|	r�d�|	�|d<t|jtj�s�t|jtj�r�t|jjtj�s�d}
nd}
d|vr�d|d|d<|jj�sd|v�rpd}|�s
d}|jj�sd}ztt|�d��}|��}
Wd�n	1�s,wYWnt�yH}z	|j}WYd}~nd}~ww|�rX|jj �!d||f�n|jj
�|�dd��t"�#|
��$�}d||f}|dk�r�||d <|j%|d!dfd"|i|��|�&d#|�d$|
}n|�&d#|d�|d#<|j'|d%|
fd&|i|��}|j(�|�dS)'Nr�rr��height�scale�\�/z%dpxrh)r�r�z([0-9.]+)(\S*)$z%s%s�d�z	^[0-9.]+$�pxz%s: %s;r�rXrJrKr��align-%sr��embedzunknown MIME typezfile insertion disabled.r?zCannot embed image %r: %szdata:%s;base64,%szapplication/x-shockwave-flash�type�object�data�altz	</object>�img�src))�	mimetypes�
guess_typerrB�file_insertion_enabledr�ImagerAr��sys�getfilesystemencodingr��UnicodeEncodeErrorr�r�r��size�re�match�float�grouprqrNr�rr�TextElement�	reference�embed_imagesrEr�r5rmr��base64�	b64encode�decoder�r�r�r!)r2r�r�r��mimetype�	imagepathr��att_namer�rXr��err_msg�	imagefile�	imagedatar��data64�tagrrr�visit_image�s����
�
�����

����
�
�

���zHTMLTranslator.visit_imagecCr�r.rr�rrr�depart_image�r�zHTMLTranslator.depart_imagecCr�)NrKrJr�r�rrr�visit_inline�rzHTMLTranslator.visit_inlinecCr�rNr�r�rrr�
depart_inline�r�zHTMLTranslator.depart_inlinecCs�t|jtj�r|jj}nd}|j�|j|jdddd��|j�|j|dd|d��|jj	rD|jd}t
|�dkrF|j�d	|d
�dSdSdS)N�bracketsr�rJ�labelrrK�backrefsrhz!<a class="fn-backref" href="#%s">r)r�rrr�rBr�r!rqr��footnote_backlinksrc)r2r�r�r�rrr�visit_label�s


��zHTMLTranslator.visit_labelcCs�|jjr|jd}t|�dkr|j�d�|j�d�|jjr:t|�dkr:dd�t|d�D�}|j�dd�|��|j�d	�dS)
Nr�rhr�rOcSsg|]
\}}d||f�qS)�<a href="#%s">%s</a>r)rd�i�refrrrrfs�z/HTMLTranslator.depart_label.<locals>.<listcomp>z$<span class="fn-backref">(%s)</span>�,z
</dt>
<dd>)rBr�rrcr!rq�	enumeraterN)r2r�r��	backlinksrrr�depart_labels
��zHTMLTranslator.depart_labelcCrf)Nr��legendrr�r�rrr�visit_legend
rhzHTMLTranslator.visit_legendcCr�r�r�r�rrr�
depart_legendr�zHTMLTranslator.depart_legendcCs6|j�|j|dddd��t|�s|j�d�dSdS)Nr�rJ�liner�z<br />rbr�rrr�
visit_lines�zHTMLTranslator.visit_linecCr�r�r�r�rrr�depart_liner�zHTMLTranslator.depart_linecCrf)Nr�z
line-blockrr�r�rrr�visit_line_blockrhzHTMLTranslator.visit_line_blockcCr�r�r�r�rrr�depart_line_blockr�z HTMLTranslator.depart_line_blockcCr�)N�lirJr�r�rrr�visit_list_item!rzHTMLTranslator.visit_list_itemcCr�)Nz</li>
r�r�rrr�depart_list_item$r�zHTMLTranslator.depart_list_itemcCs�|�dg�}d|vr dd�|D�|d<|j�|�|dd��dS|j�|j|dddd��|��}t|jtj�s>|�	d	d
�}|j
�|�D]!}|��r\|j
�|�r\|j�d|�|��qD|j�|�|��qD|j�d�tj�)
Nr��codecSsg|]}|dkr|�qS)rr�rdr�rrrrf-sz0HTMLTranslator.visit_literal.<locals>.<listcomp>rJrKzdocutils literalrrKr�z<span class="pre">%s</span>rO)r�r!rqr�r�r�rr�
literal_blockr��words_and_spaces�findallr��in_word_wrap_point�searchr�r^)r2r�r�r��tokenrrr�
visit_literal(s&��zHTMLTranslator.visit_literalcCr�)N�</code>r�r�rrr�depart_literalBszHTMLTranslator.depart_literalcCs>|j�|j|dddd��d|�dg�vr|j�d�dSdS)Nr�rJ�
literal-blockrrr�z<code>)r!rqr�r�r�rrr�visit_literal_blockFs�z"HTMLTranslator.visit_literal_blockcCs,d|�dg�vr|j�d�|j�d�dS)Nrr�rz</pre>
)r�r!rqr�rrr�depart_literal_blockKsz#HTMLTranslator.depart_literal_block)r�rJrJ)r�rK�formula)r�rK�math)r��ttr��mathmlrr��latexrJc
s��j�jvr�jj�d�j�d�_�j�j|dk}�j�jd}ddddd�}|�j|dk}�jd	krF�jrD�jd
dkrFd}|���tj	�}|rgz	||||f}Wn
t
yf||}Ynw�jdvrq��|�}�jd
kr��js�z�jd
�_
Wnty��jj�d�Ynwd�j
vr��j
d7_
�j�j
g�_n�jdkrΈjrˆjs‡fdd��jd
�d�D��_|dktj_t�|�}n��jd	k�r�d�jvr�j�_�j�_d��j���}zA|dkr�t�|�jj�}n2|dk�rt�|�jj�}n$|dk�rtj||�jjd�}n|�s"tj ||d�}n�jj�d�Wnct!�y6t!d��t"�y�}	zK�jjj|	|d�}
��#|
��j$�%��&|d���j$�%d�|	j'���j$�%d��j$�%�j&|d d!d"���j$�%��|���j$�%d#���(|
�t)j*�d}	~	ww|�r��j$�%�j&||d$t+|�|d%���j$�%|�|�r��j$�%d$�|�r��j$�%d&|�|�rňj$�%d$�t)j*�)'Nz=math-output format "%s" not supported falling back to "latex"r!rJr�)z$%s$�\begin{%s}
%s
\end{%s})z\(%s\)r")NNrr r�	blahtexml)r!r�r�z@No MathJax URL specified, using local fallback (see config.html)�?z?config=TeX-AMS_CHTMLrcs"g|]
}��t�|�jj���qSr)rcr	�find_file_in_dirsrB�stylesheet_dirs)rd�sr1rrrf�s
��z-HTMLTranslator.visit_math.<locals>.<listcomp>r�zXHTML 1r��latexml�ttm)�inlinerm)r*z3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)�	base_noderr	r�rrr�rKr��</%s>),rv�	math_tagsr5rmr�rxr�r>r�
uni2tex_table�	TypeErrorr�r��mathjax_urlr��warning�mathjax_scriptrwr�DocumentParameters�displaymoder��doctype_mathml�content_type_mathmlr�rNryrr(r)r#r�
tex2mathml�OSError�SyntaxError�visit_system_messager!rqr��args�depart_system_messagerr^�bool)r2r��math_envr��clsarg�wrappers�wrapper�	math_code�	converterr��err_noderr1r�
visit_math\s�����

�


�
�
�
���
�
��

�zHTMLTranslator.visit_mathcCr�r.rr�rrr�depart_math�r�zHTMLTranslator.depart_mathcCst|���}|j||d�dS)N)r>)rr�rE)r2r�r>rrr�visit_math_block�szHTMLTranslator.visit_math_blockcCr�r.rr�rrr�depart_math_block�r�z HTMLTranslator.depart_math_blockcCs&|j|dfi|����}|�|�dS)Nr')r��non_default_attributesr�)r2r�r'rrr�
visit_meta��zHTMLTranslator.visit_metacCr�r.rr�rrr�depart_meta�r�zHTMLTranslator.depart_metacCs|j�|�|j�|�dSr.)r'rqr)r2r�rrrr��szHTMLTranslator.add_metacCr-)NrKrJ�optionrr�r�rrr�visit_option�r0zHTMLTranslator.visit_optioncCs6|j�d�t|jddd�tj�r|j�d�dSdS)NrOFTr:�, )r!rqr�r>rrMr�rrr�
depart_option�s��zHTMLTranslator.depart_optioncCs.|j�|�dd��|j�|�|dd��dS)N�	delimiterr��varrJ)r!rqr�r�r�rrr�visit_option_argument�sz$HTMLTranslator.visit_option_argumentcCr�)Nz</var>r�r�rrr�depart_option_argument�r�z%HTMLTranslator.depart_option_argumentcCs&|j�|�|dd��|j�d�dS)Nr�rJz<kbd>r�r�rrr�visit_option_group�sz!HTMLTranslator.visit_option_groupcCr�)Nz</kbd></dt>
r�r�rrr�depart_option_group�r�z"HTMLTranslator.depart_option_groupcCrf)Nr2zoption-listrr�r�rrr�visit_option_list�s�z HTMLTranslator.visit_option_listcCr�r~r�r�rrr�depart_option_list�r�z!HTMLTranslator.depart_option_listcCr�r.rr�rrr�visit_option_list_item�r�z%HTMLTranslator.visit_option_list_itemcCr�r.rr�rrr�depart_option_list_item�r�z&HTMLTranslator.depart_option_list_itemcCr�r.rr�rrr�visit_option_string�r�z"HTMLTranslator.visit_option_stringcCr�r.rr�rrr�depart_option_string�r�z#HTMLTranslator.depart_option_stringcCr)N�organizationrr�rrr�visit_organizationr�z!HTMLTranslator.visit_organizationcCrr.rr�rrr�depart_organizationrz"HTMLTranslator.depart_organizationcCr�)NrrJr�r�rrr�visit_paragraphrzHTMLTranslator.visit_paragraphcCsB|j�d�t|jtjtjf�rt|j�dks|j�d�dSdS)NrrhrK)r!rqr�rr�	list_item�entryrcr�rrr�depart_paragraphs
�zHTMLTranslator.depart_paragraphcCsV|�d�r|j�d|d�|j�d�n|j�d�|j�|j|dddd��dS)NrBz<a href="#%s">r�rJrK�problematicr)�hasattrr!rqrzr�r�rrr�visit_problematic s

z HTMLTranslator.visit_problematiccCs"|j�d�|j�|j���dSrNr
r�rrr�depart_problematic(sz!HTMLTranslator.depart_problematiccCsxd|�dd���vr9t|jtj�rdpd}|dr%|j�|j||dd��|j�|�	��|dr9|j�d|�tj
�)	Nr�formatrJrKr�r�)r�r,)r�rwr�rrr�r!rqr�r�r^)r2r��trrr�	visit_raw,szHTMLTranslator.visit_rawcCsddi}d|vr.|d|d<|jjr%|d�d�r%|�|d�|d<d|_|dd7<nd|vs6Jd	��d
|d|d<|dd7<t|�dkr\t|d
tj�r\|dd7<t|j	tj
�s{t|�dkrqt|d
tj�ssJ�|dd7<|j�|j
|ddfi|���dS)Nr�r��refurirGzmailto:Tz	 externalrBz3References must have "refuri" or "refid" attribute.rAz	 internalrhrz image-referencerDrJ)rBr�r�r�r�rcr�r�imagerr�r!rqr�r�rrr�visit_reference7s(�
� "zHTMLTranslator.visit_referencecCs0|j�d�t|jtj�s|j�d�d|_dS)Nr�rKF)r!rqr�rrr�r�r�rrr�depart_referenceLs
zHTMLTranslator.depart_referencecCrj)N�revisionFr�rr�rrr�visit_revisionRr3zHTMLTranslator.visit_revisioncCrr.rr�rrr�depart_revisionUrzHTMLTranslator.depart_revisioncCs |j�|�|dd��d|_dS)N�trrJr)r!rqr�r�r�rrr�	visit_rowXs
zHTMLTranslator.visit_rowcCr�)Nz</tr>
r�r�rrr�
depart_row\r�zHTMLTranslator.depart_rowcCr-)NrrJ�rubricrr�r�rrr�visit_rubric_r0zHTMLTranslator.visit_rubriccCr�rr�r�rrr�
depart_rubricbr�zHTMLTranslator.depart_rubriccCs*|jd7_|j�|j|ddd��dS)Nrhr��sectionr)rsr!rqr�r�rrr�
visit_sectiones�zHTMLTranslator.visit_sectioncCs|jd8_|j�d�dS)Nrhr�)rsr!rqr�rrr�depart_sectionjszHTMLTranslator.depart_sectioncCs"|j�|j|ddd��d|_dS)Nr��sidebarrT)r!rqr�r�r�rrr�
visit_sidebaros�
zHTMLTranslator.visit_sidebarcCs|j�d�d|_dS)Nr�F)r!rqr�r�rrr�depart_sidebart�
zHTMLTranslator.depart_sidebarcCrj)N�statusFr�rr�rrr�visit_statusxr3zHTMLTranslator.visit_statuscCrr.rr�rrr�
depart_status{rzHTMLTranslator.depart_statuscCr�)N�strongrJr�r�rrr�visit_strong~rzHTMLTranslator.visit_strongcCr�)Nz	</strong>r�r�rrr�
depart_strong�r�zHTMLTranslator.depart_strongcCr�)Nr�rJr�r�rrr�visit_subscript�rzHTMLTranslator.visit_subscriptcCr�)Nz</sub>r�r�rrr�depart_subscript�r�zHTMLTranslator.depart_subscriptcC�tj�)zInternal only.�rr^r�rrr�visit_substitution_definition��z,HTMLTranslator.visit_substitution_definitioncCs|�|�dSr.)�unimplemented_visitr�rrr�visit_substitution_reference�sz+HTMLTranslator.visit_substitution_referencecCsht|jtj�r
d}nt|jtj�rd}t|j�d|_n	t|jtj�r%d}|j�	|j
|dd|d��dS)Nzsidebar-subtitler$rhzsection-subtitlerrJr)r�rrr{r5rcr!r�rxrqr�r|rrr�visit_subtitle�szHTMLTranslator.visit_subtitlecCsb|j�d�t|jtj�r/|j|jd�|_d|_|j�	|j�|j
�	|j�|jdd�=dSdS)Nr	rar)r!rqr�rrr5r�r$rr�r,r�rrr�depart_subtitle�s�zHTMLTranslator.depart_subtitlecCr�)N�suprJr�r�rrr�visit_superscript�rz HTMLTranslator.visit_superscriptcCr�)Nz</sup>r�r�rrr�depart_superscript�r�z!HTMLTranslator.depart_superscriptc	Cs�|j�|j|ddd��|j�d�d}t|d�rH|d}t|�dkr+d|d	}nd}g}|D]}|�d
||f�|d7}q1dd�|�}|�d
�rTd|d
}nd}|j�d|d|d|�|d�||f�dS)Nr�zsystem-messagerz <p class="system-message-title">rJr�rhz%; <em><a href="#%s">backlink</a></em>rr�z; <em>backlinks: %s</em>rOrz	, line %szISystem Message: %s/%s (<span class="docutils literal">%s</span>%s)%s</p>
r��levelr�)r!rqr�rcrNrer�)r2r��backref_textr�r�r�backrefrrrrr:�s2�
�
�
�z#HTMLTranslator.visit_system_messagecCr�r�r�r�rrrr<�r�z$HTMLTranslator.depart_system_messagecCs|i}dd�|jj�d�D�}d|vr|�d|d�d|vr'd|d|d<|j|d	fd
d�|�i|��}|j�|�dS)NcSsg|]}|�d��qS)z 	
)r�rrrrrf�rgz.HTMLTranslator.visit_table.<locals>.<listcomp>r�r�r�r�r�rXr�r�r�)rBrZrwrqr�rNr!)r2r�r�r�r�rrr�visit_table�s�zHTMLTranslator.visit_tablecCr�)Nz	</table>
r�r�rrr�depart_table�r�zHTMLTranslator.depart_tablecCsRd|vs!d|vs!d|vs!|j�|j|dddd��|j�d�dS|j�d�dS)	NrkrBrCrKrJ�targetrrO)r!rqr�rzr�rrr�visit_target�s
zHTMLTranslator.visit_targetcCr�r.r
r�rrr�
depart_target�r�zHTMLTranslator.depart_targetcCr)N�tbodyr�r�rrr�visit_tbody�rzHTMLTranslator.visit_tbodycCr�)Nz	</tbody>
r�r�rrr�depart_tbody�r�zHTMLTranslator.depart_tbodycCr�)Nr�rJr�r�rrr�
visit_term�rzHTMLTranslator.visit_termcCsdS)zg
        Leave the end tag to `self.visit_definition()`, in case there's a
        classifier.
        Nrr�rrr�depart_term�szHTMLTranslator.depart_termcCsg|_g|_dSr.)r|rRr�rrr�visit_tgroup�s
zHTMLTranslator.visit_tgroupcCr�r.rr�rrr�
depart_tgroup�r�zHTMLTranslator.depart_tgroupcCr)Nr�r�r�rrr�visit_thead�rzHTMLTranslator.visit_theadcCr�)Nz	</thead>
r�r�rrr�depart_thead�r�zHTMLTranslator.depart_theadcCs�d}t|jtj�r|j�|j|dddd��n�t|jtj�r,|j�|j|dddd��n�t|jtj�rA|j�|j|dddd��n�t|jtj	�rV|j�|�|dd��d	}n�t|jtj
�rs|j�|j|d
ddd��d}t|j�|_net|jtj
�s|J�|j|jd
}i}t|j�dkr�t|jd
tj�r�d|d<|j�|j|d|dfi|���i}|�d�r�d|d<d|d|d<|r�|j�|jiddfi|���d|}nd|}|j�|�dS)z,Only 6 section levels are supported by HTML.r	rrJztopic-titlerz
sidebar-titlezadmonition-titler.z</caption>
�h1r#z</h1>
rhr�z
with-subtitler�zh%srBztoc-backrefr�rArGrDz</a></h%s>
z</h%s>
N)r�rr�topicr!rqr�r{�
Admonitionr�r5rcr�rxrsrur$rerz)r2r��	close_tag�h_levelr�rrr�visit_titlesR������

zHTMLTranslator.visit_titlecCs`|j�|j���|jr.|j|jd�|_d|_|j�|j�|j�|j�|jdd�=dSdS)Nrar)	r!rqrzr�r�r#rr�r+r�rrr�depart_title*s�zHTMLTranslator.depart_titlecCr�)N�citerJr�r�rrr�visit_title_reference3rz$HTMLTranslator.visit_title_referencecCr�)Nz</cite>r�r�rrr�depart_title_reference6r�z%HTMLTranslator.depart_title_referencecCs&|j�|j|ddd��|d|_dS)Nr�r�rr�)r!rqr�r{r�rrr�visit_topic9rKzHTMLTranslator.visit_topiccCs|j�d�g|_dSr�)r!rqr{r�rrr�depart_topic=r~zHTMLTranslator.depart_topiccCrf)N�hrrQr)r!rqr�r�rrr�visit_transitionArhzHTMLTranslator.visit_transitioncCr�r.rr�rrr�depart_transitionDr�z HTMLTranslator.depart_transitioncCrj)NrMFr�rr�rrr�
visit_versionGr3zHTMLTranslator.visit_versioncCrr.rr�rrr�depart_versionJrzHTMLTranslator.depart_versioncCstd|jj��)Nz$visiting unimplemented node type: %s)�NotImplementedError�	__class__rr�rrrr�Ms�z"HTMLTranslator.unimplemented_visit)rKF)rK)rr.)T)rJ)�rrr�__doc__rpr�r5r�r�ror2r0r�r�r��compiler�Urr��ordr�rjr�r�r�r�r�rcr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr"r'r+r,r/r1r6r?rIrJrMrPrSr]r�r_rdrergrirlrmrorprrrsrtrurxrzr}rr�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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr	r
rr
rrrrr-rErFrGrHrJrLr�rNrPrSrTrUrVrWrXrYrZr[r\r^r_r`rcrfrgrjrmrnrprqrsrtrvrwryrzr|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�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr[ks�8
�;	
�
C�


�		

			V

�e
	(	r[c@s�eZdZdZdd�Zdd�Zdd�Zdd	�ZeZeZ	eZ
eZeZeZ
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"d
S)ra
    Raise `nodes.NodeFound` if non-simple list item is encountered.

    Here "simple" means a list item containing nothing other than a single
    paragraph, a simple list, or a paragraph followed by a simple list.

    This version also checks for simple field lists and docinfo.
    cCr�r.)rr!r�rrr�
default_visit]szSimpleListChecker.default_visitcCsrdd�|jD�}|r.t|dtj�r.t|dtj�s*t|dtj�s*t|dtj�r.|��t|�dkr6dStj	�)NcSr�rr�)rdr�rrrrfas

�z5SimpleListChecker.visit_list_item.<locals>.<listcomp>rrarh)
r�r�r�	paragraphr�r�r�r�rcr!)r2r�r�rrrr`s���z!SimpleListChecker.visit_list_itemcCr�r.rr�rrr�	pass_nodemr�zSimpleListChecker.pass_nodecCr�r.r�r�rrr�ignore_nodepr�zSimpleListChecker.ignore_nodeN)#rrrr�r�rr�r�r�r`r+r�r�rrr�rlrorrr^r�r�r}r�r�rMrxr�r�r�r�r_r�r��
visit_pendingrrrrrRsB	
r)'r�r�r�r��os.pathr�r��	PIL.Imager�ImportErrorr�r�rQrr	r
rr�docutils.utils.error_reportingr
�docutils.transformsr�docutils.utils.mathrrrrr�version_info�urllib.requestr�urllib�strrDrrir[�GenericNodeVisitorrrrrr�<module>sT
���

7r