§
    K˜ºhÂv  ã                   óŽ  — d dl Z d dlmZmZ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mZmZmZm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 ddl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*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7 ddlm8Z8m9Z9m:Z:m;Z;m<Z< dZ= G d„ d¦  «        Z> G d„ d¦  «        Z? G d„ de?¦  «        Z@dS )é    N)ÚBytesIOÚFileIOÚIOBase)ÚPath)ÚTracebackType)	ÚAnyÚDictÚIterableÚListÚOptionalÚTupleÚTypeÚUnionÚcasté   )Ú
Encryption)Ú
PageObject)Ú	PdfReader)ÚStrByteTypeÚdeprecate_with_replacementÚdeprecation_bookmarkÚdeprecation_with_replacementÚstr_)Ú	PdfWriter)ÚGoToActionArgumentsÚTypArgumentsÚTypFitArguments)ÚPagesAttributes)ÚPAGE_FITÚArrayObjectÚDestinationÚDictionaryObjectÚFitÚFloatObjectÚIndirectObjectÚ
NameObjectÚ
NullObjectÚNumberObjectÚOutlineItemÚTextStringObjectÚ
TreeObject)Ú	PageRangeÚPageRangeSpec)ÚFitTypeÚ
LayoutTypeÚOutlineTypeÚPagemodeTypeÚZoomArgTypez=close() was called and thus the writer cannot be used anymorec                   ó*   — e Zd ZdZdedededdfd„ZdS )Ú_MergedPagez@Collect necessary information on each page that is being merged.ÚpagedataÚsrcÚidÚreturnNc                 ó>   — || _         || _        d | _        || _        d S ©N)r6   r5   Úout_pagedatar7   )Úselfr5   r6   r7   s       úU/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/pypdf/_merger.pyÚ__init__z_MergedPage.__init__Q   s#   € ØˆŒØ ˆŒØ ˆÔØˆŒˆˆó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úintr>   © r?   r=   r4   r4   N   sJ   € € € € € ØJÐJð ð °)ð Àð Èð ð ð ð ð ð r?   r4   c                   ót  — e Zd ZdZ ed¬¦  «        	 dAdedeeef         dd	fd
„¦   «         Z	dBd„Z
deee                  dee         dee         dd	fd„Z edd¬¦  «        	 	 	 	 	 	 dCdee         ded	eeef         dee         dee         dedee         dd	fd„¦   «         Zdeeeef         deeee         f         fd„Z edd¬¦  «        	 	 	 dDdeeeef         dee         ded	eeeef         eeeef         ee         f         dedd	f
d„¦   «         Zdeeef         dd	fd„ZdEd„Zdeeef         dd	fd„Z deeef         dd	fd„Z!de"dd	fd „Z#de"dd	fd!„Z$d"e%dd	fd#„Z&d"e%dd	fd$„Z'd%ed&eeeeef         f         deeeef         eeeef         ee         f         deeeef                  fd'„Z(d%ede)deeeef         eeeef         ee         f         de)fd(„Z*dEd)„Z+ ed¬¦  «        	 	 dFdee,e-                  d*ee.         dd	fd+„¦   «         Z/ ed¬,¦  «        dee-e0f         d-e1dd	fd.„¦   «         Z2dee1         dd	fd/„Z3 ed¬¦  «        	 dGdee1         dee,e-                  dd	fd0„¦   «         Z4 ed¬,¦  «        	 dGdeeef         d1ee)         deee                  fd2„¦   «         Z5 ed¬,¦  «        	 dGdeeef         d1ee)         deee                  fd3„¦   «         Z6d	d	d	dde7d	fd4edee         d*ed	e.e8f         d5eee9e9e9f                  d6ed7ed8e:d9ee         de8fd:„Z;	 	 	 	 	 dHd4ed9ed*ed	e.e8f         d5eee9e9e9f                  d6ed7ed8e<d<e=de8fd=„Z>	 	 	 	 	 dHd4ed9ed*ed	e.e8f         d5eee9e9e9f                  d6ed7ed8e<d<e=de8fd>„Z?d4ed9edd	fd?„Z@	 	 dFd4edee         d9ee         dd	fd@„ZAd	S )IÚ	PdfMergerzD
    Use :class:`PdfWriter` instead.

    .. deprecated:: 5.0.0
    Úoutline)Ú	bookmarksFÚ ÚstrictÚfileobjr8   Nc                 ó°   — t          ddd¦  «         g | _        g | _        t          ¦   «         | _        g | _        g | _        d| _        || _        || _	        d S )NrG   r   ú5.0.0r   )
r   ÚinputsÚpagesr   ÚoutputrH   Únamed_destsÚid_countrL   rK   )r<   rK   rL   s      r=   r>   zPdfMerger.__init___   sW   € õ 	# ;°¸WÑEÔEÐEØ35ˆŒØ "ˆŒ
Ý+4©;¬;ˆŒØ$&ˆŒØ&(ˆÔØˆŒØˆŒØˆŒˆˆr?   c                 ó(   — t          ddd¦  «         | S )NrG   r   rN   )r   )r<   s    r=   Ú	__enter__zPdfMerger.__enter__m   s   € å" ;°¸WÑEÔEÐEØˆr?   Úexc_typeÚexcÚ	tracebackc                 óp   — | j         r|                      | j         ¦  «         |                      ¦   «          dS )z*Write to the fileobj and close the merger.N)rL   ÚwriteÚclose)r<   rV   rW   rX   s       r=   Ú__exit__zPdfMerger.__exit__r   s3   € ð Œ<ð 	%Ø�JŠJ�t”|Ñ$Ô$Ð$Ø�
Š
‰Œˆˆˆr?   Úoutline_itemÚimport_outline)ÚbookmarkÚimport_bookmarksTÚpage_numberrP   Úpositionc                 ó  — |�8|€'|}d}d}t          j        |› d|› d�t          ¦  «         nt          d¦  «        ‚|€t          d¦  «        ‚|€t          d¦  «        ‚|                      |¦  «        \  }	}
t          |	| j        ¬	¦  «        }| j                             |	|f¦  «         |
�|
|_	        |€d
t          |j        ¦  «        f}nwt          |t          ¦  «        r(|                     t          |j        ¦  «        ¦  «        }n:t          |t          ¦  «        rn$t          |t           ¦  «        st#          d¦  «        ‚g }g }|r|j        }|                      |||¦  «        }|rTt)          t+          |¦  «        t-          | j        ¦  «        t1          j        ¦   «         ¦  «        }| xj        ||gz  c_        n| xj        |z  c_        |j        }|                      |||¦  «        }| xj        |z  c_        t;          |Ž D ]L}|j        |         }| j        }| xj        dz  c_        t=          |||¦  «        }|                     |¦  «         ŒM|                      |¦  «         |                       |¦  «         || j        ||…<   dS )a	  
        Merge the pages from the given file into the output file at the
        specified page number.

        Args:
            page_number: The *page number* to insert this file. File will
                be inserted after the given number.
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
                None as an argument is deprecated.
            outline_item: Optionally, you may specify an outline item
                (previously referred to as a 'bookmark') to be applied at the
                beginning of the included file by supplying the text of the outline item.
            pages: can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                to merge only the specified range of pages from the source
                document into the output document.
                Can also be a list of pages to merge.
           import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
        Nrb   ra   zF is deprecated as an argument and will be removed in pypdf=4.0.0. Use ú insteadzCThe argument position of merge is deprecated. Use page_number only.úpage_number may not be Nonezfileobj may not be None)rK   r   z0"pages" must be a tuple of (start, stop[, step])r   )!ÚwarningsÚwarnÚDeprecationWarningÚ
ValueErrorÚ_create_streamr   rK   rO   ÚappendÚ_encryptionÚlenrP   Ú
isinstancer,   ÚindicesÚlistÚtupleÚ	TypeErrorrH   Ú_trim_outliner)   r*   r(   rS   r#   ÚfitÚnamed_destinationsÚ_trim_destsrR   Úranger4   Ú_associate_dests_to_pagesÚ!_associate_outline_items_to_pages)r<   ra   rL   r]   rP   r^   rb   Úold_termÚnew_termÚstreamÚencryption_objÚreaderÚsrcpagesrH   Úoutline_item_typÚdestsÚtrimmed_destsÚiÚpager7   Úmps                        r=   ÚmergezPdfMerger.merge}   së  € ðB ÐØÐ"Ø&�Ø%�Ø(�Ý”à#ð Jð JØ7?ðJð Jð Jõ 'ñô ð ð õ !ð,ñô ð ð
 Ðõ Ð:Ñ;Ô;Ð;Øˆ?õ Ð6Ñ7Ô7Ð7à!%×!4Ò!4°WÑ!=Ô!=Ñˆ�õ ˜6¨$¬+Ð6Ñ6Ô6ˆØŒ×Ò˜F FÐ+Ñ,Ô,Ð,ØÐ%Ø!/ˆFÔð ˆ=Ø�˜FœLÑ)Ô)Ð*ˆEˆEÝ˜�yÑ)Ô)ð 	PØ—M’M¥# f¤lÑ"3Ô"3Ñ4Ô4ˆEˆEÝ˜�tÑ$Ô$ð 	PØÝ˜E¥5Ñ)Ô)ð 	PÝÐNÑOÔOÐOàˆàˆØð 	AØ”nˆGØ×(Ò(¨°¸%Ñ@Ô@ˆGàð 	$Ý*Ý  Ñ.Ô.Ý˜Tœ]Ñ+Ô+Ý”‘	”	ñ ô  Ðð
 ˆLŒLÐ-¨wÐ7Ñ7ˆLŒLˆLàˆLŒL˜GÑ#ˆLŒLàÔ)ˆØ×(Ò(¨°¸Ñ>Ô>ˆØÐÔ˜MÑ)ÐÔõ ˜�ð 	 ð 	 ˆAØ”< ”?ˆDà”ˆBØˆMŒM˜QÑˆMŒMå˜T 6¨2Ñ.Ô.ˆBà�OŠO˜BÑÔÐÐà×&Ò& xÑ0Ô0Ð0Ø×.Ò.¨xÑ8Ô8Ð8ð /7ˆŒ
�;˜{Ð*Ñ+Ð+Ð+r?   c                 óf  — d }t          |t          t          f¦  «        rt          |d¦  «        }nÿt          |t          ¦  «        r‚|j        r|j        }|j                             ¦   «         }|j                             d¦  «         t          |j         
                    ¦   «         ¦  «        }|j                             |¦  «         nht          |d¦  «        rIt          |d¦  «        r9|                     d¦  «         | 
                    ¦   «         }t          |¦  «        }nt          d¦  «        ‚||fS )NÚrbr   ÚseekÚreadzÝPdfMerger.merge requires an object that PdfReader can parse. Typically, that is a Path or a string representing a Path, a file object, or an object implementing .seek and .read. Passing a PdfReader directly works as well.)rn   Ústrr   r   r   rl   r|   Útellr‰   r   rŠ   ÚhasattrÚNotImplementedError)r<   rL   r}   r|   Ú	orig_tellÚfile_contents         r=   rj   zPdfMerger._create_streamò   s&  € ð ˆå�g¥¥T˜{Ñ+Ô+ð 	Ý˜G TÑ*Ô*ˆFˆFÝ˜¥Ñ+Ô+ð 	ØÔ"ð 5Ø!(Ô!4�Øœ×+Ò+Ñ-Ô-ˆIØŒN×Ò Ñ"Ô"Ð"Ý˜Wœ^×0Ò0Ñ2Ô2Ñ3Ô3ˆFð ŒN×Ò 	Ñ*Ô*Ð*Ð*Ý�W˜fÑ%Ô%ð 
	­'°'¸6Ñ*BÔ*Bð 
	Ø�LŠL˜‰OŒOˆOØ"Ÿ<š<™>œ>ˆLÝ˜\Ñ*Ô*ˆFˆFå%ð>ñô ð ð �~Ð%Ð%r?   c                 ó\   — |                       t          | j        ¦  «        ||||¦  «         dS )a¤  
        Identical to the :meth:`merge()<merge>` method, but assumes you want to
        concatenate all pages onto the end of the file instead of specifying a
        position.

        Args:
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
            outline_item: Optionally, you may specify an outline item
                (previously referred to as a 'bookmark') to be applied at the
                beginning of the included file by supplying the text of the outline item.
            pages: can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                to merge only the specified range of pages from the source
                document into the output document.
                Can also be a list of pages to append.
            import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
        N)r†   rm   rP   )r<   rL   r]   rP   r^   s        r=   rk   zPdfMerger.append  s,   € ð> 	�
Š
•3�t”z‘?”? G¨\¸5À.ÑQÔQÐQÐQÐQr?   c                 ó\  — | j         €t          t          ¦  «        ‚| j        D ]«}| j                              |j        ¦  «         t          t          t          t          f         | j         j
                             ¦   «         ¦  «        }| j                              |t          j                 d                              ¦   «         ¦  «        |_        Œ¬|                      ¦   «          |                      ¦   «          | j                              |¦  «        \  }}|r|                     ¦   «          dS dS )zÃ
        Write all data that has been merged to the given output file.

        Args:
            fileobj: Output file. Can be a filename or any kind of
                file-like object.
        Néÿÿÿÿ)rQ   ÚRuntimeErrorÚERR_CLOSED_WRITERrP   Úadd_pager5   r   r	   r‹   r   Ú_pagesÚ
get_objectÚget_referenceÚPAÚKIDSr;   Ú_write_destsÚ_write_outlinerZ   r[   )r<   rL   r„   Ú	pages_objÚmy_fileÚret_fileobjs         r=   rZ   zPdfMerger.write6  s  € ð Œ;ÐÝÕ0Ñ1Ô1Ð1ð
 ”Jð 	ð 	ˆDØŒK× Ò  ¤Ñ/Ô/Ð/Ý�T¥#¥s (œ^¨T¬[Ô-?×-JÒ-JÑ-LÔ-LÑMÔMˆIØ $¤× 9Ò 9Ø�"œ'Ô" 2Ô&×1Ò1Ñ3Ô3ñ!ô !ˆDÔÐð
 	×ÒÑÔÐØ×ÒÑÔÐð  $œ{×0Ò0°Ñ9Ô9Ñˆ�àð 	 Ø×ÒÑÔÐÐÐð	 ð 	 r?   c                 ór   — g | _         | j        D ]\  }}|                     ¦   «          Œg | _        d| _        dS )zHShut all file descriptors (input and output) and clear all memory usage.N)rP   rO   r[   rQ   )r<   ÚfoÚ_readers      r=   r[   zPdfMerger.closeU  s?   € àˆŒ
Øœ;ð 	ð 	‰KˆB�Ø�HŠH‰JŒJˆJˆJàˆŒØˆŒˆˆr?   Úinfosc                 óp   — | j         €t          t          ¦  «        ‚| j                              |¦  «         dS )zò
        Add custom metadata to the output.

        Args:
            infos: a Python dictionary where each key is a field
                and each value is your new metadata.
                An example is ``{'/Title': 'My title'}``
        N)rQ   r”   r•   Úadd_metadata©r<   r¤   s     r=   r¦   zPdfMerger.add_metadata^  s7   € ð Œ;ÐÝÕ0Ñ1Ô1Ð1ØŒ× Ò  Ñ'Ô'Ð'Ð'Ð'r?   c                 óP   — t          dd¦  «         |                      |¦  «         dS )zS
        Use :meth:`add_metadata` instead.

        .. deprecated:: 1.28.0
        ÚaddMetadatar¦   N)r   r¦   r§   s     r=   r©   zPdfMerger.addMetadatak  s.   € õ 	% ]°NÑCÔCÐCØ×Ò˜%Ñ Ô Ð Ð Ð r?   Úlayoutc                 óP   — t          dd¦  «         |                      |¦  «         dS )zV
        Use :meth:`set_page_layout` instead.

        .. deprecated:: 1.28.0
        ÚsetPageLayoutÚset_page_layoutN)r   r­   ©r<   rª   s     r=   r¬   zPdfMerger.setPageLayoutt  s/   € õ 	% _Ð6GÑHÔHÐHØ×Ò˜VÑ$Ô$Ð$Ð$Ð$r?   c                 óp   — | j         €t          t          ¦  «        ‚| j                              |¦  «         dS )a  
        Set the page layout.

        Args:
            layout: The page layout to be used

        .. list-table:: Valid ``layout`` arguments
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right
        N)rQ   r”   r•   Ú_set_page_layoutr®   s     r=   r­   zPdfMerger.set_page_layout}  s7   € ð2 Œ;ÐÝÕ0Ñ1Ô1Ð1ØŒ×$Ò$ VÑ,Ô,Ð,Ð,Ð,r?   Úmodec                 óR   — t          ddd¦  «         |                      |¦  «         dS )zT
        Use :meth:`set_page_mode` instead.

        .. deprecated:: 1.28.0
        ÚsetPageModeÚset_page_modeú3.0.0N)r   r´   ©r<   r±   s     r=   r³   zPdfMerger.setPageModeš  s0   € õ 	% ]°OÀWÑMÔMÐMØ×Ò˜4Ñ Ô Ð Ð Ð r?   c                 óp   — | j         €t          t          ¦  «        ‚| j                              |¦  «         dS )aW  
        Set the page mode.

        Args:
            mode: The page mode to use.

        .. list-table:: Valid ``mode`` arguments
           :widths: 50 200

           * - /UseNone
             - Do not show outline or thumbnails panels
           * - /UseOutlines
             - Show outline (aka bookmarks) panel
           * - /UseThumbs
             - Show page thumbnails panel
           * - /FullScreen
             - Fullscreen view
           * - /UseOC
             - Show Optional Content Group (OCG) panel
           * - /UseAttachments
             - Show attachments panel
        N)rQ   r”   r•   r´   r¶   s     r=   r´   zPdfMerger.set_page_mode£  s7   € ð. Œ;ÐÝÕ0Ñ1Ô1Ð1ØŒ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r?   Úpdfr�   c                 óê  — g }t          |t          ¦  «        r|nt          t          |Ž ¦  «        }|                     ¦   «         D ]®\  }}|D ]¦}|j        |                              ¦   «         |d                              ¦   «         k    ri|d                              ¦   «         |t          d¦  «        <   t          |¦  «        t          |d         ¦  «        k    sJ ‚|                     |¦  «          nŒ§Œ¯|S )z 
        Remove named destinations that are not a part of the specified page set.

        Args:
            pdf:
            dests:
            pages:
        ú/Pageú/Title)	rn   rp   rw   ÚitemsrP   r˜   r&   r   rk   )	r<   r¸   r�   rP   Ú	new_destsÚlstÚkeyÚobjÚjs	            r=   rv   zPdfMerger._trim_dests¾  sñ   € ð ˆ	Ý! %­Ñ.Ô.ÐGˆeˆeµD½À¸Ñ4GÔ4GˆØŸš™œð 	ð 	‰HˆC�Øð ð �Ø”9˜Q”<×*Ò*Ñ,Ô,°°G´×0GÒ0GÑ0IÔ0IÒIÐIØ/2°7¬|×/FÒ/FÑ/HÔ/H�C�
 7Ñ+Ô+Ñ,Ý ™9œ9­¨S°¬]Ñ(;Ô(;Ò;Ð;Ð;Ð;Ø×$Ò$ SÑ)Ô)Ð)Ø�Eð	 Jøð
 Ðr?   c                 óv  — g }d}t          |t          ¦  «        r|nt          t          |Ž ¦  «        }t          |¦  «        D ]÷\  }}t          |t          ¦  «        rO|                      |||¦  «        }	|	r5|s|                     ||dz
           ¦  «         |                     |	¦  «         Œid}|D ]‰}
|d         €Œ|j        |
                              ¦   «         |d                              ¦   «         k    rC|d                              ¦   «         |t          d¦  «        <   |                     |¦  «         d} nŒŠŒø|S )zÒ
        Remove outline item entries that are not a part of the specified page set.

        Args:
            pdf:
            outline:
            pages:

        Returns:
            An outline type
        Tr   Frº   )	rn   rp   rw   Ú	enumeraters   rk   rP   r˜   r&   )r<   r¸   rH   rP   Únew_outlineÚprev_header_addedr¾   rƒ   r]   ÚsubrÁ   s              r=   rs   zPdfMerger._trim_outline×  s_  € ð" ˆØ ÐÝ! %­Ñ.Ô.ÐGˆeˆeµD½À¸Ñ4GÔ4GˆÝ(¨Ñ1Ô1ð 	ð 	‰OˆAˆ|Ý˜,­Ñ-Ô-ð Ø×(Ò(¨¨l¸CÑ@Ô@�Øð ,Ø,ð ;Ø#×*Ò*¨7°1°q±5¬>Ñ:Ô:Ð:Ø×&Ò& sÑ+Ô+Ð+øà$)Ð!Øð 	ð 	�AØ# GÔ,Ð4Ø Ø”y ”|×.Ò.Ñ0Ô0°LÀÔ4I×4TÒ4TÑ4VÔ4VÒVÐVØ<HØ#ô=ç$š*™,œ,ð %¥Z°Ñ%8Ô%8Ñ9ð $×*Ò*¨<Ñ8Ô8Ð8Ø,0Ð)Ø˜ð Wøð Ðr?   c                 ó  — | j         €t          t          ¦  «        ‚| j        D ]h}d }d|v rDt	          | j        ¦  «        D ]/\  }}|j        |d         k    r|j        |t          d¦  «        <    nŒ0|�| j          	                    |¦  «         Œid S )Nrº   )
rQ   r”   r•   rR   rÃ   rP   r7   r;   r&   Úadd_named_destination_object)r<   Ú
named_destÚ
page_indexr„   s       r=   rœ   zPdfMerger._write_dests   s·   € ØŒ;ÐÝÕ0Ñ1Ô1Ð1ØÔ*ð 		Eð 		EˆJØˆJØ˜*Ð$Ð$Ý(1°$´*Ñ(=Ô(=ð ð Ñ$�J Ø”w *¨WÔ"5Ò5Ð5Ø:>Ô:K˜
¥:¨gÑ#6Ô#6Ñ7Ø˜ð 6ð Ð%Ø”×8Ò8¸ÑDÔDÐDøð		Eð 		Er?   Úparentc                 ó¤  — | j         €t          t          ¦  «        ‚|€| j        }|€
J d¦   «         ‚d }|D ]š}t	          |t
          ¦  «        r|                      ||¦  «         Œ.d }d|v rCt          | j        ¦  «        D ].\  }}|j	        |d         k    r|  
                    ||¦  «          nŒ/|�!|d= |d= | j                              ||¦  «        }Œ›d S )Núhint for mypyrº   ú/Type)rQ   r”   r•   rH   rn   rp   r�   rÃ   rP   r7   Ú_write_outline_item_on_pageÚadd_outline_item_dict)r<   rH   rË   Ú
last_addedr]   Úpage_nor„   s          r=   r�   zPdfMerger._write_outline  s  € ð Œ;ÐÝÕ0Ñ1Ô1Ð1Øˆ?Ø”lˆGØÐ"Ð" OÑ"Ô"Ð"àˆ
Ø#ð 	Uð 	UˆLÝ˜,­Ñ-Ô-ð Ø×#Ò# L°*Ñ=Ô=Ð=ØàˆGØ˜,Ð&Ð&Ý%.¨t¬zÑ%:Ô%:ð ð ‘M�G˜TØ”w ,¨wÔ"7Ò7Ð7Ø×8Ò8¸ÀtÑLÔLÐLØ˜ð 8ð Ð"Ø  Ð)¨<¸Ð+@Ø!œ[×>Ò>¸|ÈVÑTÔT�
øð	Uð 	Ur?   )r_   r„   c                 óÖ  — t          t          |d         ¦  «        }t          |j        ¦  «        t	          |¦  «        g}t
          j        t          j        ft
          j	        t          j        ft
          j
        t          j        ft
          j        t          j        ft
          j        t          j        t          j        dft
          j        t          j        t          j        t          j        t          j        fi}|                     |d¦  «        D ]o}||v rDt%          ||         t&          ¦  «        s)|                     t+          ||         ¦  «        ¦  «         n"|                     t+          d¦  «        ¦  «         ||= Œpt-          t	          t.          j        ¦  «        t	          d¦  «        t	          t.          j        ¦  «        t5          |¦  «        i¦  «        |t	          d¦  «        <   d S )NrÎ   z/ZoomrE   r   z/GoToz/A)r   r‹   r(   r7   r&   r   ÚFIT_Hr   ÚTOPÚFIT_BHÚFIT_VÚLEFTÚFIT_BVÚXYZÚFIT_RÚBOTTOMÚRIGHTÚgetrn   r'   rk   r$   r"   r   ÚSÚDr    )r<   r]   r„   Úoi_typeÚargsÚfit2arg_keysÚarg_keys          r=   rÏ   z%PdfMerger._write_outline_item_on_page*  s�  € õ •s˜L¨Ô1Ñ2Ô2ˆÝ˜TœWÑ%Ô%¥z°'Ñ':Ô':Ð;ˆåÔ!¥LÔ$4Ð#6ÝÔ"¥\Ô%5Ð$7ÝÔ!¥LÔ$5Ð#7ÝÔ"¥\Ô%6Ð$8ÝÔ¥,Ô"3µ\Ô5EÀwÐ!OÝÔ!ÝÔ!ÝÔ#ÝÔ"ÝÔ ð	$ð4
ˆð $×'Ò'¨°Ñ4Ô4ð 	&ð 	&ˆGØ˜,Ð&Ð&­zØ˜WÔ%¥zñ0ô 0Ð&ð —’�K¨°WÔ(=Ñ>Ô>Ñ?Ô?Ð?Ð?à—’�K¨™NœNÑ+Ô+Ð+Ø˜WÐ%Ð%å)9åÕ.Ô0Ñ1Ô1µ:¸gÑ3FÔ3FÝÕ.Ô0Ñ1Ô1µ;¸tÑ3DÔ3Dðñ*
ô *
ˆ•Z Ñ%Ô%Ñ&Ð&Ð&r?   c                 óD  — | j         D ]—}d }|d         }t          |t          ¦  «        rŒ"|D ]8}|                     ¦   «         |j                             ¦   «         k    r|j        }Œ9|€t          d|d         › d�¦  «        ‚t          |¦  «        |t          d¦  «        <   Œ˜d S )Nrº   zUnresolved named destination 'r»   ú')rR   rn   r(   r˜   r5   r7   ri   r&   )r<   rP   rÉ   rÊ   Únpr„   s         r=   rx   z#PdfMerger._associate_dests_to_pagesM  sÈ   € ØÔ*ð 	Gð 	GˆJØˆJØ˜GÔ$ˆBå˜"�lÑ+Ô+ð Øàð )ð )�Ø—=’=‘?”? d¤m×&>Ò&>Ñ&@Ô&@Ò@Ð@Ø!%¤�JøàÐ!Ý ØL°ZÀÔ5IÐLÐLÐLñô ð õ /;¸:Ñ.FÔ.FˆJ•z 'Ñ*Ô*Ñ+Ð+ð	Gð 	Gr?   c                 óŠ  — |€| j         }|€
J d¦   «         ‚|D ]ª}t          |t          ¦  «        r|                      ||¦  «         Œ.d }|d         }t          |t          ¦  «        rŒN|D ]8}|                     ¦   «         |j                             ¦   «         k    r|j        }Œ9|�t	          |¦  «        |t          d¦  «        <   Œ«d S )NrÍ   rº   )	rH   rn   rp   ry   r(   r˜   r5   r7   r&   )r<   rP   rH   r]   rÊ   Úoutline_item_pageÚps          r=   ry   z+PdfMerger._associate_outline_items_to_pages_  sï   € ð ˆ?Ø”lˆGØÐ"Ð" OÑ"Ô"Ð"Ø#ð 	Mð 	MˆLÝ˜,­Ñ-Ô-ð Ø×6Ò6°u¸lÑKÔKÐKØàˆJØ ,¨WÔ 5ÐåÐ+­\Ñ:Ô:ð Øàð &ð &�Ø$×/Ò/Ñ1Ô1°Q´Z×5JÒ5JÑ5LÔ5LÒLÐLØ!"¤�JøàÐ%Ý4@ÀÑ4LÔ4L��Z¨Ñ0Ô0Ñ1øð!	Mð 	Mr?   Úrootc                 ó&  — |€| j         }t          |¦  «        D ]w\  }}t          |t          ¦  «        r!|                      ||¦  «        }|r|g|z   c S Œ;||k    s1t          t          t          t          f         |d         ¦  «        |k    r|gc S Œxd S )Nr»   )rH   rÃ   rn   rp   Úfind_outline_itemr   r	   r   )r<   r]   rë   rƒ   Úoi_enumÚress         r=   rí   zPdfMerger.find_outline_itemx  sº   € ð ˆ<Ø”<ˆDå# D™/œ/ð 	ð 	‰JˆAˆwÝ˜'¥4Ñ(Ô(ð ð ×,Ò,¨\¸7ÑCÔC�Øð %Ø˜3 ™9Ð$Ð$Ð$ð%ð ˜<Ò'Ð'Ý��S¥#˜Xœ¨°Ô(9Ñ:Ô:¸lÒJÐJð �s�
�
�
ð Kð
 ˆtr?   c                 ó.   — |                       ||¦  «        S )zZ
        .. deprecated:: 2.9.0
            Use :meth:`find_outline_item` instead.
        )rí   )r<   r]   rë   s      r=   Úfind_bookmarkzPdfMerger.find_bookmark‘  s   € ð ×%Ò% l°DÑ9Ô9Ð9r?   ÚtitleÚcolorÚboldÚitalicrt   Úpagenumc	           
      ó  — |�|�t          d¦  «        ‚|�&d}	d}
t          j        |	› d|
› d�t          ¦  «         |}|€t          d¦  «        ‚| j        }|€t          t          ¦  «        ‚|                     |||d||||¦  «        S )aQ  
        Add an outline item (commonly referred to as a "Bookmark") to this PDF file.

        Args:
            title: Title to use for this outline item.
            page_number: Page number this outline item will point to.
            parent: A reference to a parent outline item to create nested
                outline items.
            color: Color of the outline item's font as a red, green, blue tuple
                from 0.0 to 1.0
            bold: Outline item font is bold
            italic: Outline item font is italic
            fit: The fit of the destination page.
        NzMThe argument pagenum of add_outline_item is deprecated. Use page_number only.rö   ra   úG is deprecated as an argument and will be removed in pypdf==4.0.0. Use rd   re   )ri   rf   rg   rh   rQ   r”   r•   Úadd_outline_item)r<   rò   ra   rË   ró   rô   rõ   rt   rö   rz   r{   Úwriters               r=   rù   zPdfMerger.add_outline_item�  sÜ   € ð2 Ð" wÐ':Ýð(ñô ð ð ÐØ ˆHØ$ˆHÝŒMàð Gð GØ4<ðGð Gð Gõ #ñô ð ð "ˆKØÐÝÐ:Ñ;Ô;Ð;Ø”ˆØˆ>ÝÕ0Ñ1Ô1Ð1Ø×&Ò&ØØØØØØØØñ	
ô 	
ð 		
r?   ú/Fitrâ   c                 óx   — t          ddd¦  «         |                      ||||||t          ||¬¦  «        ¦  «        S )zZ
        .. deprecated:: 1.28.0
            Use :meth:`add_outline_item` instead.
        ÚaddBookmarkrù   rµ   ©Úfit_typeÚfit_args©r   rù   r#   ©	r<   rò   rö   rË   ró   rô   rõ   rt   râ   s	            r=   rý   zPdfMerger.addBookmarkÖ  óQ   € õ 	% ]Ð4FÈÑPÔPÐPØ×$Ò$ØØØØØØÝ˜ tÐ,Ñ,Ô,ñ
ô 
ð 	
r?   c                 óx   — t          ddd¦  «         |                      ||||||t          ||¬¦  «        ¦  «        S )zY
        .. deprecated:: 2.9.0
            Use :meth:`add_outline_item` instead.
        rý   rù   rµ   rþ   r  r  s	            r=   Úadd_bookmarkzPdfMerger.add_bookmarkð  r  r?   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )z_
        .. deprecated:: 1.28.0
            Use :meth:`add_named_destination` instead.
        ÚaddNamedDestinationÚadd_named_destinationrµ   )r   r  )r<   rò   rö   s      r=   r  zPdfMerger.addNamedDestination
  s6   € õ
 	%Ø!Ð#:¸Gñ	
ô 	
ð 	
ð ×)Ò)¨%°Ñ9Ô9Ð9r?   c                 óN  — |�|�t          d¦  «        ‚|�&d}d}t          j        |› d|› d�t          ¦  «         |}|€t          d¦  «        ‚t	          t          |¦  «        t          |¦  «        t          j        d¬	¦  «        ¦  «        }| j	         
                    |¦  «         dS )
z¢
        Add a destination to the output.

        Args:
            title: Title to use
            page_number: Page number this destination points at.
        NzRThe argument pagenum of add_named_destination is deprecated. Use page_number only.rö   ra   rø   rd   re   i:  )Útop)ri   rf   rg   rh   r!   r*   r(   r#   Úfit_horizontallyrR   rk   )r<   rò   ra   rö   rz   r{   Údests          r=   r  zPdfMerger.add_named_destination  sæ   € ð Ð" wÐ':Ýð(ñô ð ð ÐØ ˆHØ$ˆHÝŒMàð Gð GØ4<ðGð Gð Gõ #ñô ð ð "ˆKØÐÝÐ:Ñ;Ô;Ð;ÝÝ˜UÑ#Ô#Ý˜Ñ%Ô%ÝÔ  SÐ)Ñ)Ô)ñ
ô 
ˆð
 	Ô×Ò Ñ%Ô%Ð%Ð%Ð%r?   )FrJ   )r8   rG   )NNNNTN)NNT)r8   N)NNr:   )NNFFrû   )Br@   rA   rB   rC   r   Úboolr   r   r   r>   rU   r   r   ÚBaseExceptionr   r\   rD   r   r‹   r-   r†   r   r   r   rj   r,   r   rk   rZ   r[   r	   r   r¦   r©   r/   r¬   r­   r1   r³   r´   rv   r0   rs   rœ   r
   r)   r+   r�   r!   r4   rÏ   rx   ry   rí   rñ   r   r%   Úfloatr#   rù   r.   r2   rý   r  r  r  rE   r?   r=   rG   rG   X   s+	  € € € € € ðð ð Ð IÐ.Ñ.Ô.àHJðð ØðØ-2°4¸Ð3DÔ-Eðà	ðð ð ñ /Ô.ððð ð ð ð
	à˜4 Ô.Ô/ð	ð �mÔ$ð	ð ˜MÔ*ð		ð
 
ð	ð 	ð 	ð 	ð Ð >ÐDTÐUÑUÔUð &*Ø=AØ&*Ø)-Ø#Ø"&ðr7ð r7à˜c”]ðr7ð �t˜T ;°	Ð9Ô:ðr7ð ˜s”mð	r7ð
 ˜Ô&ðr7ð ðr7ð ˜3”-ðr7ð 
ðr7ð r7ð r7ñ VÔUðr7ðh!&Ø˜T ;°	Ð9Ô:ð!&à	ˆv�x 
Ô+Ð+Ô	,ð!&ð !&ð !&ð !&ðF Ð >ÐDTÐUÑUÔUð '+ð Ø#ðRð Rà�{ I¨tÐ3Ô4ðRð ˜s”mðRð Ø�)˜U 3¨ 8œ_¨e°C¸¸c°MÔ.BÀDÈÄIÐMô
ð	Rð ðRð 
ðRð Rð Rñ VÔUðRð@ ˜U 4¨Ð#4Ô5ð  ¸$ð  ð  ð  ð  ð>ð ð ð ð( $ s¨C x¤.ð (°Tð (ð (ð (ð (ð!  c¨3 h¤ð !°Dð !ð !ð !ð !ð% Jð %°4ð %ð %ð %ð %ð- jð -°Tð -ð -ð -ð -ð:! ð !°ð !ð !ð !ð !ð( ,ð (°4ð (ð (ð (ð (ð6àðð �C˜˜c 3˜hœÐ'Ô(ðð �U˜3 ˜8”_ e¨C°°c¨MÔ&:¸DÀ¼IÐEÔFð	ð
 
ˆd�3˜�8ŒnÔ	ðð ð ð ð2'àð'ð ð'ð �U˜3 ˜8”_ e¨C°°c¨MÔ&:¸DÀ¼IÐEÔFð	'ð
 
ð'ð 'ð 'ð 'ðREð Eð Eð Eð Ð IÐ.Ñ.Ô.ð 48Ø'+ðUð Uà˜( ;Ô/Ô0ðUð ˜Ô$ðUð 
ð	Uð Uð Uñ /Ô.ðUð6 Ð >Ð2Ñ2Ô2ð 
Ø! +¨{Ð":Ô;ð 
ØCNð 
à	ð 
ð  
ð  
ñ 3Ô2ð 
ðDG¨t°KÔ/@ð GÀTð Gð Gð Gð Gð$ Ð IÐ.Ñ.Ô.àSWðMð MØ˜+Ô&ðMØ19¸(À;Ô:OÔ1PðMà	ðMð Mð Mñ /Ô.ðMð0 Ð >Ð2Ñ2Ô2ð '+ðð à˜3 ˜8”nðð �{Ô#ðð 
�$�s”)Ô	ð	ð ð ñ 3Ô2ðð0 Ð >Ð2Ñ2Ô2ð '+ð	:ð 	:à˜3 ˜8”nð	:ð �{Ô#ð	:ð 
�$�s”)Ô	ð		:ð 	:ð 	:ñ 3Ô2ð	:ð &*Ø:>Ø6:ØØØØ!%ð7
ð 7
àð7
ð ˜c”]ð7
ð �d˜J¨Ð6Ô7ð	7
ð
 ˜˜e U¨EÐ1Ô2Ô3ð7
ð ð7
ð ð7
ð ð7
ð ˜#”ð7
ð 
ð7
ð 7
ð 7
ð 7
ðz ;?Ø6:ØØØð
ð 
àð
ð ð
ð �d˜J¨Ð6Ô7ð	
ð
 ˜˜e U¨EÐ1Ô2Ô3ð
ð ð
ð ð
ð ð
ð ð
ð 
ð
ð 
ð 
ð 
ð< ;?Ø6:ØØØð
ð 
àð
ð ð
ð �d˜J¨Ð6Ô7ð	
ð
 ˜˜e U¨EÐ1Ô2Ô3ð
ð ð
ð ð
ð ð
ð ð
ð 
ð
ð 
ð 
ð 
ð4:¨ð :°sð :¸tð :ð :ð :ð :ð &*Ø!%ð	$&ð $&àð$&ð ˜c”]ð$&ð ˜#”ð	$&ð
 
ð$&ð $&ð $&ð $&ð $&ð $&r?   rG   c                   ó,   ‡ — e Zd Zdededdfˆ fd„Zˆ xZS )ÚPdfFileMergerrâ   Úkwargsr8   Nc                 ó”   •— t          ddd¦  «         d|vrt          |¦  «        dk     rd|d<    t          ¦   «         j        |i |¤Ž d S )Nr  rG   rµ   rK   r   T)r   rm   Úsuperr>   )r<   râ   r  Ú	__class__s      €r=   r>   zPdfFileMerger.__init__<  sZ   ø€ Ý$ _°kÀ7ÑKÔKÐKà˜6Ð!Ð!¥c¨$¡i¤i°!¢m mØ#ˆF�8ÑØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r?   )r@   rA   rB   r   r>   Ú__classcell__)r  s   @r=   r  r  ;  sR   ø€ € € € € ð*˜cð *¨Sð *°Tð *ð *ð *ð *ð *ð *ð *ð *ð *ð *r?   r  )Arf   Úior   r   r   Úpathlibr   Útypesr   Útypingr   r	   r
   r   r   r   r   r   r   rl   r   Ú_pager   r£   r   Ú_utilsr   r   r   r   r   Ú_writerr   Ú	constantsr   r   r   r   rš   Úgenericr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Ú	pageranger,   r-   r.   r/   r0   r1   r2   r•   r4   rG   r  rE   r?   r=   ú<module>r!     sï  ðð8 €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð $Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NàSÐ ðð ð ð ð ñ ô ð ð`&ð `&ð `&ð `&ð `&ñ `&ô `&ð `&ðF*ð *ð *ð *ð *�Iñ *ô *ð *ð *ð *r?   