Ë
    £ëi_-  ã                   ó‚   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ d	d
lmZ  G d„ dej                  «      Zy)zPDF stream.é    )ÚcontextmanagerNé   )ÚLOGGER)ÚMatrix)Úffi)Úget_pango_font_keyé   )ÚFontc                   ó  ‡ — e Zd ZdZˆ fd„Zd„ Zed„ «       Zˆ fd„Zˆ fd„Z	dˆ fd„	Z
ˆ fd„Zˆ fd	„Zdd
„Zˆ fd„Zˆ fd„Zdˆ fd„	Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zeˆ fd„«       Zeˆ fd„«       Zed„ «       Zed„ «       Zˆ xZS )ÚStreamz&PDF stream object with extra features.c                 ó¤  •— t        ‰	| �  |i |¤Ž || _        || _        || _        || _        || _        || _        d x| _        | _	        d x| _
        | _        d x| _        | _        d x| _        | _        t!        «       g| _        t%        j&                  d«      | _        t%        j&                  d«      | _        t%        j&                  d«      | _        y )Nzunsigned int *zPangoRectangle *)ÚsuperÚ__init__Úpage_rectangleÚ_fontsÚ
_resourcesÚ_imagesÚ_tagsÚ_color_profilesÚ_current_colorÚ_current_color_strokeÚ_current_alphaÚ_current_alpha_strokeÚ_current_fontÚ_current_font_sizeÚ	_old_fontÚ_old_font_sizer   Ú
_ctm_stackr   ÚnewÚlengthÚink_rectÚlogical_rect)
ÚselfÚfontsr   Ú	resourcesÚimagesÚtagsÚcolor_profilesÚargsÚkwargsÚ	__class__s
            €úU/var/www/html/chat/reports/venv/lib/python3.12/site-packages/weasyprint/pdf/stream.pyr   zStream.__init__   sÁ   ø€ ä‰Ñ˜$Ð) &Ò)Ø,ˆÔØˆŒØ#ˆŒØˆŒØˆŒ
Ø-ˆÔØ;?Ð?ˆÔ˜dÔ8Ø;?Ð?ˆÔ˜dÔ8Ø7;Ð;ˆÔ˜TÔ4Ø/3Ð3ˆŒ˜Ô,Ü!›8˜*ˆŒô —g‘gÐ.Ó/ˆŒÜŸ™Ð 2Ó3ˆŒÜŸG™GÐ$6Ó7ˆÕó    c                 ó"  — d|vr| j                   |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j
                  |d<   d|vr| j                  |d<   t        di |¤ŽS )	Nr$   r   r%   r&   r'   r(   Úcompress© )r   r   r   r   r   r   r/   r   )r#   r*   s     r,   ÚclonezStream.clone$   s®   € Ø˜&Ñ Ø"Ÿk™kˆF�7‰OØ 6Ñ)Ø'+×':Ñ':ˆFÐ#Ñ$Ø˜fÑ$Ø"&§/¡/ˆF�;ÑØ˜6Ñ!Ø#Ÿ|™|ˆF�8ÑØ˜ÑØ!ŸZ™ZˆF�6‰NØ 6Ñ)Ø'+×';Ñ';ˆFÐ#Ñ$Ø˜VÑ#Ø!%§¡ˆF�:ÑÜÑ˜ÑÐr-   c                 ó    — | j                   d   S ©Néÿÿÿÿ)r   ©r#   s    r,   Úctmz
Stream.ctm5   s   € à�‰˜rÑ"Ð"r-   c                 ól   •— t         ‰| �  «        | j                  j                  | j                  «       y ©N)r   Ú
push_stater   Úappendr6   ©r#   r+   s    €r,   r9   zStream.push_state9   s$   ø€ Ü‰ÑÔØ�‰×Ñ˜tŸx™xÕ(r-   c                 ó*  •— | j                   r-| j                   d   dk(  r| j                   j                  «        nt        ‰| �  «        d x| _        | _        d x| _        | _        d | _        | j                  j                  «        | j                  sJ ‚y )Nr4   ó   q)
ÚstreamÚpopr   Ú	pop_stater   r   r   r   r   r   r;   s    €r,   r@   zStream.pop_state=   sv   ø€ Ø�;Š;˜4Ÿ;™; r™?¨dÒ2Ø�K‰K�O‰OÕä‰GÑÔØ;?Ð?ˆÔ˜dÔ8Ø;?Ð?ˆÔ˜dÔ8Ø!ˆÔØ�‰×ÑÔØ�ŠÐ‰r-   c                 ó‚   •— t         ‰| �  ||||||«       t        ||||||«      | j                  z  | j                  d<   y r3   )r   Ú
set_matrixr   r6   r   )r#   ÚaÚbÚcÚdÚeÚfr+   s          €r,   Ú	transformzStream.transformH   s@   ø€ Ü‰Ñ˜1˜a  A q¨!Ô,Ü$ Q¨¨1¨a°°AÓ6¸¿¹ÑAˆ�‰˜Òr-   c                 ó¶   •— | j                   r>| j                   d   dk(  r,| j                  | _        | j                   j                  «        y t        ‰| �  «        y )Nr4   s   ET)r>   r   r   r?   r   Ú
begin_textr;   s    €r,   rK   zStream.begin_textL   s>   ø€ Ø�;Š;˜4Ÿ;™; r™?¨eÒ3Ø!%§¡ˆDÔØ�K‰K�O‰OÕä‰GÑÕ r-   c                 óT   •— | j                   d c| _        | _         t        ‰| �  «        y r8   )r   r   r   Úend_textr;   s    €r,   rM   zStream.end_textS   s%   ø€ Ø-1×-?Ñ-?ÀÐ*ˆŒ˜Ô*Ü‰ÑÕr-   c                 ó(  — |�^ }}| j                  ||«       |r4|j                  g|¢­| j                  k(  ry |j                  g|¢­| _        n3|j                  g|¢­| j                  k(  ry |j                  g|¢­| _        |j                  dv r. | j                  g |j                  d«      j                  ¢|‘­Ž  y |j                  dv rG| j                  d|«       |j                  d«      j                  \  }}}| j                  d ||||«       y |j                  dv rG| j                  d|«       |j                  d«      j                  \  }}}| j                  d ||||«       y |j                  dk(  r:| j                  d	|«       |j                  \  }}	}
}| j                  d |||	|
|«       y |j                  j                  d
«      rS|j                  | j                  v r;| j                  |j                  |«        | j                  d |g|j                  ¢­Ž  y t        j                  d|j                  «       t        |«      dkD  r|d d }n-t        |«      dk(  rg |¢d‘­}nt        |«      dk(  r	g |¢d‘d‘­} | j                  g |¢|‘­Ž  y )N)ÚsrgbÚhslÚhwbrO   )zxyz-d65ÚoklabÚoklchzlab-d65Úlab)zxyz-d50rT   Úlchzlab-d50zdevice-cmykÚ
DeviceCMYKz--z,Unsupported color space %s, use sRGB insteadé   r   r   r	   )Ú	set_alphaÚspacer   r   Úset_color_rgbÚtoÚcoordinatesÚset_color_spaceÚset_color_specialÚ
startswithr   r   ÚwarningÚlen)r#   ÚcolorÚstrokeÚchannelsÚalphaÚ	lightnessrC   rD   rE   ÚmÚyÚks               r,   Ú	set_colorzStream.set_colorW   s^  € Ø Ñˆ�5Ø�‰�u˜fÔ%áØ—‘Ð'˜hÑ'¨4×+EÑ+EÒEØà.3¯k©kÐ-E¸HÑ-E�Õ*à—‘Ð'˜hÑ'¨4×+>Ñ+>Ò>Øà',§{¡{Ð&>°XÑ&>�Ô#à�;‰;Ð0Ñ0ØˆD×ÑÐE §¡¨Ó 0× <Ñ <ÐE¸fÔEØ�[‰[Ð9Ñ9Ø× Ñ  ¨FÔ3Ø#Ÿh™h u›o×9Ñ9‰OˆI�q˜!Ø×"Ñ" 4¨°¸A¸qÕAØ�[‰[Ð5Ñ5Ø× Ñ  ¨FÔ3Ø#Ÿh™h u›o×9Ñ9‰OˆI�q˜!Ø×"Ñ" 4¨°¸A¸qÕAØ�[‰[˜MÒ)Ø× Ñ  ¨vÔ6Ø×*Ñ*‰JˆAˆq�!�QØ×"Ñ" 4¨°°A°q¸!Õ<Ø�[‰[×#Ñ# DÔ)¨e¯k©k¸T×=QÑ=QÑ.QØ× Ñ  §¡¨fÔ5Ø"ˆD×"Ñ" 4¨ÐD°%×2CÑ2CÔDä�N‰NÐIÈ5Ï;É;ÔWÜ�8‹}˜qÒ Ø# B Q˜<‘Ü�X“ !Ò#Ø'˜H˜< a™<‘Ü�X“ !Ò#Ø*˜H˜? a˜?¨™?�ØˆD×ÑÐ1 Ð1¨&Ô1r-   c                 ó\   •— ||f| j                   k(  ry ||f| _         t        ‰| �	  ||«       y r8   )r   r   Úset_font_size)r#   ÚfontÚsizer+   s      €r,   rl   zStream.set_font_size�   s3   ø€ Ø�$ˆ<˜4×-Ñ-Ò-ØØ" D˜\ˆÔÜ‰Ñ˜d DÕ)r-   c                 ó~   •— dt        | j                  d   «      › �}|| j                  d   |<   t        ‰| �  |«       y )NÚsÚ	ExtGState)ra   r   r   Ú	set_state)r#   ÚstateÚkeyr+   s      €r,   rr   zStream.set_state‡   s>   ø€ Ø”#�d—o‘o kÑ2Ó3Ð4Ð5ˆØ,1ˆ�‰˜Ñ$ SÑ)Ü‰Ñ˜#Õr-   c                 ó¤  •— |€| }|rbd|› �}|| j                   k7  rN|| _         || j                  d   vr't        j                  d|i«      | j                  d   |<   t        ‰| �  |«       |rdd|› �}|| j                  k7  rO|| _        || j                  d   vr't        j                  d|i«      | j                  d   |<   t        ‰| �  |«       y y y )NÚArq   ÚCArC   Úca)r   r   ÚpydyfÚ
Dictionaryr   rr   r   )r#   re   rc   Úfillrt   r+   s        €r,   rX   zStream.set_alphaŒ   sã   ø€ Øˆ<Ø�:ˆDáØ�e�W�+ˆCØ�d×0Ñ0Ò0Ø-0�Ô*Ø˜dŸo™o¨kÑ:Ñ:Ü8=×8HÑ8HÈ$ÐPUÈÓ8W�D—O‘O KÑ0°Ñ5Ü‘Ñ! #Ô&áØ�e�W�+ˆCØ�d×)Ñ)Ò)Ø&)�Ô#Ø˜dŸo™o¨kÑ:Ñ:Ü8=×8HÑ8HÈ$ÐPUÈÓ8W�D—O‘O KÑ0°Ñ5Ü‘Ñ! #Õ&ð	 *ð r-   c           	      óÔ   — | j                  ||||«      }t        j                  dt        j                  dd|j                  «       › �|dœ«      dddœ«      }| j	                  |«       |S )Nú
/ExtGStatez/Maskú/)ÚTypeÚSÚGr	   Úfalse)r   ÚSMaskrx   ÚAIS)Ú	add_groupry   rz   Ú
capitalizerr   )r#   Úxrh   ÚwidthÚheightÚmodeÚalpha_streamÚalpha_states           r,   Úset_alpha_statezStream.set_alpha_state    su   € Ø—~‘~ a¨¨E°6Ó:ˆÜ×&Ñ&Ø Ü×%Ñ%ØØ˜Ÿ™Ó*Ð+Ð,Ø!ñ'ó ð
 Øñ	(
ó 	ˆð 	�‰�{Ô#ØÐr-   c                 óX   — | j                  t        j                  dd|› �dœ«      «       y )Nr}   r~   )r   ÚBM)rr   ry   rz   )r#   rŠ   s     r,   Úset_blend_modezStream.set_blend_mode¯   s,   € Ø�‰”u×'Ñ'Ø Ø�d�V�*ñ)
ó õ 	r-   c                 ó’   — t        |«      \  }}}|| j                  vrt        |||«      | j                  |<   | j                  |   |fS r8   )r   r   r
   )r#   Ú
pango_fontrt   ÚdescriptionÚ	font_sizes        r,   Úadd_fontzStream.add_fontµ   sJ   € Ü&8¸Ó&DÑ#ˆˆ[˜)Ø�d—k‘kÑ!Ü# J°¸YÓGˆD�K‰K˜ÑØ�{‰{˜3Ñ Ð*Ð*r-   c                 ó&  — t        j                  t        j                  «       t        j                  «       t        j                  «       t        j                  «       | j                  d   d dœ«      }t        j                  ddt        j                  ||||z   ||z   f«      |t        j                  ddddd	œ«      d
œ«      }| j	                  ||¬«      }dt        | j                  d   «      › �|_        || j                  d   |j                  <   |S )NÚ
ColorSpace©rq   ÚXObjectÚPatternÚShadingr—   r
   z/XObjectz/Formz/Groupz/TransparencyÚtruez
/DeviceRGB)r   r€   ÚIÚCS)r   ÚSubtypeÚBBoxÚ	ResourcesÚGroup©r%   Úextrar‡   r™   )ry   rz   r   ÚArrayr1   ra   Úid)r#   r‡   rh   rˆ   r‰   r%   r¤   Úgroups           r,   r…   zStream.add_group»   sÿ   € Ü×$Ñ$Ü×)Ñ)Ó+Ü×'Ñ'Ó)Ü×'Ñ'Ó)Ü×'Ñ'Ó)ØŸ/™/¨,Ñ7Øñ&
ó ˆ	ô × Ñ ØØÜ—K‘K  A q¨5¡y°!°f±*Ð =Ó>Ø"Ü×%Ñ%Ø Ø$ØØ"ñ	'ó ñ"
ó ˆð —
‘
 Y°e�
Ó<ˆØ”s˜4Ÿ?™?¨9Ñ5Ó6Ð7Ð8ˆŒØ/4ˆ�‰˜	Ñ" 5§8¡8Ñ,Øˆr-   c                 óê   — d|j                   › t        |«      › �}d | j                  d   |<   || j                  v r#| j                  |   d   j	                  |«       |S |||hd dœ| j                  |<   |S )NÚir™   Ú
dpi_ratios)ÚimageÚinterpolaterª   Úx_object)r¦   Úintr   r   Úadd)r#   r«   r¬   ÚratioÚ
image_names        r,   Ú	add_imagezStream.add_imageÕ   s…   € Ø˜Ÿ™˜
¤3 {Ó#3Ð"4Ð5ˆ
Ø15ˆ�‰˜	Ñ" :Ñ.Ø˜Ÿ™Ñ%à�L‰L˜Ñ$ \Ñ2×6Ñ6°uÔ=ØÐð Ø&Ø ˜'Øñ	$
ˆ�‰�ZÑ ð Ðr-   c                 ó8  — t        j                  t        j                  «       t        j                  «       t        j                  «       t        j                  «       | j                  d   d dœ«      }t        j                  ddt        j                  ||||z   ||z   g«      ||ddt        j                  |j                  «      |dœ	«      }	| j                  ||	¬«      }
dt        | j                  d   «      › �|
_        |
| j                  d   |
j                  <   |
S )	Nr—   r˜   z/Patternr	   )	r   ÚPatternTyper    ÚXStepÚYStepÚ
TilingTypeÚ	PaintTyper   r¡   r£   Úprš   )ry   rz   r   r¥   Úvaluesr1   ra   r¦   )r#   r‡   rh   rˆ   r‰   Úrepeat_widthÚrepeat_heightÚmatrixr%   r¤   Úpatterns              r,   Úadd_patternzStream.add_patternå   sü   € Ü×$Ñ$Ü×)Ñ)Ó+Ü×'Ñ'Ó)Ü×'Ñ'Ó)Ü×'Ñ'Ó)ØŸ/™/¨,Ñ7Øñ&
ó ˆ	ô × Ñ ØØÜ—K‘K  A q¨5¡y°!°f±*Ð =Ó>Ø!Ø"ØØÜ—k‘k &§-¡-Ó0Ø"ñ
"
ó 
ˆð —*‘* y¸�*Ó>ˆØœ˜TŸ_™_¨YÑ7Ó8Ð9Ð:ˆŒ
Ø18ˆ�‰˜	Ñ" 7§:¡:Ñ.Øˆr-   c                 ó:  — t        j                  |d|› �t        j                  |«      t        j                  |«      |dœ«      }|rt        j                  d«      |d<   dt        | j                  d   «      › �|_        || j                  d   |j
                  <   |S )Nz/Device)ÚShadingTyper—   ÚDomainÚCoordsÚFunction)ó   truerÅ   ÚExtendrp   r›   )ry   rz   r¥   ra   r   r¦   )r#   Úshading_typeÚcolor_spaceÚdomainÚcoordsÚextendÚfunctionÚshadings           r,   Úadd_shadingzStream.add_shadingþ   s‘   € ä×"Ñ"Ø'Ø# K =Ð1Ü—k‘k &Ó)Ü—k‘k &Ó)Ø ñ$
ó ˆñ Ü %§¡Ð,>Ó ?ˆG�HÑØœ˜TŸ_™_¨YÑ7Ó8Ð9Ð:ˆŒ
Ø18ˆ�‰˜	Ñ" 7§:¡:Ñ.Øˆr-   c              #   ó€   K  — | j                  «        	 d–— | j                  «        y# | j                  «        w xY w­w)zDSave and restore stream context when used with the ``with`` keyword.N)r9   r@   r5   s    r,   ÚstackedzStream.stacked  s.   è ø€ ð 	�‰Ôð	Ûà�N‰NÕøˆD�N‰NÕüs   ‚>”) ˜>©;»>c              #   óf  •K  — | j                   �`d }t        | j                   «      }|| j                   vsJ ‚||dœ| j                   |<   t        j                  d|i«      }t        ‰| �  ||«       	 d –— | j                   �t        ‰| �  «        y y # | j                   �t        ‰| �  «        w w xY w­w)N)ÚtagÚmcidÚMCID)r   ra   ry   rz   r   Úbegin_marked_contentÚend_marked_content)r#   ÚboxrÒ   Úproperty_listrÓ   r+   s        €r,   ÚmarkedzStream.marked  s¦   øè ø€ à�:‰:Ð!Ø ˆMÜ�t—z‘z“?ˆDØ˜dŸj™jÑ(Ð(Ð(Ø&)°4Ñ8ˆD�J‰J�s‰OÜ!×,Ñ,¨f°d¨^Ó<ˆMÜ‰GÑ(¨¨mÔ<ð	-Ûà�z‰zÐ%Ü‘Ñ*Õ,ð &øˆt�z‰zÐ%Ü‘Ñ*Õ,ð &üs   ƒA-B1Á1B Á5B1ÂB.Â.B1c              #   óÄ   •K  — | j                   �t        ‰| �	  d«       	 d –— | j                   �t        ‰| �  «        y y # | j                   �t        ‰| �  «        w w xY w­w)NÚArtifact)r   r   rÕ   rÖ   r;   s    €r,   ÚartifactzStream.artifact%  sZ   øè ø€ à�:‰:Ð!Ü‰GÑ(¨Ô4ð	-Ûà�z‰zÐ%Ü‘Ñ*Õ,ð &øˆt�z‰zÐ%Ü‘Ñ*Õ,ð &üs   ƒA  A  ¤A Á AÁA c                 óª   — t        j                  dt        j                  | «      t        j                  |«      t        j                  |«      |dœ«      S )Nr   )ÚFunctionTyperÂ   ÚC0ÚC1ÚN©ry   rz   r¥   )rÉ   Úc0Úc1Úns       r,   Úcreate_interpolation_functionz$Stream.create_interpolation_function/  sB   € ä×ÑØÜ—k‘k &Ó)Ü—+‘+˜b“/Ü—+‘+˜b“/Øñ!
ó ð 	r-   c           	      óÐ   — t        j                  dt        j                  | «      t        j                  |«      t        j                  |«      t        j                  |«      dœ«      S )NrW   )rÞ   rÂ   ÚEncodeÚBoundsÚ	Functionsrâ   )rÉ   ÚencodeÚboundsÚsub_functionss       r,   Úcreate_stitching_functionz Stream.create_stitching_function9  sM   € ä×ÑØÜ—k‘k &Ó)Ü—k‘k &Ó)Ü—k‘k &Ó)ÜŸ™ ]Ó3ñ!
ó ð 	r-   )r	   r   r   r	   r   r   )F)FN)Ú
luminosity) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r1   Úpropertyr6   r9   r@   rI   rK   rM   rj   rl   rr   rX   r�   r�   r•   r…   r²   r¿   rÎ   r   rÐ   rÙ   rÜ   Ústaticmethodræ   rî   Ú__classcell__)r+   s   @r,   r   r      sÚ   ø„ Ù0ô8ò( ð" ñ#ó ð#ô)ô	õBô!ôó(2ôT*ôõ
'ó(òò+òò4ò ò2ð ñó ðð ó-ó ð-ð ó-ó ð-ð ñó ðð ñó ôr-   r   )ró   Ú
contextlibr   ry   Úloggerr   r½   r   Útext.ffir   Ú
text.fontsr   r$   r
   r   r0   r-   r,   ú<module>rû      s/   ðÙ å %ã å Ý Ý Ý +Ý ôsˆU�\‰\õ sr-   