Ë
    ^ãjÙ1  ã                   óÒ   — d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
mZmZmZ ddlmZ  G d„ de«      Zd	„ Zd
„ Zd„ Zdd„Z e«       j/                   e«       «       dde
dddddfd„Zy))ÚsetFontÚpathNumTruncÚprocessGlyphÚtext2PathDescriptionÚ	text2PathÚRenderPMErroré    )ÚgetFontÚ
unicode2T1ÚstringWidth)Úopen_and_readÚisBytesÚrl_execé   )Ú_baseGFontNameÚ_PATH_OP_ARG_COUNTÚ_PATH_OP_NAMESÚ
definePath)Úexc_infoc                   ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úZ/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/reportlab/graphics/utils.pyr   r      s   „ Ør   r   c                 ó  — t        t        t        t        «       d d «      «      \  }}ddlm} |j                  dk\  rŽdd l}|j                  j                  |j                  j                  |j                  «      d«      }t        d|›d|j                  |«      ›�«       dD ]&  }t        d|›d	t        t        ||«      «      ›�«       Œ( d
t        | «      ›dt        |«      ›d|›d|›d�	}|dz  }t!        |t#        t$        ¬«      «       y )Né   r   )Ú	rl_configÚfontsz!!!!! z: )ÚT1SearchPathÚTTFSearchPathz!!!!! rl_config.z = z&raise RenderPMError("Error in setFont(ú,z$) missing the T1 files?\nOriginally z")z
 from None)r   )ÚlistÚmapÚstrr   Ú	reportlabr   ÚverboseÚosÚpathÚjoinÚdirnameÚ__file__ÚprintÚlistdirÚreprÚgetattrr   Údictr   )ÚfontNameÚfontSizeÚs1Ús2r   r(   Ú_Úcodes           r   Ú
_errorDumpr8      sã   € Ü”#”cœ(›* R a˜.Ó)Ó*�F€BˆÝ#Ø×Ñ˜!ÒÛØ�G‰G�L‰L˜Ÿ™Ÿ™¨×);Ñ);Ó<¸WÓEˆÝ¢ "§*¡*¨Q¤-Ð0Ô1Ø1ò 	NˆAÝªq´´g¸iÈÓ6JÔ1KÐLÕMð	NøäimÐnvÕiwÔx|ð  ~Fõ  yGò  HJò  KMð  N€DØˆLÑ€DÜˆD”¤MÔ2Õ3r   c                 ó�  — 	 | j                  ||«       y # t        $ r§}|j                  d   j                  d«      st	        ||«       ddlm} 	 t        |«      } |||j                  j                  «       |j                  j                  t        «       n#  t	        ||«       Y nxY w| j                  ||«       Y d }~y d }~ww xY w)Nr   zCan't find font!)Ú
makeT1Font)r   Ú
ValueErrorÚargsÚendswithr8   Ú_rl_renderPMr:   r	   ÚfaceÚ
findT1FileÚencodingÚvectorr   )Úgsr2   r3   Úer:   Úfs         r   r   r      sŸ   € ð&Ø
�
‰
�8˜HÕ%øÜò 
&Ø�v‰v�a‰y×!Ñ!Ð"4Ô5Ü�x Ô)å+ð	*Ü˜Ó!ˆAÙ�x §¡× 1Ñ 1Ó 3°A·J±J×4EÑ4EÄmÕTøð	*Ü�x Ö)úØ
�
‰
�8˜H×%Ñ%ûð
&ús-   ‚ •	Cž0C ÁABÂC ÂB&Â$C Ã Cc                 óL   — t        | «      | k(  rt        | «      S t        | d«      S )Né   )ÚintÚround)Úns    r   r   r   -   s!   € Ü
ˆ1ƒvˆq‚yœ˜Q›�-Ü��1‹:Ðr   Nc           	      óò  ‡ ‡‡‡	‡
‡— ddl m}m} ‰ �‰ }|dk(  r
|dk7  rdndŠ n||v r|Š nt        d|›d�«      ‚‰ ft	        ˆ fd	„|D «       «      z   Š‰D ]r  Š ‰ dk(  r7	 dd lŠ	dd lŠ
 G ˆ	ˆ
fd
„d«      Šddt        ddddd fˆfd„	}t        |‰¬«      c S ‰ dk(  sŒE	 dd l
}dd„Šddt        ddddd fˆfd„	}t        |‰t        ¬«      c S  ˆfd„}t        ||||¬«      S # t        $ r Y Œ”w xY w# t        $ r Y Œ£w xY w)Nr   )Ú	textPathsÚrenderPMBackendÚbackendÚ	rlPyCairoÚfreetypeÚ	_renderPMz
textPaths=z7 should be one of 'backend', 'freetype' or '_renderPM')c              3   ó.   •K  — | ]  }|‰k7  sŒ	|–— Œ y ­w©Nr   )Ú.0r6   Útps     €r   ú	<genexpr>z(__makeTextPathsCode__.<locals>.<genexpr>;   s   øè ø€ Ò0˜a¨!¨R«%œÑ0ùs   ƒ
Žc                   ó‚   •— e Zd ZW ° j                  W ° j                  z  W ° j
                  z  Zd„ Zˆ ˆfd„Zdde	dfd„Z
y)ú)__makeTextPathsCode__.<locals>.FTTextPathc                 ó   — i | _         y rS   )Úfaces)Úselfs    r   Ú__init__z2__makeTextPathsCode__.<locals>.FTTextPath.__init__E   s	   € Ø!#�D•Jr   c                 óˆ  •— || j                   vr¥t        |«      }|st        d|›d�«      ‚|j                  r(|j                  j
                  }‰j                  |«      }n3t        |j                  dd «      }|s|j                  j                  «       }‰j                  |«      }||f| j                   |<   | j                   |   S )Nzfont z has not been registeredÚpfbFileName)
rZ   r	   r;   Ú_dynamicFontr?   Ú	_ttf_dataÚBytesIOr0   r@   ÚFace)r[   r2   ÚfontÚpath_or_streamr?   rP   Úios        €€r   r   z1__makeTextPathsCode__.<locals>.FTTextPath.setFontH   s¯   ø€ Ø t§z¡zÑ1Ü& xÓ0˜Ù#Ü",¨u°X°LÐ@XÐ-YÓ"ZÐZØ×,Ò,Ø-1¯Y©Y×-@Ñ-@˜Nð .0¯Z©Z¸Ó-G™Nä-4°T·Y±Y¸}ÈTÓ-R˜NÙ#1Ø15·±×1EÑ1EÓ1G Ø'Ÿ}™}¨^Ó<˜Ø04°T¨{˜Ÿ
™
 8Ñ,ØŸ:™: hÑ/Ð/r   r   éè  c                 óF  ‡‡‡‡‡‡‡— | j                  |«      \  }}||j                  z  Š|‰z  Š|‰z  Šg Šg }	‰j                  Š|j                  dd«      }
|
rˆˆfd„Šˆˆfd„Šnˆˆfd„Šˆˆfd„Šˆˆˆˆfd„}ˆˆˆfd„}ˆˆˆˆfd	„}ˆˆˆfd
„}|dz  ‰z  }| j                  }|D ]n  }|dk(  rdŠ‰|z  ŠŒ|j                  ||«       |j                  j                  j                  | ||||¬«       ‰|j                  j                  j                  z   ŠŒp ‰r ‰d«       ‰S )NÚtruncater   c                 ó&   •— t        ‰| ‰z   z  «      S rS   ©r   ©ÚxÚ__dx__Úscales    €€r   ú<lambda>zF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.<lambda>e   ó   ø€ ¬°U¸A¸f¹HÑ5EÓ(F€ r   c                 ó&   •— t        ‰| ‰z   z  «      S rS   rj   ©ÚyÚ__dy__rn   s    €€r   ro   zF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.<lambda>f   rp   r   c                 ó   •— ‰| ‰z   z  S rS   r   rk   s    €€r   ro   zF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.<lambda>h   ó   ø€ ¨¨q°6©zÑ(:€ r   c                 ó   •— ‰| ‰z   z  S rS   r   rr   s    €€r   ro   zF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.<lambda>i   rv   r   c                 óp   •— ‰r ‰d«        ‰d ‰| j                   «       ‰| j                  «      f«       y )N©Ú	closePathÚmoveTo©rl   rs   )ÚaÚctxÚPÚP_appendÚxptÚypts     €€€€r   Úmove_tozE__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.move_tok   s,   ø€ Ù™h ~Ô6Ù  (©3¨q¯s©s«8±C¸¿¹³HÐ!=Õ>r   c                 ó\   •—  ‰d ‰| j                   «       ‰| j                  «      f«       y )NÚlineTor|   )r}   r~   r€   r�   r‚   s     €€€r   Úline_tozE__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.line_too   s"   ø€ Ù  (©3¨q¯s©s«8±C¸¿¹³HÐ!=Õ>r   c           	      óR  •— ‰	r‰	d   dd n| j                   | j                  f\  }} ‰| j                   «      } ‰| j                  «      } ‰|j                   «      } ‰|j                  «      } ‰
d|||z
  dz  dz  z   |||z
  dz  dz  z   |||z
  dz  z   |||z
  dz  z   ||f«       y)zusing the cubic equivalentéÿÿÿÿéþÿÿÿNÚcurveTor   é   r|   )r}   Úbr~   Úx0Úy0Úx1Úy1Úx2Úy2r   r€   r�   r‚   s            €€€€r   Úconic_tozF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.conic_tor   s¹   ø€ á./  "¡ b c¡
°a·c±c¸1¿3¹3°Z™˜˜2Ù  §¡›X˜Ù  §¡›X˜Ù  §¡›X˜Ù  §¡›X˜Ù  )¨B°°B±¸±	¸1©}Ñ,<¸RÀ"ÀRÁ%ÈÁÈAÁÑ=MÈbÐRTÐUWÑRWÐYZÑQZÉlÐ[]Ð_aÐbdÑ_dÐfgÑ^gÑ[gÐhjÐkmÐ!nÕor   c                 óä   •—  ‰d ‰| j                   «       ‰| j                  «       ‰|j                   «       ‰|j                  «       ‰|j                   «       ‰|j                  «      f«       y )NrŠ   r|   )r}   rŒ   Úcr~   r€   r�   r‚   s       €€€r   Úcubic_tozF__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.cubic_to{   sT   ø€ Ù  )©C°·±«H±S¸¿¹³X¹cÀ!Ç#Á#»hÁsÈ1Ï3É3ÃxÑPSÐTU×TWÑTWÓPXÑY\Ð]^×]`Ñ]`ÓYaÐ!bÕcr   g333333ó?ú
)rƒ   r†   r“   r–   ry   )r   Úunits_per_EMÚappendÚpopÚftLFlagsÚ	load_charÚglyphÚoutlineÚ	decomposeÚmetricsÚhoriAdvance)r[   Útextrl   rs   r2   r3   Úkwdsr?   rc   ÚSrh   rƒ   r†   r“   r–   Ú
lineHeightr›   r•   r   r€   rm   rt   rn   r�   r‚   s                     @@@@@@@r   Ú
_text2Pathz4__makeTextPathsCode__.<locals>.FTTextPath._text2Path[   s0  þ€ Ø!%§¡¨hÓ!7‘J�D˜$Ø$ T×%6Ñ%6Ñ6�EØ˜u™W�FØ˜u™W�FØ�AØ�AØ Ÿx™x�HØ#Ÿx™x¨
°1Ó5�HÙÜF˜ÜF™ä:˜Ü:˜÷?ö?÷pödð "*¨#¡¨eÑ!3�JØ#Ÿ}™}�HØ!ò I˜Ø˜dš7Ø%&˜FØ" jÑ0˜FØ$ØŸ™ q¨(Ô3ØŸ
™
×*Ñ*×4Ñ4°TÀ7ÐT[Ðfnð  zBÐ4ô  CØ!'¨$¯*©*×*<Ñ*<×*HÑ*HÑ!H™ðIñ ™( >Ô2Ø�Hr   N)r   r   r   ÚFT_LOAD_DEFAULTÚFT_LOAD_NO_SCALEÚFT_LOAD_NO_BITMAPr›   r\   r   r   r¦   )rP   re   s   €€r   Ú
FTTextPathrX   C   s@   ø„ Ù#×3Ñ3±h×6OÑ6OÑOÑRZ×RlÑRlÑl�ò$õ0ð& ./°!¸nÐW[ô .r   rª   rf   Ústartr   c	                 óÔ  •— t        |«      }	|	j                  r|	j                  st        d|z  «      ‚g j                  }
|dk(  s%t        | ||«      }|dk(  r||z
  }n|dk(  r||dz  z
  }|€ ‰«       }|	j                  r* |
|j                  | ||||||¬«      «       |
j(                  S t        | «      r	 | j                  d«      } t        | |	g|	j                  z   «      }t        |«      dz
  }t        |«      D ]v  \  }\  }}t!        |t"        «      r|j                  |j$                  «      } |
|j                  ||||j&                  |||¬«      «       ||k7  sŒb||j                  ||«      z  }Œx |
j(                  S # t        $ ra}|j                  d	d
 \  }}t        |j                  dd
 |j                  d
   ›d| t        |dz
  d«      | ›d| || ›d| ||dz    ›�fz   Ž ‚d}~ww xY w)zñfreetype text2PathDescription(text, x=0, y=0, fontName='fontname',
                                    fontSize=1000, font = 'fontName',
                                    anchor='start', truncate=1, pathReverse=0, gs=None)
                ú=text2PathDescription doesn't support multi byte fonts like %rr«   ÚendÚmiddleç       @N)rl   rs   r2   r3   rh   ÚpathReverseÚutf8r   é   r—   é
   r   ú-->ú<--r   )r	   Ú
_multiByter_   r;   Úextendr   r¦   r   ÚdecodeÚUnicodeDecodeErrorr<   Úmaxr
   ÚsubstitutionFontsÚlenÚ	enumerateÚ
isinstanceÚbytesÚencNamer2   Ú__self__)r¢   rl   rs   r2   r3   Úanchorrh   r±   rC   rc   ÚP_extendÚtextLenrD   ÚiÚjÚFTÚnm1rE   Útrª   s                      €r   r   z3__makeTextPathsCode__.<locals>.text2PathDescription‹   sQ  ø€ ô ˜xÓ(�Ø—?’?¨4×+<Ò+<Ü$Ð%dÐgoÑ%oÓpÐpØŸ9™9�Ø˜w’Ü)¨$°¸(ÓC�GØ˜u’}Ø˜g™I™Ø Ò)Ø ¨¡
™N˜Ø�:Ù#›�BØ×$Ò$Ù˜RŸ]™]¨4°!°aÀÐS[Ðfnð  |G˜]ó  Hô  Ið  ×(Ñ(Ð(ô ˜t”}ðSØ#'§;¡;¨vÓ#6˜Dô $ D¨$¨°×0FÑ0FÑ)FÓG�BÜ˜b›' !™)�CÜ%.¨r£]ò <™	˜™6˜A˜qÜ% a¬Ô.°A·H±H¸Q¿Y¹YÓ4G°Ù  §¡¨q°1°qÀ!Ç*Á*ÐV^Ðiqð  J ó  "Kô  LØ˜c›6Ø §¡¨q°(Ó!;Ñ;™Að	<ð
  ×(Ñ(Ð(øô  2ò SØ"#§&¡&¨¨1 +™C˜A˜aÜ"4°q·v±v¸b¸q°zÐYZ×Y_ÑY_Ð`aÓYbÐcgÔhkÐlmÐnpÑlpÐqrÓhsÐtuÒcvÐw{Ð|}Ð~ò  xAð  BFð  GHð  IJð  KMñ  IMñ  BNð  DOð  CQñ  8Qð  #Sð  SûðSús   Â4E= Å=	G'ÆAG"Ç"G')r   rª   c           
      óª  — g }g }g j                   }| r(t        | «      dk(  r| d   d   dk(  rd| d   dd  z   f| z   } | xs ddz   D �]  }|d   }|rÒ|dv rÎ|d   dk(  re|d= |r=|dd d	…   |dd d	…   c|dd d	…<   |dd d	…<   |j                  «        |j                  «        |j                  dd
«       |j                  d«       d}|rt	        t        t        |«      «      }|D ];  }	|t        t        j                  |	«         z   }
 ||	ft        |||
 «      z   «       |
}Œ= g }g }|j                  |«       |j                  |dd  «       �Œ |j                  S )Nr   r   r…   )ÚmoveToClosedr   ))r®   )r{   rÌ   r®   rÌ   r   r{   rz   )r™   r½   ÚreverseÚinsertr#   r$   r   r   r   ÚindexÚtupler¸   rÂ   )ÚGrh   r±   ÚOr   ÚR_appendÚgÚoprÆ   ÚorÇ   s              r   r   z+__makeTextPathsCode__.<locals>.processGlyphµ   s„  € Ø�Ø�ØŸ9™9�Ùœ˜Q› š q¨¡t¨A¡w°Ò'8Ø*¨1¨Q©4°°¨8Ñ3Ð5°aÑ7�AØš'˜r ;Ñ.ó $�AØ˜1™�BÙ˜RÐ#CÑCØ˜Q™4 Ò/Ø ! ! Ù*Ø23°A°D°q°D±'¸!¸A¸D¸q¸D¹'   ! $ Q $¡¨¨!¨$¨Q¨$©Ø !§	¡	¤Ø !§	¡	¤ØŸH™H Q xÔ0ØŸH™H [Ô1Ø˜Ù#¬¬c´,¸qÓ.AÓ)B QØ!"ò "˜AØ !Ô$6´~×7KÑ7KÈAÓ7NÑ$OÑ O˜AÙ$ a T¬5°°1°Q°«=Ñ%8Ô9Ø !™Að"ð ˜Ø˜Ø—H‘H˜R”LØ—H‘H˜Q˜q˜r˜U–Oð)$ð*  ×(Ñ(Ð(r   c	                 ó2  •— t        |«      }	|	j                  r|	j                  st        d|z  «      ‚g j                  }
|dk(  s%t        | ||«      }|dk(  r||z
  }n|dk(  r||dz  z
  }|€ddlm}  |d	d	«      }t        |||«       |	j                  r5|j                  | ||«      D ]  } |
 ‰|||¬
«      «       Œ |
j*                  S t        | «      r	 | j                  d«      } |	}t        | |	g|	j                   z   «      }t#        |«      d	z
  }t%        |«      D ]ƒ  \  }\  }}||k7  rt        ||j&                  |«       |}|j                  |||«      D ]  } |
 ‰|||¬
«      «       Œ ||k7  sŒV||j                  |j                  |j(                  «      |«      z  }Œ… |
j*                  S # t        $ ra}|j                  dd \  }}t        |j                  dd |j                  d   ›d| t        |dz
  d«      | ›d| || ›d| ||dz    ›�fz   Ž ‚d}~ww xY w)zò_renderPM text2PathDescription(text, x=0, y=0, fontName='fontname',
                                    fontSize=1000, font = 'fontName',
                                    anchor='start', truncate=1, pathReverse=0, gs=None)
                r­   r«   r®   r¯   r°   Nr   )Úgstater   )rh   r±   r²   r   r³   r—   r´   rµ   r¶   )r	   r·   r_   r;   r¸   r   r>   rØ   r   Ú_stringPathr   r¹   rº   r<   r»   r
   r¼   r½   r¾   r2   rÁ   rÂ   )r¢   rl   rs   r2   r3   rÃ   rh   r±   rC   rc   rÄ   rÅ   rØ   rÔ   rD   rÆ   rÇ   ÚfcrÈ   rÉ   rE   rÊ   r   s                         €r   r   z3__makeTextPathsCode__.<locals>.text2PathDescriptionÒ   s|  ø€ ô ˜xÓ(�Ø—?’?¨4×+<Ò+<Ü$Ð%dÐgoÑ%oÓpÐpØŸ9™9�Ø˜w’Ü)¨$°¸(ÓC�GØ˜u’}Ø˜g™I™Ø Ò)Ø ¨¡
™N˜Ø�:Ý3Ù  !›�BÜ˜˜8 HÔ-Ø×$Ò$ØŸ^™^¨D°°1Ó5ò \˜Ù ¡¨a¸ÈkÔ!ZÕ[ð\ð(  ×(Ñ(Ð(ô# ˜t”}ðSØ#'§;¡;¨vÓ#6˜Dð �BÜ# D¨$¨°×0FÑ0FÑ)FÓG�BÜ˜b›' !™)�CÜ%.¨r£]ò N™	˜™6˜A˜qØ˜bš5Ü# B q§z¡z°(Ô;Ø!"˜BØ!#§¡°°!°AÓ!6ò `˜AÙ$¡\°!¸XÐR]Ô%^Õ_ð`à˜c›6Ø §¡¨q¯x©x¸¿	¹	Ó/BÀHÓ!MÑM™AðNð  ×(Ñ(Ð(øô  2ò SØ"#§&¡&¨¨1 +™C˜A˜aÜ"4°q·v±v¸b¸q°zÐYZ×Y_ÑY_Ð`aÓYbÐcgÔhkÐlmÐnpÑlpÐqrÓhsÐtuÒcvÐw{Ð|}Ð~ò  xAð  BFð  GHð  IJð  KMñ  IMñ  BNð  DOð  CQñ  8Qð  #Sð  SûðSús   ÃF, Æ,	HÆ5AHÈH)r   r   r   c                  ó    •— t        d‰›�«      ‚)Nz±This installation of reportLab has neither PYCAIRO or RENDERPM extras installed.
It cannot create paths from text.
Could not create text2PathDescription for using backends from )ÚRuntimeError)r<   r£   ÚTPs     €r   r6   z __makeTextPathsCode__.<locals>._þ   s"   ø€ Üð $?à?A¸fð Hó Ið Ir   )r   r   rª   r   )r   r   )Úreportlab.rl_configrL   rM   r;   rÐ   rP   ÚImportErrorre   r   r1   r>   r   )rU   Ú_TPrL   rM   r   r>   r6   rª   rÝ   rP   re   r   s   `      @@@@@r   Ú__makeTextPathsCode__rá   2   sG  ý€ ß>Ø	€~ 2�yØ�)ÒØ*¨KÒ7‰Z¸[‰Ø	�cÑ	Ø‰ä˜: i ]Ð2iÐjÓkÐkØ
ˆ”Ó0 3Ô0Ó1Ñ	1€BØò FRˆØˆzŠ>ðÛó ÷Fô FðP ./°!¼nÐW[Ø/6ÀÐPQÐVZõ")ôF Ð-AÈZÔXÒXØ�‹_ðÛ#ó)ð: ./°!¼nÐW[Ø/6ÀÐPQÐVZõ))ôT Ð-AÈ|ÔdkÔlÒlðAFRôD	Iô  ¨1¸ÈqÔQÐQøôE ò Ùðûôd ò Ùðús$   ÁCÂC*Ã	C'Ã&C'Ã*	C6Ã5C6rf   r«   c	                 ód   — |	j                  dt        «      }
t         |
| ||||||||¬«	      fi |	¤ŽS )Nr   )rl   rs   r2   r3   rÃ   rh   r±   rC   )rš   r   r   )r¢   rl   rs   r2   r3   rÃ   rh   r±   rC   r£   Út2pds              r   r   r     sI   € à�8‰8Ð*Ô+?Ó@€DÜ‘d˜4 ! a°Ø%¨V¸XÐR]Ðbdôfñ nØhlñnð nr   )N)rP   rQ   )Ú__all__Úreportlab.pdfbase.pdfmetricsr	   r
   r   Úreportlab.lib.utilsr   r   r   Úshapesr   r   r   r   Úsysr   Ú	Exceptionr   r8   r   r   rá   ÚglobalsÚupdater   r   r   r   ú<module>rì      su   ðð
€÷ JÑ Iß ?Ñ ?ß RÓ RÝ ô	�Iô 	ò4ò&òó
PRñd ƒ	× Ñ Ñ&Ó(Ô )à˜1 ~ÀØ¨¸¸dônr   