
    -Ph                       d Z ddlmZ ddlZddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlmZmZ ddlmZmZ ddlmZm Z m!Z! ddl"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z) erLddl*m+Z+m,Z,m-Z-m.Z.m/Z/ ddlm0Z0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6 ddlm7Z7 ddlm8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@mAZAmBZBmCZC  e jD        eE          ZF ejG        d          ZH ejG        d          ZI e            ZJ G d deeK                   ZL G d  d!eL          ZM G d" d#e          ZN G d$ d%eeK                   ZO G d& d'e#          ZP G d( d)eeK                   ZQ G d* d+e#          ZR G d, d-e          ZS ejG        d.          ZTdXd3ZUdYdAZV G dB dCe#          ZWdZd[dGZX G dH dIe#          ZY G dJ dKe          ZZ G dL dMe          Z[d\dUZ\d]dWZ]dS )^zThe standard domain.    )annotationsN)copy)TYPE_CHECKINGcast)nodes)
directives)
StringList)addnodes)pending_xref)ObjectDescription)DomainObjType)___)EmphasizedLiteralXRefRole)docname_joinloggingws_re)SphinxDirective)clean_astextmake_idmake_refnode)nested_parse_to_nodes)CallableIterableIteratorMutableSequenceSet)AnyClassVarFinal)ElementNodesystem_message)	Directive)desc_signature)Sphinx)Builder)BuildEnvironment)ExtensionMetadata
OptionSpecRoleFunctionTitleGetterz ((?:/|--|-|\+)?[^\s=]+)(=?\s*.*)z`((~?[\w-]*:)?\w+)`c                  @    e Zd ZU dZdZded<   dZded<   ddZddZdS )GenericObjectzCA generic x-ref directive registered with Sphinx.add_object_type(). strindextemplateNz=Callable[[BuildEnvironment, str, desc_signature], str] | None
parse_nodesigsignoder'   returnc                    | j         r|                      | j        ||          }nA|                                 |t          j        ||          z  }t          j        d|          }|S )N )r4   envclearr
   	desc_namer   sub)selfr5   r6   names       [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/domains/std/__init__.pyhandle_signaturezGenericObject.handle_signature;   s_    ? 	'??48S'::DDMMOOOx)#s333G9S#&&D    r?   Nonec                j   t          | j        | j        j        | j        |          }|d                             |           | j        j                            |           | j        r| j                            d          }|dk    rJ| j        d |         	                                }| j        |dz   d          	                                |fz  }nd}| j        |fz  }| j
        d                             |||dd f           | j        j        j        }|                    | j        |||           d S )	Nids:   singleentriesr1   location)r   r:   statedocumentobjtypeappendnote_explicit_targetr3   findstrip	indexnodedomainsstandard_domainnote_object)	r>   r?   r5   r6   node_idcolon	indextype
indexentrystds	            r@   add_target_and_indexz"GenericObject.add_target_and_indexE   s-    $(DJ$7tLLg&&&
00999 	Y&++C00E{{ .vv6<<>>	!/	<BBDDwN

$	!/4'9
N9%,,iWbRV-WXXXh.dGgFFFFFrB   r5   r2   r6   r'   r7   r2   r?   r2   r5   r2   r6   r'   r7   rC   )	__name__
__module____qualname____doc__r3   __annotations__r4   rA   r]    rB   r@   r0   r0   5   sl         MMMPTJTTTT   G G G G G GrB   r0   c                  $    e Zd Z ed          ZdS )EnvVarenvironment variable; %sN)r`   ra   rb   r   r3   re   rB   r@   rg   rg   Z   s        A011MMMrB   rg   c                      e Zd ZdZddZdS )EnvVarXRefRolezGCross-referencing role for environment variables (adds an index entry).rN   nodes.documentr:   r*   noder#   is_refboolr7   'tuple[list[Node], list[system_message]]c                    |s|gg fS |d         }d|                     d          z  }t          j                    }d||dd fdt          d          |z  |dd fg|d<   t	          j        dd|g          }|                    |           |||gg fS )	N	reftargetzindex-%sindexrI   r1   rh   rJ   rE   )new_serialnor
   rr   r   r   targetrQ   )	r>   rN   r:   rl   rm   varnametgtidrT   
targetnodes	            r@   result_nodeszEnvVarXRefRole.result_nodesa   s      	62:{#S--g666N$$	wr40q344w>r4P 
	) \"bug666
%%j111:t,b00rB   N)
rN   rk   r:   r*   rl   r#   rm   rn   r7   ro   )r`   ra   rb   rc   ry   re   rB   r@   rj   rj   ^   s.        QQ1 1 1 1 1 1rB   rj   c                      e Zd ZU  ed          Zded<   ej        ej        ej        ej        ej        ej        dZ	ded<   ddZ
ddZddZddZd dZd!dZd"dZdS )#ConfigurationValuez%s; configuration valuer2   index_template)zno-indexzno-index-entryzno-contents-entryzno-typesettingtypedefaultClassVar[OptionSpec]option_specr5   sig_noder'   r7   c                    |                                  |t          j        ||          z  }t          j        d|          }||d<   |S )Nr9   fullname)r;   r
   r<   r   r=   )r>   r5   r   r?   s       r@   rA   z#ConfigurationValue.handle_signature   sI    H&sC000yc""#rB   tuple[str, ...]c                    |d         fS )Nr   re   )r>   r   s     r@   _object_hierarchy_partsz*ConfigurationValue._object_hierarchy_parts   s    $&&rB   c                H    |                     d          sdS |d         \  }|S )N
_toc_partsr1   )get)r>   r   r?   s      r@   _toc_entry_namez"ConfigurationValue._toc_entry_name   s,    ||L)) 	2<(rB   r?   r6   rC   c                   t          | j        | j        j        | j        |          }|d                             |           | j        j                            |           | j        |z  }| j        d                             d||dd f           | j        j	        j
        }|                    | j        |||           d S )NrE   rJ   pairr1   rK   )r   r:   rM   rN   rO   rP   rQ   r|   rT   rU   rV   rW   )r>   r?   r5   r6   rX   index_entrydomains          r@   r]   z'ConfigurationValue.add_target_and_index   s     $(DJ$7tLLg&&&
00999)D0y!((&+wD)QRRR!14<wIIIIIrB   content_nodeaddnodes.desc_contentc                   t          j                    }d| j        v r=|                     | j        d                   \  }}|                    |           ||z  }d| j        v r=|                     | j        d                   \  }}|                    |           ||z  }t          |j                  dk    r|                    d|           dS dS )z,Insert *type* and *default* as a field list.r}   r~   r   N)	r   
field_listoptionsformat_typerP   format_defaultlenchildreninsert)r>   r   r   fieldmsgss        r@   transform_contentz$ConfigurationValue.transform_content   s    %''
T\!!**4<+?@@KE4e$$$$J$$--dl9.EFFKE4e$$$$Jz"##a'':..... ('rB   type_(tuple[nodes.field, list[system_message]]c           	         |                      || j                  \  }}t          j        dt          j        dt          d                    t          j        dg|R            }||fS )zFormats the ``:type:`` option.linenor1   Typeparse_inliner   r   r   
field_namer   
field_body)r>   r   parsedr   r   s        r@   r   zConfigurationValue.format_type   sl    ((t{(CCR6++R)&)))
 

 d{rB   r~   c           	         |                      || j                  \  }}t          j        dt          j        dt          d                    t          j        dg|R            }||fS )z!Formats the ``:default:`` option.r   r1   Defaultr   )r>   r~   r   r   r   s        r@   r   z!ConfigurationValue.format_default   sl    (((EER9..R)&)))
 

 d{rB   N)r5   r2   r   r'   r7   r2   )r   r'   r7   r   )r   r'   r7   r2   r_   )r   r   r7   rC   )r   r2   r7   r   )r~   r2   r7   r   )r`   ra   rb   r   r|   rd   r   flagunchanged_requiredr   rA   r   r   r]   r   r   r   re   rB   r@   r{   r{   v   s        !566N6666O$/'_$/-0) )K       ' ' ' '   	J 	J 	J 	J/ / / /        rB   r{   c                  >    e Zd ZU dZdZdZdZdZdZi Z	de
d<   ddZdS )Targetz6Generic target for user-defined cross-reference types.r1   FrH   r   Tr   r   r7   
list[Node]c                :   t          j        d| j        d                                                   }t	          | j        | j        j        | j        |          }t          j
        dd|g          }|                     |           | j        j                            |           |g}| j        r| j        |fz  }d}|                    d          }|dk    r;|d |                                         }||dz   d                                          }t          j        |||dd fg	          }|                    d|           | j        }	d| j        v r| j                            dd          \  }
}	| j        j        j        }|                    |	|||
           |S )Nr9   r   r1   rs   rI   rF   rG   rH   )rJ   rK   )r   r=   	argumentsrS   r   r:   rM   rN   r?   r   ru   set_source_inforQ   r3   rR   r
   rr   r   splitrU   rV   rW   )r>   r   rX   rl   retr[   rZ   rY   inoder?   r   r\   s               r@   runz
Target.run   s   9S$."3"9"9";";<<$(DJ$7HMM|B	222T"""
00666& 	!+xk9J IOOC((E{{&vv.4466	'	4::<<
NY
GRQU,V+WXXXEJJq%   y$)iooc1--GAth.h$???
rB   Nr7   r   )r`   ra   rb   rc   r3   has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer   rd   r   re   rB   r@   r   r      s]         @@MK $(*K****     rB   r   c                  "    e Zd ZdZddZdd
ZdS )	Cmdoptionz1Description of a command-line option (.. option).r5   r2   r6   r'   r7   c                P   d}d}|                     d          D ]}|                                }t                              |          }|s+t                              t          d          ||           ^|                                \  }}|d         dk    r|d         dk    r|d	d         }d|z   }|rS| j        j	        r/|t          j        d
d
          z  }|t          j                    z  }n|t          j        dd          z  }|t          j        ||          z  }| j        j	        r(d}	|r|d         dk    r1|d         dk    r%d}	|t          j        dd          z  }|dd         }ne|d         dk    r+|t          j                    z  }|                                }n.|d         dk    r"|t          j        dd          z  }|dd	         }t                              |          D ]K}
t#          |
t$          j                  r*|t%          j        |
                                          z  }F||
z  }L|	r|t          j        dd          z  }n|t          j        ||          z  }|s	|}|g|d<   n|d                             |           |dz  }|st,          |S )z/Transform an option description into RST nodes.r   r1   z, znMalformed option description %r, should look like "opt", "-opt args", "--opt args", "/opt args" or "+opt args"rK   rG   []N,FTrH   r9   =allnames)r   rS   option_desc_rematchloggerwarningr   groupsconfigoption_emphasise_placeholdersr
   desc_sig_punctuationdesc_sig_spacedesc_addnamer<   	samp_roleparse
isinstancer   TextastextrP   
ValueError)r>   r5   r6   count	firstnamepotential_optionmoptnameargsadd_end_bracketparts              r@   rA   zCmdoption.handle_signature   s   	 #		$ 6	 6	/5577$$%566A 
5 
 %$     HHJJMGTr{c!!d2h#oo!#2#,Tz A;< Ax<S#FFFGx6888GGx4T4@@@Gx)'7;;;G{8 ="' ,Aw#~~$r(c//*.8#@c#J#JJ#AbDzaC8#:#<#<<#zz||aC8#@c#J#JJ#ABBx ) 5 5 , ,%dEJ77 ,#uz$++--'@'@@GG#tOGG" Gx<S#FFFG80t<<< 4#	'.i
##
#**7333QJEE 	rB   r   rC   c                x   | j         j                            d          }|                    dg           D ]}dg}|r|                    |           |                    d          s|                    d           d                    |          }t          | j         | j        j        ||          }|d                             |           | j        j        	                    |           | j         j
        j        }	|                    dd          D ]0}|	                    ||| j         j        |d         d	                    1|rt          d
          |z  }
nt          d          }
|                    dd          D ]:}|
 d| }| j        d                             d||d         d	         dd f           ;d S )Nstd:programr   	cmdoption)-/argr   rE   re   r   z%s command line optionzcommand line optionz; rJ   r   r1   )r:   ref_contextr   rP   
startswithjoinr   rM   rN   rQ   rU   rV   add_program_optiondocnamer   rT   )r>   r   r5   r6   currprogramr   prefixesprefixrX   r   descroptionentrys                r@   r]   zCmdoption.add_target_and_index'  s    h*..}=={{:r22 	+ 	+G#}H -,,,%%j11 '&&&XXh''Fdh
(;VWMMGEN!!'****
00999!1{{:r22 	 	G%%Wdh&6q8I   
  	-.//+=EE+,,Ekk*b11 	 	F((((EN9%,,q!.    	 	rB   Nr^   )r   r2   r5   r2   r6   r'   r7   rC   )r`   ra   rb   rc   rA   r]   re   rB   r@   r   r      sC        ;;= = = =~# # # # # #rB   r   c                  :    e Zd ZU dZdZdZdZdZi Zde	d<   dd
Z
dS )Programz?Directive to name the program for which options are documented.FrH   r   Tr   r   r7   r   c                    t          j        d| j        d                                                   }|dk    r!| j        j                            dd            n|| j        j        d<   g S )Nr   r   rC   r   )r   r=   r   rS   r:   r   pop)r>   programs     r@   r   zProgram.runV  sc    )C!2!8!8!:!:;;fH $$]D999929DH /	rB   Nr   )r`   ra   rb   rc   r   r   r   r   r   rd   r   re   rB   r@   r   r   M  sX         IIK $(*K****     rB   r   c                      e Zd ZddZdS )OptionXRefRoler:   r*   refnoder#   has_explicit_titlern   titler2   ru   r7   tuple[str, str]c                D    |j                             d          |d<   ||fS )Nr   )r   r   )r>   r:   r   r   r   ru   s         r@   process_linkzOptionXRefRole.process_link`  s(     "%!4!4]!C!Cf}rB   Nr:   r*   r   r#   r   rn   r   r2   ru   r2   r7   r   r`   ra   rb   r   re   rB   r@   r   r   _  s(        	 	 	 	 	 	rB   r   z +: +liner2   r7   tuple[str, str | None]c                    t                               |           }|d         }t          |          dk    r|d         nd }||fS )Nr      rH   )_term_classifiers_rer   r   )r   partstermfirst_classifiers       r@   split_term_classifiersr  o  sF     &&t,,E8D#&u::??uQxx!!!rB   r:   r*   	textnodesIterable[Node]	index_key
str | Nonesourcer   intrX   rN   rk   
nodes.termc                   t          j        ddg|R  }||_        ||_        |                                }|r|d                             |           nBt          | |d|          }|d                             |           |                    |           | j        j	        
                    |||           t          j                    }	d||d|fg|	d<   |j        |j        c|	_        |	_        |                    |	           |S )Nr1   rE   r   rK   rI   mainrJ   )r   r   r  r   r   rP   r   rQ   rU   rV   
_note_termr
   rr   )
r:   r  r  r  r   rX   rN   r   termtextrT   s
             r@   make_glossary_termr  w  s    :b")y)))DDKDI{{}}H ,U7#####x::U7###%%d+++K**8Wt*LLL   I%x&)LMIi'+{DI$IinKK	KrB   c                  H    e Zd ZU dZdZdZdZdZdej	        iZ
ded<   dd
ZdS )GlossaryzVDirective to create a glossary with cross-reference targets for :term:
    roles.
    Tr   Fsortedr   r   r7   r   c                   t          j                    }| j        j        |_        d| j        v |d<   g }d}d}d}g }t          | j        | j        j        d          D ]6\  }\  }}	|s*|r%|r#|d         d                             d||	           d}5|rT|d         	                                s9|
                    d	          rd}kd}|ro|sB|                    | j        j                            t          d
          ||	                     |                    |||	fgt                      f           d}nV|rB|                    | j        j                            t          d          ||	                     |r%|d         d                             |||	f           n|                    | j        j                            t          d          ||	                     n|rn|s3d}t          |          t          |                                          z
  }
|r,|d         d                             ||
d          ||	           nB|                    | j        j                            t          d          ||	                     d}8g }|D ]$\  }}g }g }|D ]\  }}}	t#          |          \  }}|                     ||	          \  }}t'          | j        ||||	d | j        j                  }||_        |                    |           |                    |           |                    |           |r,|j        d         d         }t/          | j        ||d          }ng }|                    t1          j        dg|R             |                    t1          j        dg|R             &t1          j        dg|R  }|d                             d           ||z  }g ||S )Nr  TF)strictrG   rH   r1   r   z.. z,glossary term must be preceded by empty line)r  r   z3glossary terms must not be separated by empty linesz4glossary seems to be misformatted, check indentationr   )rX   rN   )offsetallow_section_headingsclassesglossary)r
   r  rM   rN   r   zipcontentitemsrP   isspacer   reporterr   r   r	   r   lstripr  r   r  r:   	rawsourceextendr   r   
definitiondefinition_list_itemdefinition_list)r>   rl   rJ   in_definition
in_comment	was_emptymessagesr   r  r   
indent_lenr  termsr   	termnodessystem_messagesterm_r  r  sysmsgr   r  definition_nodesdlists                           r@   r   zGlossary.run  s    ""
+!T\1X HJ
	!&)L$,,T'
 '
 '
 F	 F	"D"66    >W >BKN))"ff=== 	 ;DGOO-- ;??5)) !%J"
 ! "$   J/77 !"P Q Q'-%+ 8     NNdFF%;$<jll#KLLL$)MM ! 	  J/77 !$Y!" !" (.%+ 8      A--tVV.DEEEE  J/77 !$Z!" !" (.%+ 8       $ @$(M!$TS-?-?!?J 	BKN))$z{{*;VVLLLLOO
+33TUU#)!' 4     II 35!( $	E $	EE:$&I*,O(- ' '$ff*@*F*F'' %)$5$5eF$5$K$K!	6 *H$ !Z0   "&&&v...  &&&&_--- 	&#)!,Q/#8J!+0	$ $ $   $& U-bD3CDDDEEELL3BCCCCDDDD%b15111i
+++  4  rB   Nr   )r`   ra   rb   rc   r   r   r   r   r   r   r   rd   r   re   rB   r@   r  r    su           K %*/)K    C! C! C! C! C! C!rB   r  r1   textproduction_groupc                >   t          |          dk    r|dz  }g }d}t                              |           D ]"}|                                |k    rC| ||                                         }|                    t          j        |                     |                    d          }d|v rM|d         dk    r#|                    d          \  }}|dd          }	n%|d         dk    r|dd          }|}	n|}|}	n|}||z   }	t          |dd|	          }
|
t          j
        ||dg	          z  }
|                    |
           |                                }$|t          |           k     r/|                    t          j        | |d                               |S )
Nr   rF   rH   ~tokenr\   )reftype	refdomainrq   xrefr  )r   token_refinditerstartrP   r   r   groupr   r   literalend)r/  r0  retnodesposr   txtr3  r   r   ru   r   s              r@   token_xrefsrA  -  s   
!!CH
Ct$$  7799s??sQWWYY'COOEJsOO,,,

%<<Qx3 ;;s++5qrrqSabb	E%-F7ev
 
 
 	5=x@@@@   eegg
SYY
4:..///OrB   c                      e Zd ZU dZdZdZdZdZi Zde	d<    e
j        d          Zd	e	d
<    ej        d          Zd%dZed&d            Zed'd            Zd(dZd)d!Zed*d#            Zd$S )+ProductionListz&Directive to list grammar productions.FrH   r   Tr   r   z\\\nr"   _nl_escape_rer7   r   c           	          j         } j                            d j        d                                                   }                     | j                  t                               |                    }t          t          t          t          ||                                                                fd|D             }t          j        dg|R  }                     |           |gS )Nr1   r   )linesr   c           
     N    g | ]!\  }}}                     |||           "S ))r  r?   tokensr0  max_lenrL   )make_production).0ruler?   rH  max_name_lennode_locationr0  r>   s       r@   
<listcomp>z&ProductionList.run.<locals>.<listcomp>i  sX     

 

 

 #dF   !1$& !  

 

 

rB   )_name_getterrD  r=   r   
splitlinesr0  r   listproduction_definitionsmaxmapr   get_locationr
   productionlistr   )	r>   name_getterrF  production_linesproductionsrl   rM  rN  r0  s	   `     @@@r@   r   zProductionList.run^  s   '"&&r4>!+<==HHJJ  00udl0SS ; ;E B BCC3sC5E$F$FGGHH))++

 

 

 

 

 

 

 '7

 

 

 &r8K888T"""vrB   rF  MutableSequence[str]r   dict[str, Any]r2   c                t    | r
d| d         v rdS | d                                          }| dd          | d d <   |S )NrF   r   r1   rH   )rS   )rF  r   r0  s      r@   r0  zProductionList.production_groupx  sL      	uQx2 8>>++9aaarB   Iterable[str]Iterator[tuple[str, str, str]]c             #     K   | D ]M}d|vr dS |                     d          \  }}}||                                |                                fV  NdS )z6Yield triples of rawsource, name, definition (tokens).rF   N)	partitionrS   )rF  r   r?   r   rH  s        r@   rS  z%ProductionList.production_definitions  sn      
  	5 	5D$"nnS11OD!V

fllnn44444		5 	5rB   r  r?   rH  r0  rI  r  rL   addnodes.productionc               6   t          j        ||          }|r||                     |||          z  }|                    |                     ||                     |t          ||          z  }|                    t          j        d                     |S )N)	tokenname)r?   r0  rL   r?   rI  )r/  r0  
)r
   
productionmake_name_targetrP   separator_noderA  r   r   )r>   r  r?   rH  r0  rI  rL   production_nodes           r@   rJ  zProductionList.make_production  s     #-i4HHH 	t44,<x  5     O 	t22g2NNOOO;FEUVVVVuz$//000rB   addnodes.literal_strongc               \   t          j        ||          }d| }t          | j        | j        j        ||          }|d                             |           | j        j                            ||           |r| d| n|}| j        j        j	        }|
                    d|||           |S )z,Make a link target for the given production.zgrammar-token-rE   rF   r3  rK   )r
   literal_strongr   r:   rM   rN   rP   note_implicit_targetrU   rV   rW   )	r>   r?   r0  rL   	name_noder   rX   obj_namer\   s	            r@   rh  zProductionList.make_name_target  s     +D$77	4"244$(DJ$7FF%(((
00IFFF3CM&/////h.7XFFFrB   
nodes.Textc                    | r:t          j        d                    |t          |           z
  dz                       S t          j        d|dz   z            S )z-Return seperator between 'name' and 'tokens'.z ::=    r9   )r   r   rjustr   re  s     r@   ri  zProductionList.separator_node  sR      	F:gmmGc$ii,?!,CDDEEEz#1-...rB   Nr   )rF  r[  r   r\  r7   r2   )rF  r^  r7   r_  )r  r2   r?   r2   rH  r2   r0  r2   rI  r  rL   r2   r7   rb  )r?   r2   r0  r2   rL   r2   r7   rk  )r?   r2   rI  r  r7   rq  )r`   ra   rb   rc   r   r   r   r   r   rd   recompilerD  operator
itemgetterrP  r   staticmethodr0  rS  rJ  rh  ri  re   rB   r@   rC  rC  O  s        00K $(*K**** &2:g..M.... '8&q))L   4 
  
  
  \
  5 5 5 \5   (   $ / / / \/ / /rB   rC  c                      e Zd ZddZdS )TokenXRefRoler:   r*   r   r#   r   rn   r   r2   ru   r7   r   c                    |                     d          }| j        s3|d         dk    r'd|v r|                    d          \  }}n
|dd          }||fS )Nr2  r   rF   rH   )r  r   r   )r>   r:   r   r   r   ru   r   s          r@   r   zTokenXRefRole.process_link  sc     s##& 	"58s??e|| ;;s++55abb	f}rB   Nr   r   re   rB   r@   r{  r{    s(             rB   r{  c                      e Zd ZU dZdZdZ e ed          dd           e ed          d	d           e ed
          ddd           edd           e ed          d           e ed          d           e ed          dd          dZde	d<   e
eeeeeedZde	d<    ed           ed           e             e             eej        d           edej        d           edd           ed           edej                   d!	Zd"e	d#<   i i d$d% ed&          fd'd% ed(          fd)d% ed*          fd+d,d-d.d+d/Zd0e	d1<   d$ ed&          fd' ed(          fd) ed*          fd+Zd2e	d3<   d4d5d6d7d8d9Zej        d:ej        d;ej        d<iZd=e	d><   d fdCZ	 dddIZ e!ddK            Z"	 dddQZ#e!ddR            Z$dddSZ%e!ddU            Z&e!ddW            Z'e!ddX            Z(ddYZ)dd^Z*dd`Z+ddcZ,ej-        ddddnZ.ddvZ/ddwZ0ddyZ1ddzZ2dd{Z3dd|Z4dd}Z5dd~Z6ddZ7ddZ8dddZ9ddZ:ddZ;ddZ<ddZ=ddZ> xZ?S )StandardDomainznDomain for all objects that don't fit into another domain or are added
    via the application interface.
    r\   r   zglossary termr   rG   )
searchpriozgrammar tokenr3  zreference labelrefkeywordzconfiguration valueconfvalzenvironment variableenvvarzprogram optionr   rN   doc)r   r3  labelr  r  r   r  zdict[str, ObjType]object_types)r   r   r   r  r  r  rW  zdict[str, type[Directive]]r   T)warn_dangling)innernodeclassr  )	lowercaser  r  )r  r  )r  r  )	r   r  r  r3  r   r  numrefr  r  z"dict[str, RoleFunction | XRefRole]rolesgenindexr1   Indexpy-modindexzModule IndexsearchzSearch Page)r  modindexr  )r  r1   )r  r1   )r  r1   )progoptionsobjectslabels
anonlabelsr"   initial_datadict[str, tuple[str, str]]_virtual_doc_namesz term not in glossary: %(target)rzundefined label: %(target)rzunknown keyword: %(target)rzunknown document: %(target)rzunknown option: %(target)r)r   r  r  r  r   )figureN)tableN)
code-blockNz0dict[type[Node], tuple[str, TitleGetter | None]]enumerable_nodesr:   r*   r7   rC   c                    t                                          |           t          | j                  | _        |j        j                                        D ]\  }}|| j        |<   d S N)super__init__r   r  	_registryr  )r>   r:   rl   settings	__class__s       r@   r  zStandardDomain.__init__$  su     !%!!
 !
 "m<BBDD 	3 	3ND(*2D!$''	3 	3rB   r?   r2   r   rX   r   c                   || j         v re| j         |         ||fk    rRt                              t          d          || j                            | j         |         d                              ||f| j         |<   |r|||f| j        |<   dS dS )aU  Add a hyperlink target for cross reference.

        .. warning::

           This is only for internal use.  Please don't use this from your extension.
           ``document.note_explicit_target()`` or ``note_implicit_target()`` are recommended to
           add a hyperlink target to the document.

           This only adds a hyperlink target to the StandardDomain.  And this does not add a
           node_id to node.  Therefore, it is very fragile to calling this without
           understanding hyperlink target framework in both docutils and Sphinx.

        .. versionadded:: 3.0
        (duplicate label %s, other instance in %sr   N)r  r   r   r   r:   doc2pathr  )r>   r?   r   rX   r   s        r@   note_hyperlink_targetz$StandardDomain.note_hyperlink_target.  s    " 4?""tt'<'@R'R'RNN=>>!!$/$"7":;;   ")' 2 	:!('5 9DK	: 	:rB   &dict[tuple[str, str], tuple[str, str]]c                8    | j                             di           S )Nr  data
setdefaultr>   s    r@   r  zStandardDomain.objectsJ  s     y##Ir222rB   NrO   labelidrL   r    c                    ||f| j         v rA| j         ||f         d         }t                              t          d          ||||           | j        j        |f| j         ||f<   dS )zRNote a generic object for cross reference.

        .. versionadded:: 3.0
        r   z4duplicate %s description of %s, other instance in %srK   N)r  r   r   r   r:   r   )r>   rO   r?   r  rL   r   s         r@   rW   zStandardDomain.note_objectO  s     T?dl**l7D=1!4GNNIJJ!     (,x'7&AWd]###rB   c                8    | j                             di           S )z2.. note:: Will be removed soon. internal use only.r(  r  r  s    r@   _termszStandardDomain._termsa  s     y##GR000rB   c                    |                      d|||           | j        j        |f| j        |                                <   dS )zeNote a term for cross reference.

        .. note:: Will be removed soon. internal use only.
        r   N)rW   r:   r   r  lower)r>   r   r  rL   s       r@   r  zStandardDomain._note_termf  sB    
 	w999%)X%5w$?DJJLL!!!rB   -dict[tuple[str | None, str], tuple[str, str]]c                8    | j                             di           S )Nr  r  r  s    r@   r  zStandardDomain.progoptionso  s!    y##2
 
 	
rB   dict[str, tuple[str, str, str]]c                8    | j                             di           S )Nr  r  r  s    r@   r  zStandardDomain.labelsu  s!    y##b
 
 	
rB   c                8    | j                             di           S )Nr  r  r  s    r@   r  zStandardDomain.anonlabels{  s    y##L"555rB   c                   fd| j                                         D             }|D ]
}| j         |= fd| j                                        D             }|D ]
}| j        |= fd| j                                        D             }|D ]
}| j        |= fd| j                                        D             }|D ]
}| j        |= fd| j                                        D             }|D ]
}| j        |= d S )Nc                ,    g | ]\  }\  }}|k    |S re   re   rK  keyfn_lr   s       r@   rO  z,StandardDomain.clear_doc.<locals>.<listcomp>  s-     
 
 
!C"bwCrB   c                ,    g | ]\  }\  }}|k    |S re   re   r  s       r@   rO  z,StandardDomain.clear_doc.<locals>.<listcomp>  s&    UUUmc8BrW}}c}}}rB   c                ,    g | ]\  }\  }}|k    |S re   re   r  s       r@   rO  z,StandardDomain.clear_doc.<locals>.<listcomp>  s&    TTTmc8BbGmmcmmmrB   c                .    g | ]\  }\  }}}|k    |S re   re   r  s       r@   rO  z,StandardDomain.clear_doc.<locals>.<listcomp>  s*    XXX/c<BB"PW--c---rB   c                ,    g | ]\  }\  }}|k    |S re   re   r  s       r@   rO  z,StandardDomain.clear_doc.<locals>.<listcomp>  s'    XXXmc8B"PW--c---rB   )r  r  r  r  r  r  )r>   r   
to_remove1key1
to_remove2key2
to_remove3key3s    `      r@   	clear_doczStandardDomain.clear_doc  so   
 
 
 
%)%5%;%;%=%=
 
 

  	' 	'D &&UUUUt|/A/A/C/CUUU
 	# 	#DT""TTTTt{/@/@/B/BTTT
 	" 	"DD!!XXXX4;3D3D3F3FXXX
 	" 	"DD!!XXXXt/D/D/F/FXXX
 	& 	&D%%	& 	&rB   docnamesSet[str]	otherdatar\  c                   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   d S )Nr  r   r  r(  r  r  )r  r  r  r  r  r  )r>   r  r  r  r  s        r@   merge_domaindatazStandardDomain.merge_domaindata  sM   "=17799 	- 	-ICAw(""(, %"9-3355 	) 	)ICAw(""$(S!"7+1133 	( 	(ICAw(""#'C "8,2244 	( 	(ICAw(""#'C "<06688 	, 	,ICAw(""'+$	, 	,rB   rk   c           	     x   |j                                         D ]\  }}|s	|j        |         }||j        |         }t	          |t
          j                  r2d|v r.|j                            |d                   }|d         d         }|j        dk    sd|v s|j        	                    d          r|| j
        v rOt                              t          d          ||                    | j
        |         d                   |           ||f| j        |<   |j        d	k    r't!          d
|d                   }t#          |          }	n_|j        dk    rt#          |          }	nC|                     |          r|                     |          pd}	|	s~nt	          |t
          j        t
          j        z            r"|j        rt!          d|j        d                   }t	          |t
          j        t
          j        z            rt!          d|j        d                   }t	          |t
          j        t
          j        z            rt#          |          }	nOt7          |                    t:          j                  d           }
|
r|
                    d          r	|
d         }	n|||	f| j
        |<   d S )Nrefidnamesr   footnoterefuridesc_r  rK   sectionznodes.titlerubricr1   znodes.Elementcaption)	nametypesr  nameidsrE   r   r   ru   r   tagnamer   r  r   r   r   r  r  r   r   is_enumerable_nodeget_numfig_titler"  r   r   r   r!  r   r   nextfindallr
   toctree)r>   r:   r   rN   r?   explicitr  rl   r   sectnamer  s              r@   process_doczStandardDomain.process_doc  s    '06688 5	; 5	;ND( &t,G<(D$-- +'T//|''W66w-*
**t##<**733 $
 t{""ABBLLT!21!566!	     %,W$4DOD!|y((]DG44'..))'--((.. !0066<"  tU%:U=M%MNNCC  q1ABBDdEK%2L$LMM Cq1ABBDdEJ1A$ABB !+D11HH"4<<0@#A#A4HHG !7;;y#9#9 !#*9#5 ! '( :DKk5	; 5	;rB   r   r  c                <    ||f| j         vr||f| j         ||f<   d S d S r  )r  )r>   r   r?   r   r  s        r@   r   z!StandardDomain.add_program_option  s:     T?$"222/6.@DWd]+++ 32rB   )
node_classfromdocnamebuilderr)   r  rolenamer  type[nodes.reference]r   nodes.referencec                   |dddi|}	t          j        ||          }
|
                    d          9|
d                             d           |
d                             d|z              ||k    r||	d<   nGt	          d          }||d<   ||d	<   |                    ||          |	d
<   |r|	d
xx         d|z   z  cc<   |	                    |
           |	S )Nr1   internalTr  r\   zstd-r  
refdocnamerefsectnamer  #r1   r1   )r   inliner   rP   r   get_relative_uri)r>   r  r  r   r  r  r  r  r   newnode	innernodecontnodes               r@   build_reference_nodez#StandardDomain.build_reference_node  s    *>>d>g>>L844	==##/i ''...i ''(9:::k!!&GG
 $B''H%,H\"&.H]# ' 8 8g N NGH 3!!!S7]2!!!y!!!rB   typru   rl   r   r  r#   nodes.reference | Nonec           	         |dk    r| j         }nM|dk    r| j        }n?|dk    r| j        }n1|dk    r| j        }n#|dk    r| j        }n|dk    r| j        }n| j        } ||||||||          S )Nr  r  r  r  r   r   )_resolve_ref_xref_resolve_numref_xref_resolve_keyword_xref_resolve_doc_xref_resolve_option_xref_resolve_term_xref_resolve_obj_xref)	r>   r:   r  r  r  ru   rl   r  resolvers	            r@   resolve_xrefzStandardDomain.resolve_xref	  s     %<<-HHH__0HHI1HHE\\-HHH__0HHF]].HH-Hx['3hOOOrB   c                    |d         r3| j                             |d          \  }}	|                                }
n| j                            |d          \  }}	}
|sd S |                     ||||	|
d          S )Nrefexplicitr  r1   r1   r1   r  )r  r   r   r  r  )r>   r:   r  r  r  ru   rl   r  r   r  r  s              r@   r  z StandardDomain._resolve_ref_xref$  s      	O  $2268DDGW{{}}HH *.)N)N&GWh 	4(('7He
 
 	
rB    nodes.reference | Element | Nonec           
     V   || j         v r | j                             |d          \  }}	}
n | j                            |d          \  }}	d }
|sd S |                    |          j                            |	          }|J |                     |          }|d S |dk    r9|j        j        du r+t          	                    t          d          |           |S 	 |                     |||||          }||S n<# t          $ r/ t          	                    t          d          |	|           |cY S w xY w	 |d         r|                                }n |j        j                            |d	          }|
0d
|v r,t          	                    t          d          ||           |S d                    t!          t"          |                    }d
|v sd|v r1|
r|                    |
|          }n|                    |          }n||z  }n{# t&          $ r7}t          	                    t          d          |||           |cY d }~S d }~wt(          $ r/ t          	                    t          d          ||           |cY S w xY w|                     ||||	|dt,          j        |          S )Nr  r  r  Fz(numfig is disabled. :numref: is ignored.rK   zBFailed to create a cross reference. Any number is not assigned: %sr  r1   z{name}zthe link has no caption: %s.number)r?   r  )r  zinvalid numfig_format: %s (%r)zinvalid numfig_format: %sr  )r  r   )r  r   r  get_doctreerE   get_enumerable_node_typer   numfigr   r   r   get_fignumberr   r   numfig_formatr   rU  r2   formatKeyError	TypeErrorr  r
   number_reference)r>   r:   r  r  r  ru   rl   r  r   r  fignametarget_nodefigtype	fignumberr   fignumnewtitleexcs                     r@   r  z#StandardDomain._resolve_numref_xref>  s2    T[  (,(M(M%GWgg#2268DDGWG 	4oog..266w??&&&//<<?4iCJ$5$>$>NN=>>     O	**3';WWI  ! 	 	 	NNX       OOO		M" B ))
044WbAA8u#4#4r"?@@%RVWWW#c9"5"566u$$E(9(9 ?#(<<WV<#L#L#(<<v<#>#>  %v~H 	 	 	NN344eS4     OOOOOO 	 	 	NN29::EDNQQQOOO	 ((0 ) 	
 	
 		
s>   C6 66D/.D/3A.H	 "A&H	 	
J,I?J9J Jc                n    | j                             |d          \  }}	}
|sd S t          ||||	|          S )Nr  )r  r   r   )r>   r:   r  r  r  ru   rl   r  r   r  r   s              r@   r  z$StandardDomain._resolve_keyword_xref  sC     #kooflCC! 	4G['7HMMMrB   c                4   |                     d|          }t          ||d                   }	|	|j        vrd S |d         r|                                }
nt	          |j        |	                   }
t          j        |
|
dg          }t          |||	d |          S )Nrefdocrq   r  r  r7  )	r   r   all_docsr   r   titlesr   r  r   )r>   r:   r  r  r  ru   rl   r  r  r   r  r  s               r@   r  z StandardDomain._resolve_doc_xref  s     (K00vtK'899#,&&4M" <++--&sz'':;;WgwGGGIgtYOOOrB   c                p   |                     d          }|                                }| j                             ||fd          \  }	}
|	sFdD ]C}||v r=|                    |          \  }}}| j                             ||fd          \  }	}
|	r nD|	sg }t	          j        |          ryt	          j        |d          \  }}|                    |           d                    |          }| j                             ||fd          \  }	}
|	rnt	          j        |          yd S t          |||	|
|          S )Nr   r  )r   z[=r9   rH   r   )
r   rS   r  ra  r   r  r   rP   r   r   )r>   r:   r  r  r  ru   rl   r  prognamer   r  needlestemr   commands
subcommands                   r@   r  z#StandardDomain._resolve_option_xref  sg    88M**+//60BHMM 
	
 +  V##!'!1!1&!9!9JD!Q'+'7';';Xt<Lh'W'W$GW  	H,v&& 	%*[%;%;"
F
+++88H--#'#3#7#768JH#U#U   ,v&& 	 tG['7HMMMrB   c           	         |                      |||||||          }|r|S |                                | j        v r5| j        |                                         \  }	}
t          |||	|
|          S d S r  )r  r  r  r   )r>   r:   r  r  r  ru   rl   r  resultr   r  s              r@   r  z!StandardDomain._resolve_term_xref  s     ''gsFD(
 
  	M ||~~,,#';v||~~#> #G['7HUUUtrB   c                    |                      |          pg }|D ]!}	|	|f| j        v r| j        |	|f         \  }
} n"d\  }
}|
sd S t          |||
||          S )Nr  )objtypes_for_roler  r   )r>   r:   r  r  r  ru   rl   r  objtypesrO   r   r  s               r@   r  z StandardDomain._resolve_obj_xref  s     ))#..4" 	& 	&G DL00#'<#@  1  &GW 	4G['7HMMMrB   !list[tuple[str, nodes.reference]]c                   g }|                                 }dD ]A}	|                     ||||	|	dk    r|n|||          }
|
r|                    d|	z   |
f           B| j        D ]i}||f}|dk    r||f}|| j        v rP| j        |         \  }}d|                     |          z   }	|                    |	t          |||||          f           j|S )N)r  r   r  zstd:r   )r  r   rP   r  r  role_for_objtyper   )r>   r:   r  r  ru   rl   r  resultsltargetroleresrO   r  r   r  s                  r@   resolve_any_xrefzStandardDomain.resolve_any_xref  s!    68,,..% 	5 	5D##5==f C  5s3444( 
	 
	GF#C&  (dl""#'<#4  5 5g > >> +wRR     rB   -Iterator[tuple[str, str, str, str, str, int]]c              #    K   | j         j        D ])}|t          | j         j        |                   d|ddfV  *| j                                        D ]>\  \  }}}|r| d| }||d|d         |d         dfV  (||d|d         |d         dfV  ?| j                                        D ]4\  \  }}}||||d         |d         | j        |         j        d         fV  5| j	                                        D ]\  }\  }}	}
||
d	||	dfV  t          | j	                  }| j                                        D ]\  }\  }}	||vr
||d	||	dfV  d S )
Nr  r1   rG   r  r   r   rH   r  r  )r:   r  r   r  r  r  r  r  attrsr  setr  )r>   r  progr   infor   r}   r?   r   r  sectionnamenon_anon_labelss               r@   get_objectszStandardDomain.get_objects3  s     8$ 	N 	NC|DHOC$8995#r2MMMMM$($4$:$:$<$< 	G 	G NT6D G"--V--+tAwQJJJJJfk47DGQFFFFF"&,"4"4"6"6 	 	LT4$QQ!$'-l;     6:[5F5F5H5H 	C 	C1D17G[WgwBBBBBdk**(,(=(=(?(? 	@ 	@$D$7G?**D'7GR????	@ 	@rB   Fr}   r   primaryrn   c                    |j         S r  )lname)r>   r}   r9  s      r@   get_type_namezStandardDomain.get_type_nameN  s
    zrB   r$   c                    |j         | j        v S r  )r  r  )r>   rl   s     r@   r  z!StandardDomain.is_enumerable_nodeR  s    ~!666rB   c                *   |                      |          r}t          d|          }| j                            |j        d          \  }}|r ||          S |D ]:}t          |t          j        t          j        z            rt          |          c S ;dS )z?Get the title of enumerable nodes to refer them using its titler#   NNN)
r  r   r  r   r  r   r   r  r   r   )r>   rl   elemr   title_gettersubnodes         r@   r  zStandardDomain.get_numfig_titleU  s    ""4(( 	5	4((D"377UUOA| 5#|D)))# 5 5G!'5=5;+FGG 5+G444445 trB   c                    dd}t          |t          j                  rdS t          |t          j                  rd	|v r ||t          j                  rd
S | j                            |j        d          \  }}|S )zGet type of enumerable nodes.rl   r#   clsr}   r7   rn   c                :    t          fd| D                       S )Nc              3  8   K   | ]}t          |          V  d S r  )r   )rK  childrD  s     r@   	<genexpr>zMStandardDomain.get_enumerable_node_type.<locals>.has_child.<locals>.<genexpr>g  s-      @@%z%--@@@@@@rB   )any)rl   rD  s    `r@   	has_childz:StandardDomain.get_enumerable_node_type.<locals>.has_childf  s&    @@@@4@@@@@@rB   r  literal_blockr  r?  N)rl   r#   rD  r}   r7   rn   )r   r   r  	containerrK  r  r   r  )r>   rl   rJ  r  r   s        r@   r	  z'StandardDomain.get_enumerable_node_typec  s    	A 	A 	A 	A dEM** 	9tU_--		4''	$ 344 (  <.224><PPJGQNrB   r  r  tuple[int, ...] | Nonec                   |dk    r}|j         dk    rdS ||j        vrt          d|d         d         z   }||j        |         vr |j        |                             d          S |j        |                             |          S 	 |d         d         }|j        |         |         |         S # t
          t          f$ r}t          |d }~ww xY w)Nr  latexre   r  rE   r   r1   )r?   toc_secnumbersr   r   toc_fignumbersr  
IndexError)	r>   r:   r  r  r   r  
anchorname	figure_idr  s	            r@   r  zStandardDomain.get_fignumberv  s     i|w&&r 222   ;u#5a#88
S%7%@@@-g6::2>>>-g6:::FFF*'.q1	)'27;IFFj) * * * !c)*s   &B, ,C
=CC
c                H   |                     d          dk    r|                     d          }t          j        |                     d                    }|r|                    d|           |                                }|rd                    |          }| d| S d S d S )Nr4  r   r   rq   r   r   r  )r   r   r   r   r   r   )r>   rl   r  commandr   command_strs         r@   get_full_qualified_namez&StandardDomain.get_full_qualified_name  s    88I(**xx..Hk$((;"7"788G ,q(+++[[]]F !hhw//%00000t4rB   )r:   r*   r7   rC   r1   )
r?   r2   r   r2   rX   r2   r   r2   r7   rC   )r7   r  r  )
rO   r2   r?   r2   r  r2   rL   r    r7   rC   )r7   r  )r   r2   r  r2   rL   r    r7   rC   )r7   r  )r7   r  )r   r2   r7   rC   )r  r  r  r\  r7   rC   )r:   r*   r   r2   rN   rk   r7   rC   )
r   r  r?   r2   r   r2   r  r2   r7   rC   )r  r2   r  r)   r   r2   r  r2   r  r2   r  r2   r  r  r   r    r7   r  )r:   r*   r  r2   r  r)   r  r2   ru   r2   rl   r   r  r#   r7   r  )r:   r*   r  r2   r  r)   r  r2   ru   r2   rl   r   r  r#   r7   r  )r:   r*   r  r2   r  r)   ru   r2   rl   r   r  r#   r7   r(  )r7   r0  )F)r}   r   r9  rn   r7   r2   )rl   r$   r7   rn   )rl   r$   r7   r  )r:   r*   r  r)   r  r2   r   r2   r  r#   r7   rM  )rl   r#   r7   r  )@r`   ra   rb   rc   r?   r  r   r   r  rd   r   r   r{   rg   r  rC  r   r   r   rj   r{  r   r  r  r  r  dangling_warningsr  r  rL  r  r  r  propertyr  rW   r  r  r  r  r  r  r  r  r   	referencer  r   r  r  r  r  r  r  r  r/  r8  r<  r  r  r	  r  rX  __classcell__)r  s   @r@   r~  r~    s8          DE /**FrBBB?++WDDD,--uiBOOO70)<<'!!233X>>WQQ/00(;;wqq}}e;;;( (L     %(. .J     !.t4448$/// .""DIIIx5<t
 
 
 (T>>>8$///xd5<HHH#1 1E    * #R74&AAn,=,=>QQ}%5%56
 
 )+$
 
 L    "  7,"AAn$5$56QQ}--.6 6     3/0-.  	&_-J    3 3 3 3 3 3 CE: : : : :8 3 3 3 X3
 FJB B B B B$ 1 1 1 X1@ @ @ @ @ 
 
 
 X

 
 
 
 X

 6 6 6 X6& & & &., , , ,$8; 8; 8; 8;tA A A A  -2O     @P P P P6
 
 
 
4S
 S
 S
 S
jN N N N P P P P0%N %N %N %NN   .N N N N*# # # #J@ @ @ @6    7 7 7 7      &* * * *:       rB   r~  appr(   r   r   rl   r   bool | Nonec                    |r|j         dk    s|d         dk    rd S |d         }||j        vrt          d          }nt          d          }t                              |||d|d                    dS )	Nr\   r4  r  rq   zundefined label: %rzDFailed to create a cross reference. A title or caption not found: %r)rL   r}   subtypeT)r?   r  r   r   r   )r^  r   rl   ru   msgs        r@   warn_missing_referencerc    s    
 	 6;%''DOu,D,Dtk"****++CCV C 	sFTtIWWWtrB   r+   c                z    |                      t                     |                     dt                     dddddS )Nzwarn-missing-referencebuiltinr   T)versionenv_versionparallel_read_safeparallel_write_safe)
add_domainr~  connectrc  )r^  s    r@   setuprl    sG    NN>"""KK(*@AAA "#	  rB   )r   r2   r7   r   )r:   r*   r  r  r  r  r  r2   r   r  rX   r  rN   rk   r7   r	  rY  )r/  r2   r0  r2   r7   r  )r^  r(   r   r   rl   r   r7   r_  )r^  r(   r7   r+   )^rc   
__future__r   rw  ru  r   typingr   r   docutilsr   docutils.parsers.rstr   docutils.statemachiner	   sphinxr
   sphinx.addnodesr   sphinx.directivesr   sphinx.domainsr   r   sphinx.localer   r   sphinx.rolesr   r   sphinx.utilr   r   r   sphinx.util.docutilsr   sphinx.util.nodesr   r   r   sphinx.util.parsingr   collections.abcr   r   r   r   r   r    r!   r"   docutils.nodesr#   r$   r%   r&   r'   sphinx.applicationr(   sphinx.buildersr)   sphinx.environmentr*   sphinx.util.typingr+   r,   r-   r.   	getLoggerr`   r   rv  r   r8  r   r2   r0   rg   rj   r{   r   r   r   r   r   r  r  r  rA  rC  r{  r~  rc  rl  re   rB   r@   <module>r     s     " " " " " "  				       & & & & & & & &       + + + + + + , , , , , ,       ( ( ( ( ( ( / / / / / / * * * * * * * *         4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 A A A A A A A A A A 5 5 5 5 5 5 RRRRRRRRRRRRRR++++++++++<<<<<<<<<<............))))))''''''333333            
	8	$	$ ?@@2:,--	"G "G "G "G "G%c* "G "G "GJ2 2 2 2 2] 2 2 21 1 1 1 1X 1 1 10F F F F F*3/ F F FR# # # # #_ # # #Le e e e e!#& e e eP    o   $
 
 
 
 
X 
 
 
 "rz'** " " " "       FP! P! P! P! P! P! P! P!f    Dl/ l/ l/ l/ l/_ l/ l/ l/^    H   $P P P P PV P P Pf   (	 	 	 	 	 	rB   