§
    £”j/x  ã                   ó‚  — d Z 	 ddlZddlZddl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 ddlmZ ddlmZ dd	lmZ dd
lmZ 	 ddlZddlmZ n# e$ r dZY nw xY wd„ ZdZdZej        ZdZdZ dZ!dZ"dZ#dZ$dZ% e&dd¦  «        D ]
Z'e%de'z  z  Z%Œej(        rda)dZ*d„ Z+nej,        Z+ G d„ d¦  «        Z- G d„ de¦  «        Z.dZ/d„ Z0d„ Z1 ed 2                    d„ e/ 3                    ¦   «          4                    ¦   «         D ¦   «         ¦  «        ¦  «        Z5d „ Z6d5d!„Z7d"„ Z8e5ddfd#„Z9d$„ Z:d5d%„Z;d&„ Z<d'„ Z=	 	 	 d6d)„Z> G d*„ d+e-e¦  «        Z?	 	 	 d6d,„Z@	 	 	 d6d-„ZA	 	 	 d6d.„ZBd/„ ZCd0„ ZDeEd1k    rUd2„ ejF        D ¦   «         ZGeGr!d3„ ejF        D ¦   «         e_F         eHeG¦  «        Zd4ejF        v r e=¦   «          dS  eD¦   «          dS dS )7z3.3.0é    N)ÚhexlifyÚ	unhexlify)Úmd5)ÚBytesIO)ÚasBytesÚint2ByteÚrawBytesÚasNative)ÚCanvas)Ú	PDFObject)ÚFlowable)Ú	rl_config)Úsha256c                 óJ   ‡ — ‰ dk    r|S t          ˆ fd„|D ¦   «         ¦  «        S )z9xor's each byte of the key with the number, which is <256r   c              3   ó"   •K  — | ]	}‰|z  V — Œ
d S ©N© )Ú.0ÚkÚnums     €úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/lib/pdfencrypt.pyú	<genexpr>zxorKey.<locals>.<genexpr>   s'   øè è € Ð$Ð$˜1��Q‘Ð$Ð$Ð$Ð$Ð$Ð$ó    )Úbytes)r   Úkeys   ` r   ÚxorKeyr      s3   ø€ à
ˆA‚v€v�cˆzÝÐ$Ð$Ð$Ð$ Ð$Ñ$Ô$Ñ$Ô$Ð$r   é   é   é   é   é   é    é   é   s   ½�Ü«ovpèì\C�’B~¸ôÞEg8²f€Sj'yÏGÊY¹Ü-ÄQˆ¯Ñ÷¡L>™‰i÷Ä´'ékÉú¦p€Íª¯|—÷Ì ÁïÇ—Ò;¯áü,Ó¡æËØæ\H}Ü…á¼Ä>|Å—µT­T•±Ü!¶+E#¡¤Oój˜"ÂËŒHBØB~§7Òè1.×©Ý2}Àÿmž3â/ê„W‚½ÈKÂ;?¾#„`Wóàìž…œËÇÉ#ÿÞê²Ôš½ºz½‡OÔô¬³(z’ü¼…i�û!	|w,‹IÉ_D`A¼}+r-%F(@È\cL2(œ•BM¡‰UG�ýíÎØ±c                 óp   — d„ t          | ¦  «        D ¦   «         }t          |¦  «        }t          | z   dz  a|S )Nc                 ó>   — g | ]}t           |t          z   d z           ‘ŒS )é   )Ú_os_random_bÚ_os_random_x)r   Úis     r   ú
<listcomp>zos_urandom.<locals>.<listcomp>2   s&   € ÐBÐBÐB°A�\˜1�\™>¨3Ñ.Ô/ÐBÐBÐBr   r'   )Úranger   r)   )ÚnÚbs     r   Ú
os_urandomr/   0   s:   € àBÐB½¸q¹¼ÐBÑBÔBˆÝ�!‰HŒHˆÝ$ qÑ(¨CÑ/ˆØˆr   c                   ó@   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zdd„Zd	„ Z	d
„ Z
dS )ÚStandardEncryptionr   Nr   c                 óª  — || _         |r|| _        n|| _        |€t          j        }|dk    rd| _        nQ|dk    rd| _        nC|dk    rt
          st          d¦  «        ‚d| _        nt          d	t          |¦  «        z  ¦  «        ‚|| _        || _	        || _
        || _        dx| _        x| _        x| _        x| _        x| _        x| _        | _        dS )
a*  
        This class defines the encryption properties to be used while creating a pdf document.
        Once initiated, a StandardEncryption object can be applied to a Canvas or a BaseDocTemplate.
        The userPassword parameter sets the user password on the encrypted pdf.
        The ownerPassword parameter sets the owner password on the encrypted pdf.
        The boolean flags canPrint, canModify, canCopy, canAnnotate determine wether a user can
        perform the corresponding actions on the pdf when only a user password has been supplied.
        If the user supplies the owner password while opening the pdf, all actions can be performed regardless
        of the flags.
        Note that the security provided by these encryption settings (and even more so for the flags) is very weak.
        Né(   r   é€   é   r'   úAstrength==256 is not supported as package pyaes is not importableé   úUnknown encryption strength=%s)ÚuserPasswordÚownerPasswordr   ÚencryptionStrengthÚrevisionÚpyaesÚ
ValueErrorÚreprÚcanPrintÚ	canModifyÚcanCopyÚcanAnnotateÚOÚUÚPr   ÚOEÚUEÚPerms)Úselfr9   r:   r@   rA   rB   rC   Ústrengths           r   Ú__init__zStandardEncryption.__init__<   sï   € ð )ˆÔØð 	.Ø!.ˆDÔÐà!-ˆDÔØÐÝ Ô3ˆHØ�rŠ>ˆ>ØˆDŒMˆMØ˜Š_ˆ_ØˆDŒMˆMØ˜Š_ˆ_Ýð fÝ Ð!dÑeÔeÐeØˆDŒMˆMåÐ=ÅÀXÁÄÑNÑOÔOÐOØ ˆŒØ"ˆŒØˆŒØ&ˆÔØPTÐTˆŒÐT�”ÐT˜$œ&ÐT 4¤8ÐT¨d¬gÐT¸¼À$Ä*À*À*r   c                 ó>   — |x| _         x| _        x| _        | _        d S r   )r@   rA   rB   rC   )rJ   Úvalues     r   ÚsetAllPermissionsz$StandardEncryption.setAllPermissions^   s0   € ð !ð	!ˆŒð 	!ØŒð	!àŒØÔÐÐr   c                 ó¦   — d}| j         r
|t          z  }| j        r
|t          z  }| j        r
|t
          z  }| j        r
|t          z  }|t          z  }|S )Nr   )	r@   Ú	printablerA   Ú
modifiablerB   ÚcopypastablerC   ÚannotatableÚ
higherbits)rJ   Úps     r   ÚpermissionBitsz!StandardEncryption.permissionBitsc   sW   € ØˆØŒ=Ð+˜a¥)™m˜!ØŒ>Ð-˜q¥:™~˜1ØŒ<Ð-˜Q¥Ñ-˜ØÔÐ0 ¥[¡˜QØ•
‰NˆØˆr   c                 óª   — | j         st          d¦  «        ‚| j        €t          d¦  «        ‚t          | j        | j        | j        || j        ¬¦  «        S )zencode a string, stream, textúencryption not prepared!Nznot registered in PDF object©r<   )Úpreparedr>   ÚobjnumÚ	encodePDFr   Úversionr<   )rJ   Úts     r   ÚencodezStandardEncryption.encodek   sS   € àŒ}ð 	9ÝÐ7Ñ8Ô8Ð8ØŒ;ÐÝÐ;Ñ<Ô<Ð<Ý˜œ 4¤;°´¸aÈ$Ì-ÐXÑXÔXÐXr   c                 óÈ  — t           dk    rt          d| j        z  ¦  «         | j        rt	          d¦  «        ‚|r|}n6|                     ¦   «         }|j                             ¦   «         }t          rd}t           dk    r@t          d| j	        z  ¦  «         t          d| j
        z  ¦  «         t          d|z  ¦  «         t          |                      ¦   «         dz
  ¦  «        | _        t          rd	| _        t           dk    r$t          d
t          | j        ¦  «        z  ¦  «         | j        dk    �r’d}t!          d¦  «        }t!          d¦  «        }t#          t!          d¦  «        ¦  «        | _        t           dk    rbt          dt'          |¦  «        z  ¦  «         t          dt'          |¦  «        z  ¦  «         t          dt'          | j        ¦  «        z  ¦  «         t)          t#          | j	        d d…         ¦  «        |z   ¦  «        }|                     ¦   «         |z   |z   | _        t           dk    r$t          dt'          | j        ¦  «        z  ¦  «         t)          t#          | j	        d d…         ¦  «        |z   ¦  «        }t-          j        t-          j        |                     ¦   «         |¬¦  «        ¦  «        }	|	                     | j        ¦  «        | _        | xj        |	                     ¦   «         z  c_        t           dk    r$t          dt'          | j        ¦  «        z  ¦  «         t!          d¦  «        }
t!          d¦  «        }t)          t#          | j
        d d…         ¦  «        |
z   | j        z   ¦  «        }|                     ¦   «         |
z   |z   | _        t           dk    r$t          dt'          | j        ¦  «        z  ¦  «         t)          t#          | j
        d d…         ¦  «        |z   | j        z   ¦  «        }t-          j        t-          j        |                     ¦   «         |¬¦  «        ¦  «        }	|	                     | j        ¦  «        | _        | xj        |	                     ¦   «         z  c_        t           dk    r$t          dt'          | j        ¦  «        z  ¦  «         | j        dz  | j        dz	  dz  | j        dz	  dz  | j        dz	  dz  ddddt;          d¦  «        t;          d¦  «        t;          d¦  «        t;          d¦  «        ddddg}t-          j        t-          j        | j        |¬¦  «        ¦  «        }	|	                     t=          |¦  «        ¦  «        | _        | xj        |	                     ¦   «         z  c_        t           dk    r$t          d t'          | j        ¦  «        z  ¦  «         �n
| j        d!v �r tA          | j	        | j
        | j        ¦  «        | _        t           dk    r$t          d"t'          | j        ¦  «        z  ¦  «         tC          | j	        | j        | j        || j        ¬#¦  «        | _        t           dk    r$t          dt'          | j        ¦  «        z  ¦  «         tE          | j        | j        |¬$¦  «        | _        t           dk    r$t          d%t'          | j        ¦  «        z  ¦  «         d x| _#        | _$        d| _        d S )&Né
   z-StandardEncryption.prepare(...) - revision %dzencryption already prepared!ÚxxxxxxxxxxxxxxxxzuserPassword    = %rzownerPassword   = %rzinternalID      = %rl        iÔÿÿÿzself.P          = %sr7   s                   r    r"   zuvs      (hex)  = %szuks      (hex)  = %szself.key (hex)  = %sé   zself.U (hex)  = %s©Úivzself.UE (hex)  = %szself.O (hex)  = %szself.OE (hex)  = %séÿ   r!   é   ÚTÚaÚdr.   r   zself.Perms (hex)  = %s©r   r5   zself.O (as hex) = %srZ   )r<   Ú
documentIdzself.U (as hex) = %s)%ÚDEBUGÚprintr<   r[   r>   ÚIDÚ	signatureÚdigestÚ	CLOBBERIDr9   r:   ÚintrW   rF   ÚCLOBBERPERMISSIONSr?   r/   r   r   ÚhexTextr   rE   r=   Ú	EncrypterÚAESModeOfOperationCBCÚfeedrH   rD   rG   Úordr   rI   ÚcomputeOÚencryptionkeyÚcomputeUr\   r^   )rJ   ÚdocumentÚ
overrideIDÚ
internalIDÚ
externalIDrf   ÚuvsÚuksÚmdÚ	encrypterÚovsÚoksÚpermsarrs                r   ÚpreparezStandardEncryption.preparer   sÛ  € å�"Š9ˆ9•eÐKÈdÌmÑ[Ñ\Ô\Ð\ØŒ=ð 	=ÝÐ;Ñ<Ô<Ð<ð ð 	0Ø#ˆJˆJà!Ÿš™œˆJØ!Ô+×2Ò2Ñ4Ô4ˆJåð 0Ø/�
å�"Š9ˆ9ÝÐ(¨4Ô+<Ñ<Ñ=Ô=Ð=ÝÐ(¨4Ô+=Ñ=Ñ>Ô>Ð>ÝÐ(¨:Ñ5Ñ6Ô6Ð6Ý�T×(Ò(Ñ*Ô*¨UÑ2Ñ3Ô3ˆŒÝÐ+¨˜tœvÝ�"Š9ˆ9ÝÐ(­4°´©<¬<Ñ7Ñ8Ô8Ð8ØŒ=˜AÒÑð ˆBõ ˜Q‘-”-ˆCÝ˜Q‘-”-ˆCõ �z¨"™~œ~Ñ.Ô.ˆDŒHå�bŠyˆyÝÐ,­w°s©|¬|Ñ;Ñ<Ô<Ð<ÝÐ,­w°s©|¬|Ñ;Ñ<Ô<Ð<ÝÐ,­w°t´xÑ/@Ô/@Ñ@ÑAÔAÐAõ � Ô 1°$°3°$Ô 7Ñ8Ô8¸3Ñ>Ñ?Ô?ˆBØ—Y’Y‘[”[ 3Ñ&¨Ñ,ˆDŒFå�bŠyˆyÝÐ*­W°T´V©_¬_Ñ<Ñ=Ô=Ð=õ � Ô 1°$°3°$Ô 7Ñ8Ô8¸3Ñ>Ñ?Ô?ˆBåœ­Ô(CÀBÇIÂIÁKÄKÐTVÐ(WÑ(WÔ(WÑXÔXˆIØ—n’n T¤XÑ.Ô.ˆDŒGØˆGŒG�y—~’~Ñ'Ô'Ñ'ˆGŒGå�bŠyˆyÝÐ+­g°d´gÑ.>Ô.>Ñ>Ñ?Ô?Ð?õ ˜Q‘-”-ˆCÝ˜Q‘-”-ˆCõ � Ô 2°4°C°4Ô 8Ñ9Ô9¸CÑ?À$Ä&ÑHÑJÔJˆBØ—Y’Y‘[”[ 3Ñ&¨Ñ,ˆDŒFå�bŠyˆyÝÐ*­W°T´V©_¬_Ñ<Ñ=Ô=Ð=õ � Ô 2°4°C°4Ô 8Ñ9Ô9¸CÑ?À$Ä&ÑHÑIÔIˆBåœ­Ô(CÀBÇIÂIÁKÄKÐTVÐ(WÑ(WÔ(WÑXÔXˆIØ—n’n T¤XÑ.Ô.ˆDŒGØˆGŒG�y—~’~Ñ'Ô'Ñ'ˆGŒGå�bŠyˆyÝÐ+­g°d´gÑ.>Ô.>Ñ>Ñ?Ô?Ð?ð ”˜tÑ#Ø”˜!‘˜tÑ#Ø”˜"‘˜tÑ#Ø”˜"‘˜tÑ#ØØØØÝ�C‘”Ý�C‘”Ý�C‘”Ý�C‘”ØØØØð!ˆHõ( œ­Ô(CÀDÄHÐQSÐ(TÑ(TÔ(TÑUÔUˆIØ"Ÿš­¨h©¬Ñ8Ô8ˆDŒJØˆJŒJ˜)Ÿ.š.Ñ*Ô*Ñ*ˆJŒJå�bŠyˆyÝÐ.µ¸¼Ñ1DÔ1DÑDÑEÔEÐEùàŒ]˜fÐ$Ñ$Ý˜dÔ/°Ô1CÀTÄ]ÑSÔSˆDŒFå�bŠyˆyÝÐ,­w°t´v©¬Ñ>Ñ?Ô?Ð?õ % TÔ%6¸¼ÀÄÈ
Ð]aÔ]jÐkÑkÔkˆDŒHÝ�bŠyˆyÝÐ,­w°t´xÑ/@Ô/@Ñ@ÑAÔAÐAÝ˜dœh°´È:ÐVÑVÔVˆDŒFÝ�bŠyˆyÝÐ,­w°t´v©¬Ñ>Ñ?Ô?Ð?à%)Ð)ˆŒ�d”lØˆŒˆˆr   c                 óN   — | j         st          d¦  «        ‚|| _        || _        d S )NrY   )r[   r>   r\   r^   )rJ   r\   r^   s      r   ÚregisterzStandardEncryption.registerî   s-   € àŒ}ð 	9ÝÐ7Ñ8Ô8Ð8ØˆŒØˆŒˆˆr   c           	      ó    — | j         st          d¦  «        ‚t          | j        | j        | j        | j        | j        | j        | j	        ¬¦  «        S )NrY   ©rD   rG   rE   rH   rF   rI   r<   )
r[   r>   ÚStandardEncryptionDictionaryrD   rG   rE   rH   rF   rI   r<   ©rJ   s    r   ÚinfozStandardEncryption.infoô   s`   € àŒ}ð 	9ÝÐ7Ñ8Ô8Ð8Ý+¨d¬f¸¼ÀDÄFÈtÌwÐZ^ÔZ`ÐhlÔhrð  ~Bô  ~Kð  Lñ  Lô  Lð  	Lr   )Nr   r   r   r   Nr   )Ú__name__Ú
__module__Ú__qualname__r[   rL   rO   rW   r`   r‰   r‹   r�   r   r   r   r1   r1   :   sž   € € € € € Ø€Hð!Uð !Uð !Uð !UðD!ð !ð !ð
ð ð ðYð Yð Yð{ð {ð {ð {ðxð ð ðLð Lð Lð Lð Lr   r1   c                   ó   — e Zd ZdZd„ Zd„ ZdS )rŽ   r   c                 ón   — ||||||f\  | _         | _        | _        | _        | _        | _        || _        d S r   r�   )rJ   rD   rG   rE   rH   rF   rI   r<   s           r   rL   z%StandardEncryptionDictionary.__init__ü   s9   € Ø@AÀ2ÀqÈ"ÈaÐQVÐ@VÑ=ˆŒ�”˜$œ& $¤'¨4¬6°4´:Ø ˆŒˆˆr   c                 óà  — ddl m}m}m}  |¦   «         } |d¦  «        t	          | j        ¦  «        t	          | j        ¦  «        | j        dœ}| j        dk    rÒd|d<   d|d<   d|d	<   t	          | j        ¦  «        |d
<   t	          | j        ¦  «        |d<   t	          | j	        ¦  «        |d<   t	          | j
        ¦  «        |d<   t	          | j        ¦  «        |d<    |d¦  «        |d<    |d¦  «        |d<   d |d¦  «         |d¦  «        dœ}d ||¦  «        i} ||¦  «        |d<   n%| j        dk    rd|d<   d|d<   d|d	<   n
d|d<   d|d	<    ||¦  «        }	|	                     |¦  «        S )Nr   )ÚDummyDocÚPDFDictionaryÚPDFNameÚStandard)ÚFilterrD   rE   rF   r7   r'   ÚLengthÚRÚVrD   rE   rG   rH   rI   ÚStdCFÚStrFÚStmFr"   ÚDocOpenÚAESV3)rœ   Ú	AuthEventÚCFMÚCFr5   r4   r   r   )Úreportlab.pdfbase.pdfdocr—   r˜   r™   rv   rD   rE   rF   r<   rG   rH   rI   Úformat)
rJ   r~   r—   r˜   r™   ÚdummyÚdictÚstdcfÚcfÚpdfdicts
             r   r¨   z#StandardEncryptionDictionary.formatÿ   s¿  € àMÐMÐMÐMÐMÐMÐMÐMÐMÐMØ�‘
”
ˆØ!˜' *Ñ-Ô-Ý˜TœV‘_”_Ý˜TœV‘_”_Ø”Vðð ˆð Œ=˜AÒÐØ ˆD�‰NØˆD�‰IØˆD�‰IÝ ¤™œˆD�‰IÝ ¤™œˆD�‰IÝ  ¤Ñ)Ô)ˆD�‰JÝ  ¤Ñ)Ô)ˆD�‰JÝ# D¤JÑ/Ô/ˆD�‰MØ"˜7 7Ñ+Ô+ˆD�‰LØ"˜7 7Ñ+Ô+ˆD�‰LàØ$˜W YÑ/Ô/Ø�w˜wÑ'Ô'ðð ˆEð ˜˜ uÑ-Ô-ðˆBð '˜ rÑ*Ô*ˆD�‰JˆJàŒ]˜aÒÐØ ˆD�‰NØˆD�‰IØˆD�‰IˆIàˆD�‰IØˆD�‰IØ�- Ñ%Ô%ˆØ�~Š~˜eÑ$Ô$Ð$r   N)r‘   r’   r“   Ú__RefOnly__rL   r¨   r   r   r   rŽ   rŽ   ú   s7   € € € € € Ø€Kð!ð !ð !ð&%ð &%ð &%ð &%ð &%r   rŽ   za
28 BF 4E 5E 4E 75 8A 41 64 00 4E 56 FF FA 01 08
2E 2E 00 B6 D0 68 3E 80 2F 0C A9 FE 64 53 69 7A
c                 ó~   — dt          t          t          | ¦  «        ¦  «        ¦  «                             ¦   «         z  S )z'a legitimate way to show strings in PDFz<%s>)r
   r   r	   Úupper)Útexts    r   rv   rv   -  s/   € à•H�W¥X¨d¡^¤^Ñ4Ô4Ñ5Ô5×;Ò;Ñ=Ô=Ñ=Ð=r   c                 óŒ   — t          | d         dd¦  «         t          | d         dd¦  «         t          | dd…         ¦  «        S )Nr   ú<zbad hex textéÿÿÿÿú>r   )ÚequalityCheckr   )rv   s    r   Ú	unHexTextr·   1  sD   € Ý�'˜!”*˜c >Ñ2Ô2Ð2Ý�'˜"”+˜s NÑ3Ô3Ð3Ý�W˜Q˜r˜T”]Ñ#Ô#Ð#r   Ú c              #   óP   K  — | ]!}t          t          |d ¦  «        ¦  «        V — Œ"dS )r!   N)Úchrrt   )r   Úcs     r   r   r   6  s0   è è € ÐNÐN°�S¥ Q¨¡¤™_œ_ÐNÐNÐNÐNÐNÐNr   c                 óÂ   — | €\t           j        }|dk    rd} nG|dk    rd} n>|dk    rt          st          d¦  «        ‚d} nt          dt	          |¦  «        z  ¦  «        ‚| S )	Nr3   r   r4   r5   r'   r6   r7   r8   )r   r;   r=   r>   r?   )r<   rK   s     r   ÚcheckRevisionr½   8  sw   € ØÐÝÔ/ˆØ�rŠ>ˆ>ØˆHˆHØ˜Š_ˆ_ØˆHˆHØ˜Š_ˆ_Ýð fÝ Ð!dÑeÔeÐeØˆHˆHåÐ=ÅÀXÁÄÑNÑOÔOÐOØ€Or   c                 ó  — t          |¦  «        }t          | ¦  «        t          z   } | d d…         } |}d}t          d¦  «        D ]!}|dz  }|dz	  }|t	          |dz  ¦  «        z  }Œ"t          t          | ¦  «        ¦  «        }	|	                     t          |¦  «        ¦  «         |	                     t          |¦  «        ¦  «         |	                     t          |¦  «        ¦  «         |	                     ¦   «         }
|dk    r|
d d…         }nC|d	k    r=t          d
¦  «        D ]#}t          |
¦  «                             ¦   «         }
Œ$|
d d…         }t          dk    r/t          dt          d„ | |||||fD ¦   «         ¦  «        z  ¦  «         |S )Nr"   r   r   rg   r    r'   r   r7   r5   é2   r!   rb   z"encryptionkey(%s,%s,%s,%s,%s)==>%sc                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r   ©rv   Ústr©r   Úxs     r   r+   z!encryptionkey.<locals>.<listcomp>e  s>   € ð  FZð  FZð  FZÐZ[ÅgÍcÐRSÉfÌfÁoÄoð  FZð  FZð  FZr   )r½   r   Ú	PadStringr,   r   r   Úupdaterr   rn   ro   Útuple)ÚpasswordÚOwnerKeyÚPermissionsÚFileId1r<   rV   ÚpermissionsStringr*   ÚbyteÚhashÚ	md5outputr   rÄ   s                r   r|   r|   G  sÌ  € Ý˜XÑ&Ô&€Hõ
 �xÑ Ô ¥9Ñ,€Hà˜˜˜Œ}€Hà€AØÐÝ�1‰XŒXð 2ð 2ˆØ�D‘ˆØˆq‰DˆØ�X d¨S¡jÑ1Ô1Ñ1ÐÐå�w�xÑ Ô Ñ!Ô!€DØ‡K‚K•˜Ñ!Ô!Ñ"Ô"Ð"Ø‡K‚K•Ð)Ñ*Ô*Ñ+Ô+Ð+Ø‡K‚K•˜Ñ Ô Ñ!Ô!Ð!à—’‘”€Ià�‚{€{Ø˜˜˜ŒmˆˆØ	�1ŠˆÝ�r‘”ð 	0ð 	0ˆAÝ˜I™œ×-Ò-Ñ/Ô/ˆIˆIØ˜˜˜ŒnˆÝˆb‚y€y•%Ð<½uð  FZð  FZÐ`hÐjrÐtð  BIð  KSð  UXð  `Yð  FZñ  FZô  FZñ  @[ô  @[ñ  [ñ  \ô  \ð  \Ø€Jr   c                 óº  — ddl m} |dv sJ d|z  ¦   «         ‚|s| }t          |¦  «        t          z   }|dd…         }t          | ¦  «        t          z   }|d d…         }t	          |¦  «                             ¦   «         }t          dk    rgt          dt          t          ¦  «        ›dt          |¦  «        ›d	t          |¦  «        ›d
t          |¦  «        ›dt          |¦  «        ›d|›�¦  «         |dk    r' ||d d…         ¦  «         	                    |¦  «        }n…|dk    rt          d¦  «        D ]#}	t	          |¦  «                             ¦   «         }Œ$|d d…         }|}t          d¦  «        D ]0}	t          |	|¦  «        }
 ||
¦  «         	                    |¦  «        }Œ1t          dk    r-t          dt          d„ | |||fD ¦   «         ¦  «        z  ¦  «         |S )Nr   ©ÚArcIVrl   zUnknown algorithm revision %sr"   rb   z
PadString=z

ownerPad=z

password=z	
userPad=z
digest=z

revision=r   r7   r5   r¿   r!   é   zcomputeO(%s,%s,%s)==>%sc                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r   rÁ   rÃ   s     r   r+   zcomputeO.<locals>.<listcomp>�  s$   € Ð:~Ð:~Ð:~Èq½7Å3ÀqÁ6Ä6¹?¼?Ð:~Ð:~Ð:~r   )Úreportlab.lib.arcivrÒ   r   rÅ   r   rr   rn   ro   Úasciir`   r,   r   rÇ   )r9   r:   r<   rÒ   ÚownerPadrÈ   ÚuserPadrr   rD   r*   ÚthisKeys              r   r{   r{   h  s†  € Ø)Ð)Ð)Ð)Ð)Ð)à�uÐÐÐÐ=ÀÑHÑÔÐØð %Ø$ˆå�}Ñ%Ô%­	Ñ1€HØ˜˜"˜Œ~€Hå�|Ñ$Ô$¥yÑ0€HØ�s˜�sŒm€Gå�‰]Œ]×!Ò!Ñ#Ô#€FÝˆb‚y€y•%�%ÕhmÕnwÑhxÔhxÐhxÐhxÕy~ð  @Hñ  zIô  zIð  zIð  zIõ  JOð  PXñ  JYô  JYð  JYð  JYõ  Z_ð  `gñ  Zhô  Zhð  Zhð  Zhõ  inð  ouñ  ivô  ivð  ivð  ivð  wð  wð  @ñ  Aô  Að  AØ�1‚}€}ØˆE�&˜˜!˜”*ÑÔ×$Ò$ WÑ-Ô-ˆˆØ	�QŠˆÝ�r‘”ð 	*ð 	*ˆAÝ˜‘[”[×'Ò'Ñ)Ô)ˆFˆFØ˜˜˜”ˆØˆÝ�r‘”ð 	)ð 	)ˆAÝ˜Q Ñ'Ô'ˆGØ��g‘”×%Ò% aÑ(Ô(ˆAˆAÝˆb‚y€y•%Ð1µEÐ:~Ð:~ÐUaÐcpÐrzÐ{|ÐT}Ð:~Ñ:~Ô:~Ñ4Ô4Ññ  Aô  Að  AØ€Hr   c                 ó¼  — t          |¦  «        }ddlm} |dk    r || ¦  «                             |¦  «        }nè|dk    râ|€
J d¦   «         ‚t	          t
          ¦  «        }|                     t          |¦  «        ¦  «         |                     ¦   «         } || ¦  «                             |¦  «        }t          dd¦  «        D ]0}t          || ¦  «        }	 ||	¦  «                             |¦  «        }Œ1t          |¦  «        dk     r|d	z  }t          |¦  «        dk     °|}t          d
k    r.t          dt          d„ | ||||fD ¦   «         ¦  «        z  ¦  «         |S )Nr   rÑ   r   r5   z+Revision 3 algorithm needs the document ID!r   rÓ   r"   ó    rb   zcomputeU(%s,%s,%s,%s)==>%sc                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r   rÁ   rÃ   s     r   r+   zcomputeU.<locals>.<listcomp>•  s7   € ð  >Qð  >Qð  >QÐRS½gÅcÈ!ÁfÄf¹o¼oð  >Qð  >Qð  >Qr   )r½   rÕ   rÒ   r`   r   rÅ   rÆ   r	   rr   r,   r   Úlenrn   ro   rÇ   )
r|   Úencodestringr<   rm   rÒ   ÚresultÚhÚtmpr-   rÙ   s
             r   r}   r}   „  sœ  € Ý˜XÑ&Ô&€HØ)Ð)Ð)Ð)Ð)Ð)Ø�1‚}€}Ø��}Ñ%Ô%×,Ò,¨\Ñ:Ô:ˆˆØ	�QŠˆØÐ%Ð%Ð'TÑ%Ô%Ð%Ý•	‰NŒNˆØ	�Š•˜*Ñ%Ô%Ñ&Ô&Ð&Ø�hŠh‰jŒjˆØˆe�MÑ"Ô"×)Ò)¨#Ñ.Ô.ˆÝ�q˜‘”ð 	-ð 	-ˆAÝ˜Q Ñ.Ô.ˆGØ�%˜‘.”.×'Ò'¨Ñ,Ô,ˆCˆCÝ�#‰hŒh˜ŠmˆmØ�5‰LˆCõ �#‰hŒh˜ŠmˆmàˆÝˆb‚y€y•%Ð4µuð  >Qð  >QÐXeÐgsÐt|ð  ~Hð  IOð  XPð  >Qñ  >Qô  >Qñ  8Rô  8Rñ  Rñ  Sô  Sð  SØ€Mr   c                 óÂ   — t          | |¦  «        }|t          k    rCt          |¦  «        t          t          ¦  «        k    rt          d¦  «        ‚t          d¦  «        ‚d S )Nz&lengths don't match! (password failed)z;decode of U doesn't match fixed padstring (password failed))r}   rÅ   rÝ   r>   )r|   rE   Údecodeds      r   ÚcheckUrä   ˜  sY   € Ý�} aÑ(Ô(€Gà•	ÒÐÝˆw‰<Œ<��Y™œÒ'Ð'ÝÐEÑFÔFÐFÝÐVÑWÔWÐWð Ðr   c                 óê  — t          |¦  «        }|dv r½| }|}t          d¦  «        D ]}|t          |dz  ¦  «        z  }|dz	  }Œ|}t          d¦  «        D ]}|t          |dz  ¦  «        z  }|dz	  }Œt          |¦  «                             ¦   «         }|dk    r|dd…         } n|dk    r|} dd	lm}	  |	| ¦  «                             |¦  «        }
nè|d
k    rât          d¦  «        }t          j
        t          j        | |¬¦  «        ¦  «        }t          |¦  «        }d}|dk    rd|dz  z
  nd|z
  }|dk    rt          |¦  «        |z  }t          |t          ¦  «        r||z                        d¦  «        }n|t!          |¦  «        z  }||                     |¦  «        z   }
|
|                     ¦   «         z  }
t$          dk    r/t'          dt)          d„ | |||||
fD ¦   «         ¦  «        z  ¦  «         |
S )zEncodes a string or streamrl   r5   rg   r    r   Nrb   r   rÑ   r7   r!   re   r¸   zutf-8zencodePDF(%s,%s,%s,%s,%s)==>%sc                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r   rÁ   rÃ   s     r   r+   zencodePDF.<locals>.<listcomp>Ë  s=   € ð  B^ð  B^ð  B^ÐVWÅ'Í#ÈaÉ&Ì&Á/Ä/ð  B^ð  B^ð  B^r   )r½   r,   r   r   rr   rÕ   rÒ   r`   r/   r=   rw   rx   rÝ   rº   Ú
isinstancerÂ   r   ry   rn   ro   rÇ   )r   ÚobjectNumberÚgenerationNumberÚstringr<   Únewkeyr-   r*   rÏ   rÒ   Ú	encryptedrf   r…   Ú
string_lenÚpaddingÚpadding_lens                   r   r]   r]      sl  € å˜XÑ&Ô&€Hð �5ÐÐØˆØˆÝ�q‘”ð 	ð 	ˆAØ•h˜q 4™xÑ(Ô(Ñ(ˆFØ�1‘ˆAˆAàˆÝ�q‘”ð 	ð 	ˆAØ•h˜q 4™xÑ(Ô(Ñ(ˆFØ�1‘ˆAˆAÝ˜‘K”K×&Ò&Ñ(Ô(ˆ	Ø�qŠ=ˆ=Ø˜C˜R˜C”.ˆCˆCØ˜Š]ˆ]ØˆCØ-Ð-Ð-Ð-Ð-Ð-Ø�E˜#‘J”J×%Ò% fÑ-Ô-ˆ	ˆ	à	�QŠˆÝ˜‰^Œ^ˆÝ”O¥EÔ$?ÀÈÐ$KÑ$KÔ$KÑLÔLˆ	õ ˜‘[”[ˆ
ØˆØ2<¸r²/°/�r˜Z¨"™_Ñ-Ð-ÈÈZÉˆØ˜Š?ˆ?Ý˜+Ñ&Ô&¨Ñ4ˆGå�f�cÑ"Ô"ð 	'Ø˜wÑ&×.Ò.¨wÑ7Ô7ˆFˆFà•g˜gÑ&Ô&Ñ&ˆFà˜Ÿš¨Ñ/Ô/Ñ/ˆ	Ø�Y—^’^Ñ%Ô%Ñ%ˆ	åˆb‚y€y•%Ð8½5ð  B^ð  B^Ð\_ÐamÐoð  BHð  JRð  S\ð  \]ð  B^ñ  B^ô  B^ñ  <_ô  <_ñ  _ñ  `ô  `ð  `ØÐr   c                 ó6   — | |k    sJ |›d|›d| ›�¦   «         ‚d S )Nz
 expected=z
 observed=r   )ÚobservedÚexpectedÚlabels      r   r¶   r¶   Î  s4   € Ø�XÒÐÐÀ%À%À%ÈÈÈÐQYÐQYÐZÑÔÐÐÐr   c                  óf  — t          ddd¬¦  «        } |                      d d¬¦  «         d}d}d	}t          t          | j        ¦  «        |d
¦  «         t          t          | j        ¦  «        |d¦  «         t          t          | j        ¦  «        |d¦  «         t          ddd¬¦  «        } |                      d d¬¦  «         d}d}d}t          t          | j        ¦  «        |d¦  «         t          t          | j        ¦  «        |d¦  «         t          t          | j        ¦  «        |d¦  «         d S )NÚUserÚOwnerr3   ©rK   rc   )r   zB<FA7F558FACF8205D25A7F1ABFA02629F707AE7B0211A2BB26F5DF4C30F684301>zB<09F26CF46190AF8F93B304AD50C16B615DC43C228C9B2D2EA34951A80617B2B1>z<BB2C00EB3D>z40 bit O valuez40 bit U valuez40 bit key valueÚuserpassÚ	ownerpassr4   zB<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>zB<A9AE45CDE827FE0B7D6536267948836A00000000000000000000000000000000>z"<13DDE7585D9BE366C976DDD56AF541D1>z128 bit O valuez128 bit U valuez128 key value)r1   r‰   r¶   rv   rD   rE   r   )ÚencÚ	expectedOÚ	expectedUÚexpectedKeys       r   Útestrþ   Õ  s#  € å
˜V G°bÐ
9Ñ
9Ô
9€CØ‡K‚K�Ð!3€KÑ4Ô4Ð4àT€IØT€IØ €Kå•'˜#œ%‘.”. Ð,<Ñ=Ô=Ð=Ý•'˜#œ%‘.”. Ð,<Ñ=Ô=Ð=Ý•'˜#œ'Ñ"Ô" ;Ð0BÑCÔCÐCõ ˜Z¨¸cÐ
BÑ
BÔ
B€CØ‡K‚K�Ð#5€KÑ6Ô6Ð6àT€IØT€IØ6€Kå•'˜#œ%‘.”. )Ð->Ñ?Ô?Ð?Ý•'˜#œ%‘.”. )Ð->Ñ?Ô?Ð?Ý•'˜#œ'Ñ"Ô" K°ÑAÔAÐAÐAÐAr   r3   c           	      óJ   — t          |||||||¬¦  «        }|| j        _        dS )z2Applies encryption to the document being generatedr÷   N)r1   Ú_docÚencrypt)	Úcanvasr9   r:   r@   rA   rB   rC   rK   rú   s	            r   ÚencryptCanvasr  ô  s:   € õ ˜\¨=Ø% y°'¸;Ø&.ð0ñ 0ô 0€Cð €F„KÔÐÐr   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚEncryptionFlowablez’Drop this in your Platypus story and it will set up the encryption options.

    If you do it multiple times, the last one before saving will win.c                 ó   — dS )N)r   r   r   )rJ   Ú
availWidthÚavailHeights      r   ÚwrapzEncryptionFlowable.wrap  s   € Øˆur   c           	      óv   — t          | j        | j        | j        | j        | j        | j        | j        ¦  «         d S r   )r  Úcanvr9   r:   r@   rA   rB   rC   r�   s    r   ÚdrawzEncryptionFlowable.draw	  sC   € Ý�d”iØÔ'ØÔ(Ø”mØ”nØ”lØÔ&ñ	(ô 	(ð 	(ð 	(ð 	(r   N)r‘   r’   r“   Ú__doc__r	  r  r   r   r   r  r    s>   € € € € € ðIð Iðð ð ð(ð (ð (ð (ð (r   r  c                 ó    — t          d¦  «        ‚)z*For use in Platypus.  Call before build().zNot implemented yet)Ú	Exception)Údtr9   r:   r@   rA   rB   rC   rK   s           r   ÚencryptDocTemplater    s   € õ
 Ð)Ñ
*Ô
*Ð*r   c           
      óp  — 	 ddl m}m}	 n# t          $ r t          d¦  «        ‚w xY w || dd¬¦  «        \  }
}t	          |
                     ¦   «         ¦  «        }|
d         dd…         }t          ¦   «         }t          ||¬	¦  «        }t          rd
|j	        _
         |	||¦  «        }|D ]N}|                     |
|         dd…         ¦  «         |                     |¦  «         |                     ¦   «          ŒOt          ||||||||¬¦  «         |                     ¦   «          |                     ¦   «         S )a  accepts a PDF file 'as a byte array in memory'; return encrypted one.

    This is a high level convenience and does not touch the hard disk in any way.
    If you are encrypting the same file over and over again, it's better to use
    pageCatcher and cache the results.r   )ÚstoreFormsInMemoryÚrestoreFormsInMemoryz~reportlab.lib.pdfencrypt.encryptPdfInMemory failed because rlextra cannot be imported.
See https://www.reportlab.com/downloadsr   )ÚallÚBBoxesÚ
PageForms0r   N)Úpagesizez&[(xxxxxxxxxxxxxxxx)(xxxxxxxxxxxxxxxx)]r÷   )Úrlextra.pageCatcher.pageCatcherr  r  ÚImportErrorÚlistÚkeysr   r   rs   r   Ú_IDÚsetPageSizeÚdoFormÚshowPager  ÚsaveÚgetvalue)ÚinputPDFr9   r:   r@   rA   rB   rC   rK   r  r  ÚbboxInfoÚpickledFormsÚnamesÚfirstPageSizeÚbufr  Ú	formNamesÚformNames                     r   ÚencryptPdfInMemoryr+    sv  € ð,Ø\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\øÝð ,ð ,ð ,Ýð +ñ ,ô ,ð 	,ð,øøøð  2Ð1°(ÀÈ!ÐLÑLÔLÑ€Xˆ|Ý�—’‘”Ñ!Ô!€Eà˜\Ô*¨1¨2¨2Ô.€Mõ ‰)Œ)€CÝ�# Ð.Ñ.Ô.€Dõ ð AØ@ˆŒ	Œà$Ð$ \°4Ñ8Ô8€IØð ð ˆØ×Ò˜ (Ô+¨A¨B¨BÔ/Ñ0Ô0Ð0Ø�Š�HÑÔÐØ�Š‰ŒˆˆÝ�$Ø Ø˜I w°Ø#ð%ñ %ô %ð %ð 	‡I‚I�K„K€KØ�<Š<‰>Œ>Ðs   ‚ ‹%c	           
      óØ   — t          | d¦  «                             ¦   «         }	t          |	|||||||¬¦  «        }
t          |d¦  «                             |
¦  «         t	          |
¦  «        S )z>Creates encrypted file OUTPUTFILENAME.  Returns size in bytes.Úrbr÷   Úwb)ÚopenÚreadr+  ÚwriterÝ   )ÚinputFileNameÚoutputFileNamer9   r:   r@   rA   rB   rC   rK   r#  Ú	outputPDFs              r   ÚencryptPdfOnDiskr5  E  sr   € õ �M 4Ñ(Ô(×-Ò-Ñ/Ô/€HÝ" 8Ø Ø˜I w°Ø,4ð6ñ 6ô 6€Iõ 	ˆ˜ÑÔ×$Ò$ YÑ/Ô/Ð/Ýˆy‰>Œ>Ðr   c                  óh	  — t           j        d d …         } d}g d¢}d}d}d}d}d}d}d}	| d         }
t          | ¦  «        dd …         }t          |¦  «        dk    �rG|d         dk    s|d         dk    rt	          |¦  «         d S t          |¦  «        d	k     rt          d
¦  «        ‚|d         |vrD|d         }|dd …         }t          j                             |¦  «        st          d|z  ¦  «        ‚nt          d¦  «        ‚d}dD ]%\  }}|D ]}||v r|}| 	                    |¦  «         ŒŒ&d|v sd|v rŽd|v r| 
                    d¦  «        }d}nd|v r| 
                    d¦  «        }d}	 t          ||dz            ¦  «        }n	#  d}Y nxY w| 	                    ||dz            ¦  «         | 	                    |¦  «         nddlm} dd|dfdd|dfdd|dfdd|dfdd|dfdd|dfdd|d fd!d|d fd"d#|d$fd%d#|d$fd&d'|d(fd)d'|d(fd*d+|	d,fd-d+|	d,ff}d.}|D �],}|d         |v �r| 
                    |d         ¦  «        }|d         |v r%||dz            d/vrt          d0|d         z  ¦  «        ‚	 ||dz            |vr´|d         |v r&t          |d         d1z   t          ¦   «         ¦  «         n%t          |d         d2z   t          ¦   «         ¦  «         |r$t	          |d3         ›d4||dz            ›d5�¦  «         | 	                    ||dz            ¦  «         | 	                    |d         ¦  «         �Œ#  d6|d3         z  ‚xY w�Œ.|d7k    r°t	          d8|¦  «         t	          d9|¦  «         t	          d:|	¦  «         t	          d;|¦  «         t	          d<|¦  «         t	          d=|¦  «         t	          d>|¦  «         t	          d?|¦  «         t	          d@|¦  «         t	          d:|	¦  «         t	          dA|¦  «         |	dk    r.|dBd …         dCk    s|dBd …         dDk    r|d dB…         }n|}|dEz   }	t!          ||	|||||||¬F¦	  «	        }|rt	          dG|	›dH|›dI|›dJ|›dK�	¦  «         t          |¦  «        dk    r*t          dLt#          |¦  «        ddM…         ›dN|›�¦  «        ‚d S t	          |¦  «         d S )ONan  PDFENCRYPT USAGE:

PdfEncrypt encrypts your PDF files.

Line mode usage:

% pdfencrypt.exe pdffile [-o ownerpassword] | [owner ownerpassword],
	[-u userpassword] | [user userpassword],
	[-p 1|0] | [printable 1|0],
	[-m 1|0] | [modifiable 1|0],
	[-c 1|0] | [copypastable 1|0],
	[-a 1|0] | [annotatable 1|0],
	[-s savefilename] | [savefile savefilename],
	[-v 1|0] | [verbose 1|0],
	[-e128], [encrypt128],
	[-h] | [help]

-o or owner set the owner password.
-u or user set the user password.
-p or printable set the printable attribute (must be 1 or 0).
-m or modifiable sets the modifiable attribute (must be 1 or 0).
-c or copypastable sets the copypastable attribute (must be 1 or 0).
-a or annotatable sets the annotatable attribute (must be 1 or 0).
-s or savefile sets the name for the output PDF file
-v or verbose prints useful output to the screen.
      (this defaults to 'pdffile_encrypted.pdf').
'-e128' or 'encrypt128' allows you to use 128 bit encryption (in beta).
'-e256' or 'encrypt256' allows you to use 256 bit encryption (in beta AES).

-h or help prints this message.

See PdfEncryptIntro.pdf for more information.
)ú-oÚownerú-uÚuserú-prQ   ú-mrR   ú-crS   ú-arT   ú-sÚsavefileú-vÚverboseú-hÚhelpú-e128Ú
encrypt128ú-e256Ú
encryptAESr¸   r   zencrypted.pdfr   rC  rD  r   z2Must include a filename and one or more arguments!zCan't open input file '%s'!z2First argument must be name of the PDF input file!r3   ))r4   )rE  rF  )r'   )rG  Ú
encrypt256rA  rB  )rB  r7  ÚOWNERzOwner passwordr8  r9  ÚUSERzUser passwordr:  r;  Ú	PRINTABLEz'Printable'rQ   r<  Ú
MODIFIABLEz'Modifiable'rR   r=  ÚCOPYPASTABLEz'Copypastable'rS   r>  ÚANNOTATABLEz'Annotatable'rT   r?  ÚSAVEFILEzOutput filer@  )r;  rQ   r<  rR   rS   r=  rT   r>  )Ú1Ú0z#%s value must be either '1' or '0'!z = int(argv[pos+1])z = argv[pos+1]r5   z
 set to: 'z'.zUnable to set %s.r   z
infile:z	STRENGTH:z	SAVEFILE:zUSER:zOWNER:z
PRINTABLE:zMODIFIABLE:zCOPYPASTABLE:zANNOTATABLE:zVERBOSE:éüÿÿÿz.pdfz.PDFz_encrypted.pdfr÷   zwrote output file 'z'(z bytes)
  owner password is 'z'
  user password is 'ú'z
Unrecognised arguments : r´   z
known arguments are:
)ÚsysÚargvr  rÝ   ro   r>   ÚosÚpathÚisfileÚremoveÚindexrt   Úreportlab.rl_configrB  ÚexecÚvarsr5  rÂ   )Úsys_argvÚusageÚknown_modesrJ  rK  rL  rM  rN  rO  rP  ÚcallerrV  ÚinfileÚSTRENGTHÚsÚ_arj   ÚposÚargrB  ÚarglistÚbinaryrequiredÚthisargÚtinfileÚfilesizes                            r   ÚscriptInterprn  T  sD  € ÝŒx˜˜˜Œ{€Hð €EðDð ð €Kð €EØ€DØ€IØ€JØ€LØ€KØ"€Hð �aŒ[€FÝ�‰>Œ>˜!˜"˜"Ô€DÝ
ˆ4�y„y�‚{�{Ø�Œ7�dŠ?ˆ?˜d 1œg¨Ò/Ð/Ý�%‰LŒLˆLØˆFÝˆt‰9Œ9�QŠ;ˆ;ÝÐQÑRÔRÐRØ�Œ7˜+Ð%Ð%Ø˜!”WˆFØ˜˜˜”8ˆDÝ”7—>’> &Ñ)Ô)ð IÝ Ð!>ÀÑ!GÑHÔHÐHðIõ ÐQÑRÔRÐRð ˆØQð 	#ð 	#‰FˆQˆrØð #ð #�Ø˜�9�9Ø �HØ—K’K ‘N”N�Nøð#ð
 �DˆLˆL˜i¨4Ð/Ð/Ø�tˆ|ˆ|Ø—j’j Ñ&Ô&�Ø��Ø˜dÐ"Ð"Ø—j’j Ñ+Ô+�Ø�ðÝ˜d 3 q¡5œkÑ*Ô*��øðØ���øøøØ�KŠK˜˜S ™UœÑ$Ô$Ð$Ø�KŠK˜ÑÔÐÐà3Ð3Ð3Ð3Ð3Ð3ð ˜' 5Ð*:Ð;Ø˜W eÐ-=Ð>Ø˜& $¨Ð8Ø˜F D¨/Ð:Ø˜+ y°-Ð@Ø ¨i¸ÐGØ˜,¨
°NÐCØ  ,°¸^ÐLØ˜.¨,Ð8HÐIØ" N°LÐBRÐSØ˜-¨°oÐFØ! =°+¸ÐOØ˜* h°Ð>Ø 
¨H°mÐDðˆð  lˆàð 	;ñ 	;ˆGØ�qŒz˜TÐ!Ñ!Ø—j’j ¨¤Ñ,Ô,�Ø˜1”: Ð/Ð/Ø˜C ™E”{¨*Ð4Ð4Ý(Ð)NÐQXÐYZÔQ[Ñ)[Ñ\Ô\Ð\ð;Ø˜C ™E”{¨+Ð5Ð5Ø" 1œ:¨Ð7Ð7Ý  ¨¤Ð-BÑ!BÅ4Á6Ä6ÑJÔJÐJÐJå  ¨¤Ð-=Ñ!=½d¹f¼fÑEÔEÐEØ"ð RÝ!¸À¼
¸
¸
ÀDÈÈQÉÄKÀKÀKÐ"PÑQÔQÐQØŸš D¨¨Q©¤KÑ0Ô0Ð0ØŸš G¨A¤JÑ/Ô/Ð/ùøð;Ø-°¸´
Ñ:Ð:øøøñ! "ð$ �1Š9ˆ9å�+˜vÑ&Ô&Ð&Ý�+˜xÑ(Ô(Ð(Ý�+˜xÑ(Ô(Ð(Ý�'˜4Ñ Ô Ð Ý�(˜EÑ"Ô"Ð"Ý�, 	Ñ*Ô*Ð*Ý�- Ñ,Ô,Ð,Ý�/ <Ñ0Ô0Ð0Ý�. +Ñ.Ô.Ð.Ý�+˜xÑ(Ô(Ð(Ý�*˜gÑ&Ô&Ð&ð �Ò&Ð&Ø�b�c�cŒ{˜fÒ$Ð$¨¨r¨s¨s¬°vÒ(=Ð(=Ø   " œ+��à �ØÐ/Ñ/ˆHå# F¨H°d¸EØ˜Z¨°{Ø-5ð7ñ 7ô 7ˆð ð 	MÝˆEÐksÐksÐksÐu}Ðu}Ðu}ð  @Eð  @Eð  @Eð  GKð  GKð  GKð  Lñ  Mô  Mð  Måˆt‰9Œ9�QŠ;ˆ;Ý�*ÕZ]Ð^bÑZcÔZcÐdeÐfhÐdhÔZiÐZiÐZiÐkvÐkvÐwÑxÔxÐxð ˆ;õ 	ˆe‰Œˆˆˆs   Å.F ÆFÉ/CL2Ì2L?c                  ó"   — t          ¦   «          d S r   )rn  r   r   r   Úmainrp  ÿ  s   € Ý�N„N€N€N€Nr   Ú__main__c                 ó.   — g | ]}|d d…         dk    ¯|‘ŒS ©Né   z--debugr   rÃ   s     r   r+   r+     s*   € Ð1Ð1Ð1ˆq  " 1 "¤ yÒ 0Ð 0ˆÐ 0Ð 0Ð 0r   c                 ó.   — g | ]}|d d…         dk    ¯|‘ŒS rs  r   rÃ   s     r   r+   r+     s*   € Ð<Ð<Ð<˜!¨1¨R¨a¨R¬5°)Ò+;Ð+;�AÐ+;Ð+;Ð+;r   z--testr   )Nr   r   r   r   r3   )IÚ__version__rU  rW  Úbinasciir   r   Úhashlibr   Úior   Úreportlab.lib.utilsr   r   r	   r
   Úreportlab.pdfgen.canvasr   r§   r   Úreportlab.platypus.flowablesr   Ú	reportlabr   r=   r   r  r   rs   ru   Údebugrn   Ú	reserved1Ú	reserved2rQ   rR   rS   rT   rU   r,   r*   Ú	invariantr)   r(   r/   Úurandomr1   rŽ   rî   rv   r·   ÚjoinÚstripÚsplitrÅ   r½   r|   r{   r}   rä   r]   r¶   rþ   r  r  r  r+  r5  rn  rp  r‘   rV  rj   rÝ   r   r   r   ú<module>r†     sf  ðð €à +Ø €€€€€€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð ðØ€L€L€LØÐÐÐÐÐÐøØð ð ð Ø€E€E€Eðøøøð%ð %ð %ð €	ØÐ ØŒ€ð €	Ø€	Ø€	Ø€
Ø€Ø€à€
Ø	ˆˆq�‰Œð %ð %€AØ˜q !™tÑ$€J€JàÔð 
Ø€Lð |€Lðð ð ð ð ”€Jð~Lð ~Lð ~Lð ~Lð ~Lñ ~Lô ~Lð ~Lð@+%ð +%ð +%ð +%ð +% 9ñ +%ô +%ð +%ð\€ð
>ð >ð >ð$ð $ð $ð
 ˆH�R—W’WÐNÐN°g·m²m±o´o×6KÒ6KÑ6MÔ6MÐNÑNÔNÑNÔNÑOÔO€	ðð ð ðð ð ð ðBð ð ð8 *3¸DÈDð ð ð ð ð(Xð Xð Xð,ð ,ð ,ð ,ð\[ð [ð [ðBð Bð Bð@ /3ØBCØð	ð 	ð 	ð 	ð(ð (ð (ð (ð (Ð+¨Xñ (ô (ð (ð( /3ØBCØ "ð+ð +ð +ð +ð /3ØBCØ "ð'ð 'ð 'ð 'ðT /3ØBCØ ðð ð ð ðið ið iðVð ð ð ˆZÒÐØ1Ð1�C”HÐ1Ñ1Ô1€AØð Ø<Ð<˜sœxÐ<Ñ<Ô<ˆŒØ��A‘”ˆØ�3”8ÐÐ˜T˜T™VœV˜V˜V˜VØ
ˆ$‰&Œ&ˆ&ˆ&ˆ&ð Ðs   Á
A ÁAÁA