§
    £”j}  ã                   óº   — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZ  G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        ZdS )z5Custom element classes related to the numbering part.é    )ÚOxmlElement)ÚCT_DecimalNumber)ÚST_DecimalNumber)ÚBaseOxmlElementÚOneAndOnlyOneÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOnec                   ór   — e Zd ZdZ ed¦  «        Z ed¦  «        Z ede	¦  «        Z
d„ Zed„ ¦   «         ZdS )ÚCT_NumzÚ``<w:num>`` element, which represents a concrete list definition instance, having
    a required child <w:abstractNumId> that references an abstract numbering definition
    that defines most of the formatting details.úw:abstractNumIdzw:lvlOverrideúw:numIdc                 ó.   — |                       |¬¦  «        S )zmReturn a newly added CT_NumLvl (<w:lvlOverride>) element having its ``ilvl``
        attribute set to `ilvl`.)Úilvl)Ú_add_lvlOverride)Úselfr   s     úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/docx/oxml/numbering.pyÚadd_lvlOverridezCT_Num.add_lvlOverride   s   € ð ×$Ò$¨$Ð$Ñ/Ô/Ð/ó    c                 ó†   — t          d¦  «        }||_        t          j        d|¦  «        }|                     |¦  «         |S )z–Return a new ``<w:num>`` element having numId of `num_id` and having a
        ``<w:abstractNumId>`` child with val attribute set to `abstractNum_id`.úw:numr   )r   ÚnumIdr   ÚnewÚappend)ÚclsÚnum_idÚabstractNum_idÚnumÚabstractNumIds        r   r   z
CT_Num.new   sB   € õ ˜'Ñ"Ô"ˆØˆŒ	Ý(Ô,Ð->ÀÑOÔOˆØ�
Š
�=Ñ!Ô!Ð!Øˆ
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r	   ÚlvlOverrider   r   r   r   Úclassmethodr   © r   r   r   r      s|   € € € € € ð4ð 4ð "�MÐ"3Ñ4Ô4€MØ�*˜_Ñ-Ô-€KØÐ˜iÐ)9Ñ:Ô:€Eð0ð 0ð 0ð
 ðð ñ „[ðð ð r   r   c                   óJ   — e Zd ZdZ edd¬¦  «        Z ede¦  «        Zd„ Z	dS )Ú	CT_NumLvlzu``<w:lvlOverride>`` element, which identifies a level in a list definition to
    override with settings it contains.zw:startOverride)zw:lvl©Ú
successorsúw:ilvlc                 ó.   — |                       |¬¦  «        S )z|Return a newly added CT_DecimalNumber element having tagname
        ``w:startOverride`` and ``val`` attribute set to `val`.)Úval)Ú_add_startOverride)r   r-   s     r   Úadd_startOverridezCT_NumLvl.add_startOverride/   s   € ð ×&Ò&¨3Ð&Ñ/Ô/Ð/r   N)
r    r!   r"   r#   r
   ÚstartOverrider   r   r   r/   r&   r   r   r(   r(   (   sW   € € € € € ð+ð +ð �IÐ/¸JÐGÑGÔG€MØÐ˜XÐ'7Ñ8Ô8€Dð0ð 0ð 0ð 0ð 0r   r(   c                   óF   — e Zd ZdZ edd¬¦  «        Z edd¬¦  «        ZdS )ÚCT_NumPrzYA ``<w:numPr>`` element, a container for numbering properties applied to a
    paragraph.r+   )r   úw:numberingChangeúw:insr)   r   )r3   r4   N)r    r!   r"   r#   r
   r   r   r&   r   r   r2   r2   5   sD   € € € € € ðð ð ˆ9�XÐ*SÐTÑTÔT€DØˆI�iÐ,JÐKÑKÔK€E€E€Er   r2   c                   óN   — e Zd ZdZ edd¬¦  «        Zd„ Zd„ Zed„ ¦   «         Z	dS )	ÚCT_NumberingzX``<w:numbering>`` element, the root element of a numbering part, i.e.
    numbering.xml.r   )zw:numIdMacAtCleanupr)   c                 óp   — | j         }t                               ||¦  «        }|                      |¦  «        S )zƒReturn a newly added CT_Num (<w:num>) element referencing the abstract
        numbering definition identified by `abstractNum_id`.)Ú_next_numIdr   r   Ú_insert_num)r   r   Únext_num_idr   s       r   Úadd_numzCT_Numbering.add_numT   s3   € ð Ô&ˆÝ�jŠj˜ nÑ5Ô5ˆØ×Ò Ñ$Ô$Ð$r   c                 ó„   — d|z  }	 |                       |¦  «        d         S # t          $ r t          d|z  ¦  «        ‚w xY w)zYReturn the ``<w:num>`` child element having ``numId`` attribute matching
        `numId`.z./w:num[@w:numId="%d"]r   z no <w:num> element with numId %d)ÚxpathÚ
IndexErrorÚKeyError)r   r   r=   s      r   Únum_having_numIdzCT_Numbering.num_having_numId[   s^   € ð )¨5Ñ0ˆð	GØ—:’:˜eÑ$Ô$ QÔ'Ð'øÝð 	Gð 	Gð 	GÝÐ=ÀÑEÑFÔFÐFð	Gøøøs   ‡" ¢?c                 óš   — |                       d¦  «        }d„ |D ¦   «         }t          dt          |¦  «        dz   ¦  «        D ]}||vr nŒ	|S )z“The first ``numId`` unused by a ``<w:num>`` element, starting at 1 and
        filling any gaps in numbering between existing ``<w:num>`` elements.z./w:num/@w:numIdc                 ó,   — g | ]}t          |¦  «        ‘ŒS r&   )Úint)Ú.0Ú	numId_strs     r   ú
<listcomp>z,CT_Numbering._next_numId.<locals>.<listcomp>i   s   € Ð>Ð>Ð> i•3�y‘>”>Ð>Ð>Ð>r   é   é   )r=   ÚrangeÚlen)r   Ú
numId_strsÚnum_idsr   s       r   r8   zCT_Numbering._next_numIdd   sg   € ð —Z’ZÐ 2Ñ3Ô3ˆ
Ø>Ð>°:Ð>Ñ>Ô>ˆÝ˜�C ™LœL¨1Ñ,Ñ-Ô-ð 	ð 	ˆCØ˜'Ð!Ð!Ø�ð "àˆ
r   N)
r    r!   r"   r#   r	   r   r;   r@   Úpropertyr8   r&   r   r   r6   r6   N   sq   € € € € € ðð ð ˆ*�WÐ)AÐ
BÑ
BÔ
B€Cð%ð %ð %ðGð Gð Gð ðð ñ „Xðð ð r   r6   N)r#   Údocx.oxml.parserr   Údocx.oxml.sharedr   Údocx.oxml.simpletypesr   Údocx.oxml.xmlchemyr   r   r   r	   r
   r   r(   r2   r6   r&   r   r   ú<module>rR      sA  ðØ ;Ð ;à (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ˆ_ñ ô ð ð2
0ð 
0ð 
0ð 
0ð 
0�ñ 
0ô 
0ð 
0ðLð Lð Lð Lð Lˆñ Lô Lð Lð2ð ð ð ð �?ñ ô ð ð ð r   