+
     hp!  c                   s   R t ^ RIHt  ^ RIHt ^ RIHt Rt
]
R,           t]
R,           t]
R,           t^t ! R R	]P                  4      t ! R
 R]4      tRR ltRR ltR tRR]3R ltRR]R3R ltR#   ] d    ^ RIHt ^ RI	Ht  Lti ; i)a  
Limited XInclude support for the ElementTree package.

While lxml.etree has full support for XInclude (see
`etree.ElementTree.xinclude()`), this module provides a simpler, pure
Python, ElementTree compatible implementation that supports a simple
form of custom URL resolvers.
)etree)urljoin)urlopenz!{http://www.w3.org/2001/XInclude}includeZfallbackZ*c                   s    ] tR t^KtRtR# )FatalIncludeError NZ__name__Z
__module__Z__qualname__Z__firstlineno__Z__static_attributes__r       :/usr/lib64/python3.14/site-packages/lxml/ElementInclude.pyr   r   K       r   r   c                   s    ] tR t^OtRtR# )LimitedRecursiveIncludeErrorr   Nr   r   r   r   r
   r
   O   r	   r   r
   Nc                 s    \        V R 4      pVR8X  d&   \        P                  ! V4      P                  4       pM+VP	                  4       pV'       g   RpVP                  V4      pVP                  4        V# )rbxmlutf-8)openr    parsegetrootreaddecodeclose)hrefr   encodingZfiledatas   &&&  r   default_loaderr   `   s[    dD~{{4 ((*yy{H{{8$JJLKr   c                 s   VR 8X  d'   \         P                  ! W4      P                  4       pV# RV 9   d   \        V 4      pM\	        V R4      pVP                  4       pVP                  4        V'       g   RpVP                  V4      pV# )r   z://r   r   )r    r   r   r   r   r   r   r   )r   r   r   parserr   Zfs   &&&&  r   _lxml_default_loaderr   q   st    ~{{4(002 K D=AT4 Avvx		H{{8$Kr   c                 s   a  RV 3R llpV# )Nc                 s   < S! WV4      # Nr   )r   r   r   r   loaders   &&&&r   loadZ_wrap_et_loader.<locals>.load   s    d8,,r   NNr   )r   r   s   f r   _wrap_et_loaderr      s    -Kr   c                 sf   Vf   RpMV^ 8  d   \        RV,          4      hVf_   \        V R4      '       d   T pV P                  4       p MV P                  4       p\        VR4      '       d   VP                  P
                  pM"\        V R4      '       d   V P                  4       p \        WW#4       R # )Nz;expected non-negative depth or None for 'max_depth', got %rr   docinfoi)Z
ValueErrorZhasattrr   getroottreer   ZURL_include)elemr   base_url	max_depthZtrees   &&&& r   r   r      s    		QVYbbcc4##D<<>D##%D4##||''H	y	!	!||~T8/r   c           	      s   Ve   \        V4      pM\        pVf   \        4       pV P                  4       P                  p\        V P                  \        4      4      pV EFw  pVP                  \        8X  Ed   \        W(P                  R4      4      p	VP                  RR4      p
VP                  4       pV
R8X  d   W9   d   \        RV	,          4      hV^ 8X  d   \        RV	,          4      hV! WVR7      pVf   \        RV	: RV
: 24      h\        WW^,
          V	0V,          4      pVP                   '       d-   VP                   ;'       g    R	VP                   ,           Vn        Vf   Vu # VP#                  W4       EK%  V
R
8X  d   V! WVP                  R4      R7      pVf   \        RV	: RV
: 24      hVP%                  4       pVe$   VP                   ;'       g    R	V,           Vn        MEVf   Vu # VP&                  ;'       g    R	V,           VP                   ;'       g    R	,           Vn        VP)                  V4       EK  \        RV
,          4      hVP                  \*        8X  dL   VP                  4       pVe5   VP                  \        8w  d   \        RVP                  ,          4      hEK[  EK^  \        RVP                  ,          4      h	  V # )Nr   r   r   z recursive include of %r detectedz5maximum xinclude depth reached when including file %s)r   zcannot load z as Z textr   )r   z)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r)z0Invalid element found in XInclude namespace (%r))r   r   Zsetr    r   ZlistZiterXINCLUDE_ITER_TAGZtagXINCLUDE_INCLUDEr   ZgetZ	getparentr   r
   r!   ZtailZreplaceZgetpreviousr%   ZremoveXINCLUDE_FALLBACK)r"   r   r#   r$   Z_parent_hrefsZload_includer   Zinclude_elementsZer   r   ZparentZnoder%   Zpredecessors   &&&&&          r   r!   r!      s{   &v.+&&F		#$& 55$$8UU6]3DEE'5)E[[]F~(+:TA  >6ORVVX X#D?<+26>   dMD6MCYZ666!%bAFF :DI>Kq'&#D!%%
:KL<+26>   mmo*(3(8(8(>(>B$'FK$^K#);;#4#4""<""MFKa '?%G  UU''[[]F!fjj4D&D'FN  'E!
 $BQUUJ e j Kr   r   r   )Z__doc__Zlxmlr    Zurlparser   Zurllib2r   ZImportErrorZurllib.parseZurllib.requestZXINCLUDEr'   r(   r&   ZDEFAULT_MAX_INCLUSION_DEPTHZLxmlSyntaxErrorr   r
   r   r   r   r   r!   r   r   r   <module>r)      s   X '  /i' z) sN    	-- 		#4 	"
"&0 10( 2$Do  '$&'s   A5 5B
B