Ë
    ¨ŒjW  ã            	       óî   — d dl mZmZmZmZ ddlmZmZmZm	Z	m
Z
 erddlmZ ddlmZ ddlmZ  G d„ d	«      Z G d
„ d«      Zeeef   Zdddddeeeef      fd„Zdedddee   fd„Zde	dddee   fd„Zy)é    )ÚTYPE_CHECKINGÚOptionalÚUnionÚcasté   )ÚArrayObjectÚDictionaryObjectÚIndirectObjectÚ	PdfObjectÚTextStringObjecté   )Ú
PageObject)Ú	PdfReader)Ú	PdfWriterc                   óN   — e Zd ZdZdeddddfd„Zdeedf   fd„Zd	d
deddfd„Z	y)ÚNamedReferenceLinkzGNamed reference link being preserved until we can resolve it correctly.Ú	referenceÚ
source_pdfr   ÚreturnNc                 ó    — || _         || _        y)z0reference: TextStringObject with named referenceN)Ú
_referenceÚ_source_pdf)Úselfr   r   s      ú]/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pypdf/generic/_link.pyÚ__init__zNamedReferenceLink.__init__,   s   € à#ˆŒØ%ˆÕó    c                 ó’   — | j                   j                  j                  t        | j                  «      «      }|r|j
                  S d S ©N)r   Únamed_destinationsÚgetÚstrr   Úpage)r   Údestinations     r   Úfind_referenced_pagez'NamedReferenceLink.find_referenced_page1   s:   € Ø×&Ñ&×9Ñ9×=Ñ=¼cÀ$Ç/Á/Ó>RÓSˆÙ#.ˆ{×ÑÐ8°DÐ8r   Ú
target_pdfr   Únew_pagec                 ó¦   — t        | j                  «      |j                  vr0|j                  t        | j                  «      |j                  «       yy)ú2target_pdf: PdfWriter which the new link went intoN)r!   r   r   Úadd_named_destinationÚpage_number©r   r%   r&   s      r   Úpatch_referencez"NamedReferenceLink.patch_reference5   s@   € ô ˆt�‰Ó z×'DÑ'DÑDØ×,Ñ,¬S°·±Ó-AÀ8×CWÑCWÕXð Er   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r
   r$   r,   © r   r   r   r   )   sV   „ ÙQð&Ð"2ð &Àð &ÐPTó &ð
9 e¨N¸DÐ,@Ñ&Aó 9ðY¨+ð YÀð YÐTXô Yr   r   c                   ó@   — e Zd ZdZdeddfd„Zdefd„Zddd	eddfd
„Zy)ÚDirectReferenceLinkzHDirect reference link being preserved until we can resolve it correctly.r   r   Nc                 ó   — || _         y)zIreference: an ArrayObject whose first element is the Page indirect objectN©r   )r   r   s     r   r   zDirectReferenceLink.__init__?   s	   € à#ˆ�r   c                 ó    — | j                   d   S )Nr   r5   )r   s    r   r$   z(DirectReferenceLink.find_referenced_pageC   s   € Ø�‰˜qÑ!Ð!r   r%   r   r&   c                 ó"   — || j                   d<   y)r(   r   Nr5   r+   s      r   r,   z#DirectReferenceLink.patch_referenceF   s   € à%ˆ�‰˜Òr   )	r-   r.   r/   r0   r   r   r
   r$   r,   r1   r   r   r3   r3   <   s?   „ ÙRð$ +ð $°$ó $ð" nó "ð&¨+ð &Àð &ÐTXô &r   r3   r&   r   Úold_pager   c                 ó  — | j                  dg «      D �cg c]  }t        || «      ‘Œ }}|j                  dg «      D �cg c]  }t        ||«      ‘Œ }}t        ||«      D ��cg c]  \  }}|r|r||f‘Œ c}}S c c}w c c}w c c}}w )z‹Extracts links from two pages on the assumption that the two pages are
    the same. Produces one list of (new link, old link) tuples.
    z/Annots)r    Ú_build_linkÚzip)r&   r8   ÚlinkÚ	new_linksÚ	old_linksÚnew_linkÚold_links          r   Úextract_linksrA   N   sŸ   € ð :B¿¹ÀiÐQSÔ9TÓUÑ9T°”˜T 8Õ,Ð9T€IÐUØ9A¿¹ÀiÐQSÔ9TÓUÑ9T°”˜T 8Õ,Ð9T€IÐUô ˆy˜)Ô$ôá$ñ "6 (¨Há™ð 
�8ÒØ$òð ùò VùÚUùós   •A8¾A=Á"BÚindirect_objectr"   c                 ó\  — t        d|j                  «      }t        t        | j                  «       «      }t	        |t        «      r|j                  d«      dk7  ry d|v r<t        t        |d   «      }|j                  d«      dk7  ry d|vry t        |d   |«      S d|v rt        |d   |«      S y )	Nr   z/Subtypez/Linkz/Az/Sz/GoToz/Dz/Dest)r   Úpdfr	   Ú
get_objectÚ
isinstancer    Ú_create_link)rB   r"   Úsrcr<   Úactions        r   r:   r:   \   s©   € Ü
ˆ{˜DŸH™HÓ
%€CÜÔ  /×"<Ñ"<Ó">Ó?€DÜ�tÔ-Ô.°4·8±8¸JÓ3GÈ7Ò3RØàˆt�|ÜÔ&¨¨T©
Ó3ˆØ�:‰:�dÓ˜wÒ&Øà�vÑØÜ˜F 4™L¨#Ó.Ð.à�$�Ü˜D ™M¨3Ó/Ð/àr   r   r   r   c                 ór   — t        | t        «      rt        | |«      S t        | t        «      rt	        | «      S y r   )rF   r   r   r   r3   )r   r   s     r   rG   rG   q   s2   € Ü�)Ô-Ô.Ü! )¨ZÓ8Ð8Ü�)œ[Ô)Ü" 9Ó-Ð-Ør   N)Útypingr   r   r   r   Ú r   r	   r
   r   r   Ú_pager   Ú_readerr   Ú_writerr   r   r3   ÚReferenceLinkÚlistÚtuplerA   r:   rG   r1   r   r   Ú<module>rS      s²   ð÷> 8Ó 7ç XÕ XáÝ"Ý#Ý#÷Yñ Y÷&&ñ &ð Ð(Ð*=Ð=Ñ>€ð˜Lð °Lð ÀTÈ%ÐP]Ð_lÐPlÑJmÑEnó ð ð °|ð ÈÐQ^ÑH_ó ð*˜Ið °;ð À(È=ÑBYô r   