Ë
    ¨Œj6r  ã                   ó
  — d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	m
Z
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mZmZ ddlmZmZ ddlmZmZ dZdZ dZ!dZ"dZ#dZ$dZ%e de!de"de#de%de$diZ& ejN                  dejP                  «      Z) e
d«      Z*de› de › de!› de"› d e#› d!e%› d"e$› d#�Z+d$e*d%e*fd&„Z,d$e-d%ej                  fd'„Z.d$ej                  d%e-fd(„Z/e,fd)ed*d+d,e-d-eegef   d%e	e0e-      f
d.„Z1 G d/„ d+ee«      Z2y)0z~
Anything related to Extensible Metadata Platform (XMP) metadata.

https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
é    N)ÚIterator)ÚAnyÚCallableÚOptionalÚTypeVarÚUnion)ÚDocumentÚparseString)ÚElement)Ú
ExpatErroré   )ÚXmpInformationProtocol)Ú
StreamTypeÚdeprecate_with_replacementÚdeprecation_no_replacement)ÚPdfReadErrorÚXmpDocumentError)ÚContentStreamÚ	PdfObjectz+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://purl.org/dc/elements/1.1/zhttp://ns.adobe.com/xap/1.0/zhttp://ns.adobe.com/pdf/1.3/zhttp://ns.adobe.com/xap/1.0/mm/zhttp://ns.adobe.com/pdfx/1.3/zhttp://www.aiim.org/pdfa/ns/id/ÚdcÚxmpÚpdfÚxmpMMÚpdfaidÚpdfxa{  
        (?P<year>[0-9]{4})
        (-
            (?P<month>[0-9]{2})
            (-
                (?P<day>[0-9]+)
                (T
                    (?P<hour>[0-9]{2}):
                    (?P<minute>[0-9]{2})
                    (:(?P<second>[0-9]{2}(.[0-9]+)?))?
                    (?P<tzd>Z|[-+][0-9]{2}:[0-9]{2})
                )?
            )?
        )?
        ÚKuƒ   <?xpacket begin="ï»¿" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="pypdf">
    <rdf:RDF xmlns:rdf="z?">
        <rdf:Description rdf:about=""
            xmlns:dc="z"
            xmlns:xmp="z"
            xmlns:pdf="z"
            xmlns:xmpMM="z"
            xmlns:pdfaid="z"
            xmlns:pdfx="zM">
        </rdf:Description>
    </rdf:RDF>
</x:xmpmeta>
<?xpacket end="r"?>ÚvalueÚreturnc                 ó   — | S ©N© ©r   s    úS/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pypdf/xmp.pyÚ	_identityr$   i   s   € Ø€Ló    c           	      ó0  — t         j                  | «      }|€t        d| › �«      ‚t        |j	                  d«      «      }t        |j	                  d«      xs d«      }t        |j	                  d«      xs d«      }t        |j	                  d«      xs d«      }t        |j	                  d«      xs d«      }t        j                  |j	                  d	«      xs d«      }|j                  t
        j                  «      }||z
  d
z  }	t        |«      }
t        |	«      }|j	                  d«      xs d}t        j                  ||||||
|«      }|dk7  rDd„ |j                  d«      D «       \  }}|dz  }|dk  r|dz  }|t        j                  ||¬«      z   }|S )NzInvalid date format: ÚyearÚmonthÚ1ÚdayÚhourÚ0ÚminuteÚsecondi@B ÚtzdÚZc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr    )Úint)Ú.0Úxs     r#   Ú	<genexpr>z"_converter_date.<locals>.<genexpr>€   s   è ø€ Ð!A±.¨Q¤# a§&±.ùs   ‚Ú:éÿÿÿÿr   )ÚhoursÚminutes)Úiso8601ÚmatchÚ
ValueErrorr2   ÚgroupÚdecimalÚDecimalÚto_integralÚROUND_FLOORÚdatetimeÚsplitÚ	timedelta)r   Úmatchesr'   r(   r*   r+   r-   r.   Úseconds_decÚmilliseconds_decÚsecondsÚmillisecondsr/   ÚdtÚ	tzd_hoursÚtzd_minutess                   r#   Ú_converter_daterM   m   su  € Ü�m‰m˜EÓ"€GØ€ÜÐ0°°Ð8Ó9Ð9Üˆw�}‰}˜VÓ$Ó%€DÜ�—‘˜gÓ&Ò-¨#Ó.€EÜ
ˆg�m‰m˜EÓ"Ò) cÓ
*€CÜˆw�}‰}˜VÓ$Ò+¨Ó,€DÜ�—‘˜xÓ(Ò/¨CÓ0€FÜ�_‰_˜WŸ]™]¨8Ó4Ò;¸Ó<€FØ×$Ñ$¤W×%8Ñ%8Ó9€KØ Ñ,°	Ñ9Ðä�+Ó€GÜÐ'Ó(€Là
�-‰-˜Ó
Ò
% #€CÜ	×	Ñ	˜4 ¨¨T°6¸7ÀLÓ	Q€BØ
ˆc‚zÙ!A°#·)±)¸C´.Ó!AÑˆ	�;Ø�R‰ˆ	Ø�qŠ=Ø˜2ÑˆKØ”(×$Ñ$¨9¸kÔJÑJˆØ€Ir%   c                 óÒ   — | j                   �9| j                  «       �)| j                  t        j                  j
                  «      } | j                  d¬«      } | j                  d«      S )z‰Format a datetime as UTC with trailing 'Z'.

    - If the input is timezone-aware, convert to UTC first.
    - If naive, assume UTC.
    N)Útzinfoz%Y-%m-%dT%H:%M:%S.%fZ)rO   Ú	utcoffsetÚ
astimezonerB   ÚtimezoneÚutcÚreplaceÚstrftimer"   s    r#   Ú_format_datetime_utcrV   ˆ   sV   € ð ‡|�|Ð E§O¡OÓ$5Ð$AØ× Ñ ¤×!2Ñ!2×!6Ñ!6Ó7ˆà�M‰M ˆMÓ&€EØ�>‰>Ð1Ó2Ð2r%   ÚelementÚselfÚXmpInformationÚ	list_typeÚ	converterc                 óæ   — | j                  t        |«      }g }t        |«      rN|D ]G  }|j                  t        d«      D ],  }|j                  |«      } ||«      }|j	                  |«       Œ. ŒI |S y )NÚli)ÚgetElementsByTagNameNSÚRDF_NAMESPACEÚlenÚ	_get_textÚappend)	rW   rX   rZ   r[   Ú
containersÚretvalÚ	containerÚitemr   s	            r#   Ú_generic_getrg   •   sr   € ð ×/Ñ/´¸yÓI€JØ€FÜ
ˆ:„Û#ˆIØ!×8Ñ8¼ÈÖM�ØŸ™ tÓ,�Ù! %Ó(�Ø—‘˜eÕ$ñ Nð $ð
 ˆØr%   c                   ó–  — e Zd ZdZdeddfd„ZedTd„«       Z	 dUdede	de
ef   ddfd„Zd	e
d
e
de
dee   fd„Zd	e
d
e
dee   fd„Zdede
fd„Zefd
e
de
dee
gef   dee   fd„Zd
e
de
deee
      fd„Zefd
e
de
deegef   deee      fd„Zd
e
de
deeeef      fd„Zedeee
      fd„«       Zej<                  deee
      ddfd„«       Zedee
   fd„«       Zej<                  dee
   ddfd„«       Zedeee
      fd„«       Z e j<                  deee
      ddfd„«       Z edeee!jB                        fd„«       Z"e"j<                  deee	e
e!jB                  f         ddfd„«       Z"edeee
e
f      fd„«       Z#e#j<                  deee
e
f      ddfd „«       Z#edee
   fd!„«       Z$e$j<                  dee
   ddfd"„«       Z$edee
   fd#„«       Z%e%j<                  dee
   ddfd$„«       Z%edeee
      fd%„«       Z&e&j<                  deee
      ddfd&„«       Z&edeee
      fd'„«       Z'e'j<                  deee
      ddfd(„«       Z'edeee
      fd)„«       Z(e(j<                  deee
      ddfd*„«       Z(edeee
e
f      fd+„«       Z)e)j<                  deee
e
f      ddfd,„«       Z)edee
   fd-„«       Z*e*j<                  dee
   ddfd.„«       Z*edeee
      fd/„«       Z+e+j<                  deee
      ddfd0„«       Z+edeee
e
f      fd1„«       Z,e,j<                  deee
e
f      ddfd2„«       Z,edeee
      fd3„«       Z-e-j<                  deee
      ddfd4„«       Z-edee
   fd5„«       Z.e.j<                  dee
   ddfd6„«       Z.edee
   fd7„«       Z/e/j<                  dee
   ddfd8„«       Z/edee
   fd9„«       Z0e0j<                  dee
   ddfd:„«       Z0edee!jB                     fd;„«       Z1e1j<                  dee!jB                     ddfd<„«       Z1edee!jB                     fd=„«       Z2e2j<                  dee!jB                     ddfd>„«       Z2edee!jB                     fd?„«       Z3e3j<                  dee!jB                     ddfd@„«       Z3edee
   fdA„«       Z4e4j<                  dee
   ddfdB„«       Z4edee
   fdC„«       Z5e5j<                  dee
   ddfdD„«       Z5edee
   fdE„«       Z6e6j<                  dee
   ddfdF„«       Z6edee
   fdG„«       Z7e7j<                  dee
   ddfdH„«       Z7edee
   fdI„«       Z8e8j<                  dee
   ddfdJ„«       Z8edeeef   fdK„«       Z9dVd	e
defdL„Z:d
e
de
ddfdM„Z;d
e
de
dee
   ddfdN„Z<d
e
de
deee
      ddfdO„Z=d
e
de
deee
      ddfdP„Z>d
e
de
deee
e
f      ddfdQ„Z?d
e
de
fdR„Z@dWdS„ZAy)XrY   zÕ
    An object that represents Extensible Metadata Platform (XMP) metadata.
    Usually accessed by :py:attr:`xmp_metadata()<pypdf.PdfReader.xmp_metadata>`.

    Raises:
      PdfReadError: if XML is invalid

    Ústreamr   Nc                 óò   — || _         	 | j                   j                  «       }t        |«      }|j                  t        d«      d   | _        i | _	        y # t        t        f$ r}t        d|› �«      ‚d }~ww xY w)Nz#XML in XmpInformation was invalid: ÚRDFr   )
ri   Úget_datar
   ÚAttributeErrorr   r   r^   r_   Úrdf_rootÚcache)rX   ri   ÚdataÚdoc_rootÚes        r#   Ú__init__zXmpInformation.__init__®   s�   € ØˆŒð	JØ—;‘;×'Ñ'Ó)ˆDÜ!,¨TÓ!2ˆHð %-×$CÑ$CÜ˜5ó%
à
ñ%ˆŒð &(ˆ�
øô ¤
Ð+ò 	JÜÐ!DÀQÀCÐHÓIÐIûð	Jús   ‰%A ÁA6Á#A1Á1A6c                 ór   — t        dd«      }|j                  t        j                  d«      «        | |«      S )z¤
        Create a new XmpInformation object with minimal structure.

        Returns:
            A new XmpInformation instance with empty metadata fields.
        Núutf-8)r   Úset_dataÚ_MINIMAL_XMPÚencode)Úclsri   s     r#   ÚcreatezXmpInformation.createº   s1   € ô ˜t TÓ*ˆØ�‰œ×+Ñ+¨GÓ4Ô5Ù�6‹{Ðr%   Úencryption_keyc                 óp   — t        ddd«       |�t        dd«       | j                  j                  |«       y )NzXmpInformation.write_to_streamzPdfWriter.xmp_metadataz6.0.0z/the encryption_key parameter of write_to_streamz5.0.0)r   r   ri   Úwrite_to_stream)rX   ri   r{   s      r#   r}   zXmpInformation.write_to_streamÆ   s>   € ô 	#Ø,Ø$Øô	
ð
 Ð%Ü&ØAÀ7ôð 	�‰×#Ñ# FÕ+r%   Ú	about_uriÚ	namespaceÚnamec              #   óò   K  — | j                   j                  t        d«      D ]N  }|j                  t        d«      |k(  sŒ|j	                  ||«      }|�|–— |j                  ||«      E d {  –—†  ŒP y 7 Œ­w©NÚDescriptionÚabout)rn   r^   r_   ÚgetAttributeNSÚgetAttributeNodeNS)rX   r~   r   r€   ÚdescÚattrs         r#   Úget_elementzXmpInformation.get_elementÔ   sp   è ø€ Ø—M‘M×8Ñ8¼ÈÖVˆDØ×"Ñ"¤=°'Ó:¸iÓGØ×.Ñ.¨y¸$Ó?�ØÐ#Ø’JØ×6Ñ6°yÀ$ÓG×GÑGñ Wð
 Hús   ‚=A7Á -A7Á-A5Á.A7c              #   ó€  K  — | j                   j                  t        d«      D ]—  }|j                  t        d«      |k(  sŒt	        |j
                  j                  «      D ]4  }|j
                  j                  |«      }|sŒ!|j                  |k(  sŒ1|–— Œ6 |j                  D ]  }|j                  |k(  sŒ|–— Œ Œ™ y ­wr‚   )
rn   r^   r_   r…   ÚrangeÚ
attributesÚlengthrf   ÚnamespaceURIÚ
childNodes)rX   r~   r   r‡   Úirˆ   Úchilds          r#   Úget_nodes_in_namespacez%XmpInformation.get_nodes_in_namespaceÜ   sœ   è ø€ Ø—M‘M×8Ñ8¼ÈÖVˆDØ×"Ñ"¤=°'Ó:¸iÓGÜ˜tŸ™×5Ñ5Ö6�AØŸ?™?×/Ñ/°Ó2�DÚ × 1Ñ 1°YÓ >Ø"›
ð 7ð "Ÿ_œ_�EØ×)Ñ)¨YÓ6Ø#›ñ -ñ Wùs   ‚=B>Á ?B>Â B>Â$B>Â5	B>rW   c                 ó~   — d}|j                   D ]+  }|j                  |j                  k(  sŒ||j                  z  }Œ- |S ©NÚ )r�   ÚnodeTypeÚ	TEXT_NODErp   )rX   rW   Útextr‘   s       r#   ra   zXmpInformation._get_textç   s<   € ØˆØ×'Ô'ˆEØ�~‰~ §¡Ó0Ø˜Ÿ
™
Ñ"‘ð (ð ˆr%   r[   c                 ó^  — | j                   j                  |i «      j                  |«      }|r|S d }| j                  d||«      D ]:  }|j                  |j                  k(  r|j
                  }n| j                  |«      } n |� ||«      }| j                   j                  |i «      }|||<   |S r”   )ro   Úgetr‰   r–   ÚATTRIBUTE_NODEÚ	nodeValuera   Ú
setdefault)rX   r   r€   r[   Úcachedr   rW   Úns_caches           r#   Ú_get_single_valuez XmpInformation._get_single_valueî   s¯   € ð —‘—‘ 	¨2Ó.×2Ñ2°4Ó8ˆÙØˆMØˆØ×'Ñ'¨¨I°tÖ<ˆGØ×Ñ 7×#9Ñ#9Ò9Ø×)Ñ)‘àŸ™ wÓ/�Ùð =ð ÐÙ˜eÓ$ˆEØ—:‘:×(Ñ(¨°BÓ7ˆØˆ�‰Øˆr%   c                 ób  — | j                   j                  |i «      j                  |«      }|r|S g }| j                  d||«      D ]F  }t        || d¬«      x}�|j	                  |«       Œ%| j                  |«      }|j                  |«       ŒH | j                   j                  |i «      }|||<   |S )Nr•   ÚBag©rZ   ©ro   rš   r‰   rg   Úextendra   rb   r�   )	rX   r   r€   rž   rd   rW   Úbagsr   rŸ   s	            r#   Ú_getter_bagzXmpInformation._getter_bag  s§   € Ø—‘—‘ 	¨2Ó.×2Ñ2°4Ó8ˆÙØˆMØˆØ×'Ñ'¨¨I°tÖ<ˆGÜ$ W¨d¸eÔDÐD�ÐQØ—‘˜dÕ#àŸ™ wÓ/�Ø—‘˜eÕ$ð =ð —:‘:×(Ñ(¨°BÓ7ˆØˆ�‰Øˆr%   c                 ó´  — | j                   j                  |i «      j                  |«      }|r|S g }| j                  d||«      D ]o  }t        || d|¬«      x}�|j	                  |«       Œ&t        || d¬«      x}�|j	                  |«       ŒH || j                  |«      «      }	|j                  |	«       Œq | j                   j                  |i «      }
||
|<   |S )Nr•   ÚSeq)rZ   r[   r¢   r£   r¤   )rX   r   r€   r[   rž   rd   rW   Úseqsr¦   r   rŸ   s              r#   Ú_get_seq_valueszXmpInformation._get_seq_values  sÒ   € ð —‘—‘ 	¨2Ó.×2Ñ2°4Ó8ˆÙØˆMØˆØ×'Ñ'¨¨I°tÖ<ˆGÜ$ W¨d¸eÈyÔYÐY�ÐfØ—‘˜dÕ#Ü& w°ÀÔFÐF�$ÐSð —‘˜dÕ#á! $§.¡.°Ó"9Ó:�Ø—‘˜eÕ$ð =ð —:‘:×(Ñ(¨°BÓ7ˆØˆ�‰Øˆr%   c                 óÔ  — | j                   j                  |i «      j                  |«      }|r|S i }| j                  d||«      D ]  }|j                  t        d«      }t        |«      rH|D ]B  }|j                  t        d«      D ]'  }| j                  |«      }	|	||j                  d«      <   Œ) ŒD Œl| j                  |«      |d<   Œ� | j                   j                  |i «      }
||
|<   |S )Nr•   ÚAltr]   úxml:langz	x-default)	ro   rš   r‰   r^   r_   r`   ra   ÚgetAttributer�   )rX   r   r€   rž   rd   rW   ÚaltsÚaltrf   r   rŸ   s              r#   Ú_get_langalt_valuesz"XmpInformation._get_langalt_values0  sà   € Ø—‘—‘ 	¨2Ó.×2Ñ2°4Ó8ˆÙØˆMØ!#ˆØ×'Ñ'¨¨I°tÖ<ˆGØ×1Ñ1´-ÀÓGˆDÜ�4ŒyÛ�CØ #× :Ñ :¼=È$Ö O˜Ø $§¡¨tÓ 4˜Ø@E˜˜t×0Ñ0°Ó<Ò=ñ !Pñ  ð
 '+§n¡n°WÓ&=��{Ò#ð =ð —:‘:×(Ñ(¨°BÓ7ˆØˆ�‰Øˆr%   c                 ó.   — | j                  t        d«      S )z6Contributors to the resource (other than the authors).Úcontributor©r§   ÚDC_NAMESPACE©rX   s    r#   Údc_contributorzXmpInformation.dc_contributorB  s   € ð ×Ñ¤¨mÓ<Ð<r%   Úvaluesc                 ó2   — | j                  t        d|«       y )Nr´   ©Ú_set_bag_valuesr¶   ©rX   r¹   s     r#   r¸   zXmpInformation.dc_contributorG  s   € à×Ñœ\¨=¸&ÕAr%   c                 ó.   — | j                  t        d«      S )z4Text describing the extent or scope of the resource.Úcoverage©r    r¶   r·   s    r#   Údc_coveragezXmpInformation.dc_coverageK  s   € ð ×%Ñ%¤l°JÓ?Ð?r%   r   c                 ó2   — | j                  t        d|«       y )Nr¿   ©Ú_set_single_valuer¶   ©rX   r   s     r#   rÁ   zXmpInformation.dc_coverageP  s   € à×Ñœ|¨Z¸Õ?r%   c                 ó.   — | j                  t        d«      S )zVA sorted array of names of the authors of the resource, listed in order of precedence.Úcreator)r«   r¶   r·   s    r#   Ú
dc_creatorzXmpInformation.dc_creatorT  s   € ð ×#Ñ#¤L°)Ó<Ð<r%   c                 ó2   — | j                  t        d|«       y )NrÇ   )Ú_set_seq_valuesr¶   r½   s     r#   rÈ   zXmpInformation.dc_creatorY  ó   € à×Ñœ\¨9°fÕ=r%   c                 ó8   — | j                  t        dt        «      S )zXA sorted array of dates of significance to the resource. The dates and times are in UTC.Údate)r«   r¶   rM   r·   s    r#   Údc_datezXmpInformation.dc_date]  s   € ð ×#Ñ#¤L°&¼/ÓJÐJr%   c                 ó  — |€| j                  t        dd «       y g }|D ]Q  }t        |t        j                  «      r|j	                  t        |«      «       Œ8|j	                  t        |«      «       ŒS | j                  t        d|«       y )NrÍ   )rÊ   r¶   Ú
isinstancerB   rb   rV   Ústr)rX   r¹   Údate_stringsr   s       r#   rÎ   zXmpInformation.dc_dateb  sr   € àˆ>Ø× Ñ ¤¨v°tÕ<àˆLÛ�Ü˜e¤X×%6Ñ%6Ô7Ø ×'Ñ'Ô(<¸UÓ(CÕDà ×'Ñ'¬¨E«
Õ3ð	  ð
 × Ñ ¤¨v°|ÕDr%   c                 ó.   — | j                  t        d«      S )zSA language-keyed dictionary of textual descriptions of the content of the resource.Údescription©r²   r¶   r·   s    r#   Údc_descriptionzXmpInformation.dc_descriptiono  s   € ð ×'Ñ'¬°mÓDÐDr%   c                 ó2   — | j                  t        d|«       y )NrÔ   ©Ú_set_langalt_valuesr¶   r½   s     r#   rÖ   zXmpInformation.dc_descriptiont  s   € à× Ñ ¤¨}¸fÕEr%   c                 ó.   — | j                  t        d«      S )zThe mime-type of the resource.ÚformatrÀ   r·   s    r#   Ú	dc_formatzXmpInformation.dc_formatx  ó   € ð ×%Ñ%¤l°HÓ=Ð=r%   c                 ó2   — | j                  t        d|«       y )NrÛ   rÃ   rÅ   s     r#   rÜ   zXmpInformation.dc_format}  ó   € à×Ñœ|¨X°uÕ=r%   c                 ó.   — | j                  t        d«      S )z"Unique identifier of the resource.Ú
identifierrÀ   r·   s    r#   Údc_identifierzXmpInformation.dc_identifier�  s   € ð ×%Ñ%¤l°LÓAÐAr%   c                 ó2   — | j                  t        d|«       y )Nrá   rÃ   rÅ   s     r#   râ   zXmpInformation.dc_identifier†  s   € à×Ñœ|¨\¸5ÕAr%   c                 ó.   — | j                  t        d«      S )zAAn unordered array specifying the languages used in the resource.Úlanguagerµ   r·   s    r#   Údc_languagezXmpInformation.dc_languageŠ  ó   € ð ×Ñ¤¨jÓ9Ð9r%   c                 ó2   — | j                  t        d|«       y )Nrå   r»   r½   s     r#   ræ   zXmpInformation.dc_language�  ó   € à×Ñœ\¨:°vÕ>r%   c                 ó.   — | j                  t        d«      S )z&An unordered array of publisher names.Ú	publisherrµ   r·   s    r#   Údc_publisherzXmpInformation.dc_publisher“  s   € ð ×Ñ¤¨kÓ:Ð:r%   c                 ó2   — | j                  t        d|«       y )Nrë   r»   r½   s     r#   rì   zXmpInformation.dc_publisher˜  s   € à×Ñœ\¨;¸Õ?r%   c                 ó.   — | j                  t        d«      S )zLAn unordered array of text descriptions of relationships to other documents.Úrelationrµ   r·   s    r#   Údc_relationzXmpInformation.dc_relationœ  rç   r%   c                 ó2   — | j                  t        d|«       y )Nrï   r»   r½   s     r#   rð   zXmpInformation.dc_relation¡  ré   r%   c                 ó.   — | j                  t        d«      S )z`A language-keyed dictionary of textual descriptions of the rights the user has to this resource.ÚrightsrÕ   r·   s    r#   Ú	dc_rightszXmpInformation.dc_rights¥  s   € ð ×'Ñ'¬°hÓ?Ð?r%   c                 ó2   — | j                  t        d|«       y )Nró   rØ   r½   s     r#   rô   zXmpInformation.dc_rightsª  s   € à× Ñ ¤¨x¸Õ@r%   c                 ó.   — | j                  t        d«      S )zCUnique identifier of the work from which this resource was derived.ÚsourcerÀ   r·   s    r#   Ú	dc_sourcezXmpInformation.dc_source®  rÝ   r%   c                 ó2   — | j                  t        d|«       y )Nr÷   rÃ   rÅ   s     r#   rø   zXmpInformation.dc_source³  rß   r%   c                 ó.   — | j                  t        d«      S )z\An unordered array of descriptive phrases or keywords that specify the topic of the content.Úsubjectrµ   r·   s    r#   Ú
dc_subjectzXmpInformation.dc_subject·  s   € ð ×Ñ¤¨iÓ8Ð8r%   c                 ó2   — | j                  t        d|«       y )Nrû   r»   r½   s     r#   rü   zXmpInformation.dc_subject¼  rË   r%   c                 ó.   — | j                  t        d«      S )z9A language-keyed dictionary of the title of the resource.ÚtitlerÕ   r·   s    r#   Údc_titlezXmpInformation.dc_titleÀ  s   € ð ×'Ñ'¬°gÓ>Ð>r%   c                 ó2   — | j                  t        d|«       y )Nrÿ   rØ   r½   s     r#   r   zXmpInformation.dc_titleÅ  s   € à× Ñ ¤¨w¸Õ?r%   c                 ó.   — | j                  t        d«      S )z@An unordered array of textual descriptions of the document type.Útyperµ   r·   s    r#   Údc_typezXmpInformation.dc_typeÉ  s   € ð ×Ñ¤¨fÓ5Ð5r%   c                 ó2   — | j                  t        d|«       y )Nr  r»   r½   s     r#   r  zXmpInformation.dc_typeÎ  s   € à×Ñœ\¨6°6Õ:r%   c                 ó.   — | j                  t        d«      S )z:An unformatted text string representing document keywords.ÚKeywords©r    ÚPDF_NAMESPACEr·   s    r#   Úpdf_keywordszXmpInformation.pdf_keywordsÒ  ó   € ð ×%Ñ%¤m°ZÓ@Ð@r%   c                 ó2   — | j                  t        d|«       y )Nr  ©rÄ   r	  rÅ   s     r#   r
  zXmpInformation.pdf_keywords×  ó   € à×Ñœ}¨j¸%Õ@r%   c                 ó.   — | j                  t        d«      S )z-The PDF file version, for example 1.0 or 1.3.Ú
PDFVersionr  r·   s    r#   Úpdf_pdfversionzXmpInformation.pdf_pdfversionÛ  s   € ð ×%Ñ%¤m°\ÓBÐBr%   c                 ó2   — | j                  t        d|«       y )Nr  r  rÅ   s     r#   r  zXmpInformation.pdf_pdfversionà  s   € à×Ñœ}¨l¸EÕBr%   c                 ó.   — | j                  t        d«      S )z6The name of the tool that saved the document as a PDF.ÚProducerr  r·   s    r#   Úpdf_producerzXmpInformation.pdf_producerä  r  r%   c                 ó2   — | j                  t        d|«       y )Nr  r  rÅ   s     r#   r  zXmpInformation.pdf_produceré  r  r%   c                 ó8   — | j                  t        dt        «      S )zYThe date and time the resource was originally created. Returned as a UTC datetime object.Ú
CreateDate©r    ÚXMP_NAMESPACErM   r·   s    r#   Úxmp_create_datezXmpInformation.xmp_create_dateí  ó   € ð ×%Ñ%¤m°\Ä?ÓSÐSr%   c                 ó|   — |r#t        |«      }| j                  t        d|«       y | j                  t        dd «       y )Nr  ©rV   rÄ   r  ©rX   r   Údate_strs      r#   r  zXmpInformation.xmp_create_dateò  ó3   € áÜ+¨EÓ2ˆHØ×"Ñ"¤=°,ÀÕIà×"Ñ"¤=°,ÀÕEr%   c                 ó8   — | j                  t        dt        «      S )zTThe date and time the resource was last modified. Returned as a UTC datetime object.Ú
ModifyDater  r·   s    r#   Úxmp_modify_datezXmpInformation.xmp_modify_dateú  r  r%   c                 ó|   — |r#t        |«      }| j                  t        d|«       y | j                  t        dd «       y )Nr#  r  r  s      r#   r$  zXmpInformation.xmp_modify_dateÿ  r!  r%   c                 ó8   — | j                  t        dt        «      S )zjThe date and time that any metadata for this resource was last changed. Returned as a UTC datetime object.ÚMetadataDater  r·   s    r#   Úxmp_metadata_datez XmpInformation.xmp_metadata_date  s   € ð ×%Ñ%¤m°^Ä_ÓUÐUr%   c                 ó|   — |r#t        |«      }| j                  t        d|«       y | j                  t        dd «       y )Nr'  r  r  s      r#   r(  z XmpInformation.xmp_metadata_date  s3   € áÜ+¨EÓ2ˆHØ×"Ñ"¤=°.À(ÕKà×"Ñ"¤=°.À$ÕGr%   c                 ó.   — | j                  t        d«      S )z=The name of the first known tool used to create the resource.ÚCreatorTool)r    r  r·   s    r#   Úxmp_creator_toolzXmpInformation.xmp_creator_tool  s   € ð ×%Ñ%¤m°]ÓCÐCr%   c                 ó2   — | j                  t        d|«       y )Nr+  )rÄ   r  rÅ   s     r#   r,  zXmpInformation.xmp_creator_tool  s   € à×Ñœ}¨m¸UÕCr%   c                 ó.   — | j                  t        d«      S )zGThe common identifier for all versions and renditions of this resource.Ú
DocumentID©r    ÚXMPMM_NAMESPACEr·   s    r#   Úxmpmm_document_idz XmpInformation.xmpmm_document_id  ó   € ð ×%Ñ%¤o°|ÓDÐDr%   c                 ó2   — | j                  t        d|«       y )Nr/  ©rÄ   r1  rÅ   s     r#   r2  z XmpInformation.xmpmm_document_id"  ó   € à×Ñœ°¸eÕDr%   c                 ó.   — | j                  t        d«      S )zZAn identifier for a specific incarnation of a document, updated each time a file is saved.Ú
InstanceIDr0  r·   s    r#   Úxmpmm_instance_idz XmpInformation.xmpmm_instance_id&  r3  r%   c                 ó2   — | j                  t        d|«       y )Nr8  r5  rÅ   s     r#   r9  z XmpInformation.xmpmm_instance_id+  r6  r%   c                 ó.   — | j                  t        d«      S )zMThe part of the PDF/A standard that the document conforms to (e.g., 1, 2, 3).Úpart©r    ÚPDFAID_NAMESPACEr·   s    r#   Úpdfaid_partzXmpInformation.pdfaid_part/  s   € ð ×%Ñ%Ô&6¸Ó?Ð?r%   c                 ó2   — | j                  t        d|«       y )Nr<  ©rÄ   r>  rÅ   s     r#   r?  zXmpInformation.pdfaid_part4  s   € à×ÑÔ/°¸Õ?r%   c                 ó.   — | j                  t        d«      S )zFThe conformance level within the PDF/A standard (e.g., 'A', 'B', 'U').Úconformancer=  r·   s    r#   Úpdfaid_conformancez!XmpInformation.pdfaid_conformance8  s   € ð ×%Ñ%Ô&6¸ÓFÐFr%   c                 ó2   — | j                  t        d|«       y )NrC  rA  rÅ   s     r#   rD  z!XmpInformation.pdfaid_conformance=  s   € à×ÑÔ/°ÀÕFr%   c           
      ó¨  — t        | d«      s»i | _        | j                  dt        «      D ]›  }|j                  }	 |j                  d«      }|dk(  rn/|d| t        t        ||dz   |dz    d¬	«      «      z   ||dz   d z   }ŒF|j                  |j                  k(  r|j                  }n| j                  |«      }|| j                  |<   Œ� | j                  S )
zÎ
        Retrieve custom metadata properties defined in the undocumented pdfx
        metadata schema.

        Returns:
            A dictionary of key/value items for custom metadata properties.

        Ú_custom_propertiesr•   u   â†‚r7   Nr   é   é   )Úbase)ÚhasattrrG  r’   ÚPDFX_NAMESPACEÚ	localNameÚfindÚchrr2   r–   r›   rœ   ra   )rX   ÚnodeÚkeyÚidxr   s        r#   Úcustom_propertiesz XmpInformation.custom_propertiesA  så   € ô �tÐ1Ô2Ø&(ˆDÔ#Ø×3Ñ3°B¼ÖG�Ø—n‘n�ØàŸ(™( 8Ó,�CØ˜b’yØà˜D˜S˜	Üœc # c¨A¡g°°a±Ð"8¸rÔBÓCñDà˜c A™g˜i˜.ñ)ð ð ð —=‘= D×$7Ñ$7Ò7Ø ŸN™N‘Eà ŸN™N¨4Ó0�EØ/4�×'Ñ'¨Ò,ð! Hð" ×&Ñ&Ð&r%   c                 ó`  — | j                   j                  t        d«      D ]  }|j                  t        d«      |k(  sŒ|c S  | j                   j                  }|€t        d«      ‚|j                  t        d«      }|j                  t        d|«       | j                   j                  |«       |S )zBGet or create an rdf:Description element with the given about URI.rƒ   r„   úXMP Document is Nonezrdf:Descriptionz	rdf:about)	rn   r^   r_   r…   ÚownerDocumentr   ÚcreateElementNSÚsetAttributeNSÚappendChild)rX   r~   r‡   Údocs       r#   Ú_get_or_create_descriptionz)XmpInformation._get_or_create_description`  s–   € à—M‘M×8Ñ8¼ÈÖVˆDØ×"Ñ"¤=°'Ó:¸iÓGØ’ð Wð �m‰m×)Ñ)ˆØˆ;Ü"Ð#9Ó:Ð:Ø×"Ñ"¤=Ð2CÓDˆØ×ÑœM¨;¸	ÔBØ�‰×!Ñ! $Ô'Øˆr%   c                 óP   — | j                   j                  |«      }|r	||v r||= yyy)z<Remove a cached value for a given namespace/name if present.N)ro   rš   )rX   r   r€   rŸ   s       r#   Ú_clear_cache_entryz!XmpInformation._clear_cache_entryn  s,   € à—:‘:—>‘> )Ó,ˆÙ˜ Ñ(Ø˜‘ð )ˆ8r%   c                 ó*  — | j                  ||«       | j                  «       }t        |j                  ||«      «      }|D ]  }|j	                  |«       Œ |j                  ||«      x}r|j                  |«       |�‡| j                  j                  }|€t        d«      ‚| j                  |«      }	|j                  ||	› d|› �«      }|j                  t        |«      «      }
|j                  |
«       |j                  |«       | j                  «        y)z&Set or remove a single metadata value.NrU  r6   )r]  r[  Úlistr^   ÚremoveChildr†   ÚremoveAttributeNodern   rV  r   Ú_get_namespace_prefixrW  ÚcreateTextNoderÑ   rY  Ú_update_stream)rX   r   r€   r   r‡   Úexisting_elementsÚelemÚexisting_attrrZ  ÚprefixÚ	text_nodes              r#   rÄ   z XmpInformation._set_single_valuet  s  € à×Ñ 	¨4Ô0Ø×.Ñ.Ó0ˆä  ×!<Ñ!<¸YÈÓ!MÓNÐÛ%ˆDØ×Ñ˜TÕ"ð &ð !×3Ñ3°I¸tÓDÐDˆ=ÐDØ×$Ñ$ ]Ô3àÐØ—-‘-×-Ñ-ˆCØˆ{Ü&Ð'=Ó>Ð>Ø×/Ñ/°	Ó:ˆFØ×&Ñ& y°V°H¸A¸d¸VÐ2DÓEˆDØ×*Ñ*¬3¨u«:Ó6ˆIØ×Ñ˜YÔ'Ø×Ñ˜TÔ"à×ÑÕr%   c                 óŠ  — | j                  ||«       | j                  «       }t        |j                  ||«      «      }|D ]  }|j	                  |«       Œ |rÜ| j
                  j                  }|€t        d«      ‚| j                  |«      }|j                  ||› d|› �«      }|j                  t        d«      }	|D ]T  }
|j                  t        d«      }|j                  t        |
«      «      }|j                  |«       |	j                  |«       ŒV |j                  |	«       |j                  |«       | j                  «        y)z+Set or remove bag values (unordered array).NrU  r6   zrdf:Bagúrdf:li©r]  r[  r_  r^   r`  rn   rV  r   rb  rW  r_   rc  rÑ   rY  rd  )rX   r   r€   r¹   r‡   re  rf  rZ  rh  Úbagr   r]   ri  s                r#   r¼   zXmpInformation._set_bag_valuesŒ  ó&  € à×Ñ 	¨4Ô0Ø×.Ñ.Ó0ˆä  ×!<Ñ!<¸YÈÓ!MÓNÐÛ%ˆDØ×Ñ˜TÕ"ð &ñ Ø—-‘-×-Ñ-ˆCØˆ{Ü&Ð'=Ó>Ð>Ø×/Ñ/°	Ó:ˆFØ×&Ñ& y°V°H¸A¸d¸VÐ2DÓEˆDØ×%Ñ%¤m°YÓ?ˆCã�Ø×(Ñ(¬¸ÓA�Ø×.Ñ.¬s°5«zÓ:�	Ø—‘˜yÔ)Ø—‘ Õ#ð	  ð ×Ñ˜SÔ!Ø×Ñ˜TÔ"à×ÑÕr%   c                 óŠ  — | j                  ||«       | j                  «       }t        |j                  ||«      «      }|D ]  }|j	                  |«       Œ |rÜ| j
                  j                  }|€t        d«      ‚| j                  |«      }|j                  ||› d|› �«      }|j                  t        d«      }	|D ]T  }
|j                  t        d«      }|j                  t        |
«      «      }|j                  |«       |	j                  |«       ŒV |j                  |	«       |j                  |«       | j                  «        y)z.Set or remove sequence values (ordered array).NrU  r6   zrdf:Seqrk  rl  )rX   r   r€   r¹   r‡   re  rf  rZ  rh  Úseqr   r]   ri  s                r#   rÊ   zXmpInformation._set_seq_values¨  rn  r%   c                 óÐ  — | j                  ||«       | j                  «       }t        |j                  ||«      «      }|D ]  }|j	                  |«       Œ |rÿ| j
                  j                  }|€t        d«      ‚| j                  |«      }|j                  ||› d|› �«      }|j                  t        d«      }	|j                  «       D ]i  \  }
}|j                  t        d«      }|j                  d|
«       |j                  t        |«      «      }|j                  |«       |	j                  |«       Œk |j                  |	«       |j                  |«       | j!                  «        y)z*Set or remove language alternative values.NrU  r6   zrdf:Altrk  r®   )r]  r[  r_  r^   r`  rn   rV  r   rb  rW  r_   ÚitemsÚsetAttributerc  rÑ   rY  rd  )rX   r   r€   r¹   r‡   re  rf  rZ  rh  r±   Úlangr   r]   ri  s                 r#   rÙ   z"XmpInformation._set_langalt_valuesÄ  s>  € à×Ñ 	¨4Ô0Ø×.Ñ.Ó0ˆä  ×!<Ñ!<¸YÈÓ!MÓNÐÛ%ˆDØ×Ñ˜TÕ"ð &ñ Ø—-‘-×-Ñ-ˆCØˆ{Ü&Ð'=Ó>Ð>Ø×/Ñ/°	Ó:ˆFØ×&Ñ& y°V°H¸A¸d¸VÐ2DÓEˆDØ×%Ñ%¤m°YÓ?ˆCà%Ÿ|™|ž~‘��eØ×(Ñ(¬¸ÓA�Ø—‘ 
¨DÔ1Ø×.Ñ.¬s°5«zÓ:�	Ø—‘˜yÔ)Ø—‘ Õ#ð  .ð ×Ñ˜SÔ!Ø×Ñ˜TÔ"à×ÑÕr%   c                 ó.   — t         j                  |d«      S )z?Get the appropriate namespace prefix for a given namespace URI.Úunknown)Ú_NAMESPACE_PREFIX_MAPrš   )rX   r   s     r#   rb  z$XmpInformation._get_namespace_prefixá  s   € ä$×(Ñ(¨°IÓ>Ð>r%   c                 ó¤   — | j                   j                  }|€t        d«      ‚|j                  d¬«      }| j                  j                  |«       y)z/Update the stream with the current XML content.NrU  ru   )Úencoding)rn   rV  r   Útoxmlri   rv   )rX   rZ  Úxml_datas      r#   rd  zXmpInformation._update_streamå  sD   € à�m‰m×)Ñ)ˆØˆ;Ü"Ð#9Ó:Ð:à—9‘9 g�9Ó.ˆØ�‰×Ñ˜XÕ&r%   )r   rY   r    )r•   )r   N)BÚ__name__Ú
__module__Ú__qualname__Ú__doc__r   rs   Úclassmethodrz   r   r   rÑ   Úbytesr}   r   r   r‰   r’   Ú
XmlElementra   r$   r   r   r    r_  r§   r«   Údictr²   Úpropertyr¸   ÚsetterrÁ   rÈ   rB   rÎ   rÖ   rÜ   râ   ræ   rì   rð   rô   rø   rü   r   r  r
  r  r  r  r$  r(  r,  r2  r9  r?  rD  rS  r[  r]  rÄ   r¼   rÊ   rÙ   rb  rd  r!   r%   r#   rY   rY   ¤   s|  „ ñð
(˜}ð 
(°ó 
(ð ò	ó ð	ð MQñ,Ø ð,Ø27¸¸cÀ5Ð8HÑ2Ið,à	ó,ðH Sð H°Sð HÀð HÈÐQTÉó Hð	$°ð 	$Àð 	$ÈÐQTÉó 	$ð ð °ó ð +4ñ	àðð ðð ˜S˜E 3˜JÑ'ð	ð
 
�#‰óð, Sð °ð ¸ÀÀcÁÑ8Kó ð& +4ñ	àðð ðð ˜S˜E 3˜JÑ'ð	ð
 
�$�s‘)Ñ	óð:¨Sð ¸ð ÀÈÈcÐSVÈhÉÑ@Xó ð$ ð= ¨¨c©Ñ 3ò =ó ð=ð ×ÑðB X¨d°3©iÑ%8ð B¸Tò Bó ðBð ð@˜X c™]ò @ó ð@ð ×Ñð@ ¨#¡ð @°4ò @ó ð@ð ð=˜H T¨#¡YÑ/ò =ó ð=ð ×Ñð> ¨$¨s©)Ñ!4ð >¸ò >ó ð>ð ðK˜ $ x×'8Ñ'8Ñ"9Ñ:ò Kó ðKð ‡^�^ð
E˜h t¨E°#°x×7HÑ7HÐ2HÑ,IÑ'JÑKð 
EÐPTò 
Eó ð
Eð ðE ¨¨c°3¨h©Ñ 8ò Eó ðEð ×ÑðF X¨d°3¸°8©nÑ%=ð FÀ$ò Fó ðFð ð>˜8 C™=ò >ó ð>ð ×Ñð>˜x¨™}ð >°ò >ó ð>ð ðB˜x¨™}ò Bó ðBð ×ÑðB 8¨C¡=ð B°Tò Bó ðBð ð:˜X d¨3¡iÑ0ò :ó ð:ð ×Ñð? (¨4°©9Ñ"5ð ?¸$ò ?ó ð?ð ð;˜h t¨C¡yÑ1ò ;ó ð;ð ×Ñð@ 8¨D°©IÑ#6ð @¸4ò @ó ð@ð ð:˜X d¨3¡iÑ0ò :ó ð:ð ×Ñð? (¨4°©9Ñ"5ð ?¸$ò ?ó ð?ð ð@˜8 D¨¨c¨¡NÑ3ò @ó ð@ð ×ÑðA ¨¨c°3¨h©Ñ 8ð A¸Tò Aó ðAð ð>˜8 C™=ò >ó ð>ð ×Ñð>˜x¨™}ð >°ò >ó ð>ð ð9˜H T¨#¡YÑ/ò 9ó ð9ð ×Ñð> ¨$¨s©)Ñ!4ð >¸ò >ó ð>ð ð?˜( 4¨¨S¨¡>Ñ2ò ?ó ð?ð ‡_�_ð@˜x¨¨S°#¨X©Ñ7ð @¸Dò @ó ð@ð ð6˜ $ s¡)Ñ,ò 6ó ð6ð ‡^�^ð;˜h t¨C¡yÑ1ð ;°dò ;ó ð;ð ðA˜h s™mò Aó ðAð ×ÑðA (¨3¡-ð A°Dò Aó ðAð ðC ¨¡ò Có ðCð ×ÑðC H¨S¡Mð C°dò Có ðCð ðA˜h s™mò Aó ðAð ×ÑðA (¨3¡-ð A°Dò Aó ðAð ðT ¨(×*;Ñ*;Ñ!<ò Tó ðTð ×ÑðF X¨h×.?Ñ.?Ñ%@ð FÀTò Fó ðFð ðT ¨(×*;Ñ*;Ñ!<ò Tó ðTð ×ÑðF X¨h×.?Ñ.?Ñ%@ð FÀTò Fó ðFð ðV 8¨H×,=Ñ,=Ñ#>ò Vó ðVð ×ÑðH x°×0AÑ0AÑ'Bð HÀtò Hó ðHð ðD (¨3¡-ò Dó ðDð ×ÑðD h¨s¡mð D¸ò Dó ðDð ðE 8¨C¡=ò Eó ðEð ×ÑðE x°¡}ð E¸ò Eó ðEð ðE 8¨C¡=ò Eó ðEð ×ÑðE x°¡}ð E¸ò Eó ðEð ð@˜X c™]ò @ó ð@ð ×Ñð@ ¨#¡ð @°4ò @ó ð@ð ðG H¨S¡Mò Gó ðGð ×ÑðG¨°©ð G¸$ò Gó ðGð ð' 4¨¨S¨¡>ò 'ó ð'ñ<°Cð Àó ð¨Cð °sð ¸tó ð¨3ð °cð À(È3Á-ð ÐTXó ð0¨ð °Cð ÀÈ$ÈsÉ)ÑATð ÐY]ó ð8¨ð °Cð ÀÈ$ÈsÉ)ÑATð ÐY]ó ð8¨Sð ¸ð ÀXÈdÐSVÐX[ÐS[ÉnÑE]ð Ðbfó ð:?¨sð ?°só ?ô'r%   )3r  rB   r>   ÚreÚcollections.abcr   Útypingr   r   r   r   r   Úxml.dom.minidomr	   r
   r   r‚  Úxml.parsers.expatr   Ú
_protocolsr   Ú_utilsr   r   r   Úerrorsr   r   Úgenericr   r   r_   r¶   r  r	  r1  rL  r>  rw  ÚcompileÚVERBOSEr:   r   rw   r$   rÑ   rM   rV   r_  rg   rY   r!   r%   r#   Ú<module>r‘     s®  ðñó Û Û 	Ý $÷õ ÷ 2Ý 1Ý (å .ß VÑ Vß 2ß -à=€Ø1€Ø.€Ø.€Ø3€ð( 1€ð 5Ð ð �$Ø�5Ø�5Ø�WØ�hØ�FðÐ ð ˆ"�*‰*ðð ‡J�Jó!€ñ( ˆCƒL€ðà&˜ð (à#�nð %Ø%�ð 'Ø%�ð 'Ø)Ð*ð +Ø+Ð,ð -Ø'Ð(ð )ð€ð �Qð ˜1ó ð˜3ð  8×#4Ñ#4ó ð6
3 × 1Ñ 1ð 
3°có 
3ð hqñØðØ#3ðØ@CðØPXÐZ]ÐY^Ð`cÐYcÑPdðàˆd�3‰iÑóôH	'Ð+¨Yõ H	'r%   