Ë
    o›Xjc«  ã            	      ó€  — U d dl m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ZdZi dd	“d
d	“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d“i d!d"“d#d"“d$d"“d%d&“d'd&“d(d)“d*d)“d+d,“d-d,“d.d/“d0d/“d1d2“d3d2“d4d5“d6d5“d7d8“d9d8“¥d8d:d:d;d;d<d<d=œ¥Zd>ed?<   dDd@„ZdEdA„Z G dB„ dC«      Zy)Fé    )ÚannotationsN)ÚPath)ÚImageÚ	ImageDrawÚImageEnhanceÚImageFilterÚ	ImageFont)Ú
hex_to_rgbÚ	wrap_text)é8  r   )Úmagazine_coverÚeditorial_overlayÚapple_keynoteÚ
pitch_deckÚ
bento_gridÚhero_bannerÚinfographicÚnews_broadcastÚtimelineÚdashboard_uiÚsplit_comparisonÚ
glass_cardÚminimal_premiumÚ	neon_techÚ	bold_statÚgradient_storyÚcorporate_linkedinÚ	cyberpunkÚsplit_diagonalÚkeynoter   ÚappleÚdeckr   ÚpitchÚbentor   ÚgridÚbannerr   ÚheroÚinfor   Úinfographic_cardÚnewsr   Ú	broadcastÚliveÚtimeline_cardr   Ú	dashboardr   ÚuiÚ	analyticsÚ
comparisonr   ÚversusÚvsÚsplitr   ÚdiagonalÚglassr   ÚcardÚminimalr   ÚpremiumÚneonr   ÚtechÚstatr   ÚboldÚgradientr   ÚstoryÚlinkedinr   Ú	corporater   r   r   )ÚbusinessÚcyberÚpunkÚmagazineÚcoverÚ	editorialÚoverlayzdict[str, str]Ú_LAYOUT_ALIASESc                ó*   — t        | || z
  |z  z   «      S ©N)Úint)ÚaÚbÚts      ú:/var/www/html/content_generation/src/generators/visuals.pyÚ_lerprQ   Q   s   € Üˆq�A˜‘E˜Q‘;‰ÓÐó    c                ór   — t        | d   |d   |«      t        | d   |d   |«      t        | d   |d   |«      fS )Nr   é   é   )rQ   )Úc1Úc2rO   s      rP   Ú
_blend_rgbrX   U   sC   € Ü�"�Q‘%˜˜A™ Ó"¤E¨"¨Q©%°°A±¸Ó$:¼EÀ"ÀQÁ%ÈÈAÉÐPQÓ<RÐSÐSrR   c                  óX  — e Zd ZdZ	 d9	 	 	 	 	 	 	 	 	 d:d„Zd;d<d„Zd=d„Zdddœ	 	 	 	 	 	 	 	 	 	 	 d>d	„Z	 d?	 	 	 	 	 	 	 	 	 d@d
„ZdAd„Z	dBd„Z
dddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dCd„Zdddddœ	 	 	 	 	 	 	 	 	 	 	 dDd„ZdEd„ZdFd„ZdGd„ZdHd„ZdId„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dJd„Z	 	 	 	 	 	 	 	 	 	 dKd„Zdd ddd!edd"œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dLd#„Zdef	 	 	 	 	 	 	 	 	 dMd$„Zef	 	 	 	 	 	 	 	 	 	 	 dNd%„Zd&„ Zd'„ Zd(„ Zd)„ Zd*„ Zd+„ Zd,„ Zd-„ Zd.„ Z d/„ Z!d0„ Z"d1„ Z#d2„ Z$d3„ Z%d4„ Z&d5„ Z'd6„ Z(d7„ Z)d8„ Z*y)OÚVisualRendererzAAgency-grade multi-layout compositor for premium social graphics.Nc                ó€   — || _         t        |«      | _        t        |«      | _        t        |«      | _        || _        y rK   )Ú
brand_namer
   ÚprimaryÚaccentÚbgÚ	fonts_dir)Úselfr\   r]   r^   r_   r`   s         rP   Ú__init__zVisualRenderer.__init__\   s5   € ð %ˆŒÜ! 'Ó*ˆŒÜ  Ó(ˆŒÜ˜R“.ˆŒØ"ˆ�rR   Fc                óZ  — g }| j                   r€| j                   j                  «       rf|j                  t        | j                   j	                  d«      «      «       |j                  t        | j                   j	                  d«      «      «       t        d«      t        d«      g}t        d«      t        d«      g}|j                  |r|n|«       |D ]5  }|j                  «       sŒ	 t        j                  t        |«      |¬«      c S  t        j                  «       S # t        $ r Y ŒWw xY w)Nz*.ttfz*.otfz4/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttfz</usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttfz//usr/share/fonts/truetype/dejavu/DejaVuSans.ttfz?/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf)Úsize)r`   ÚexistsÚextendÚsortedÚglobr   r	   ÚtruetypeÚstrÚOSErrorÚload_default)ra   rd   r=   Ú
candidatesÚ
bold_pathsÚregular_pathsÚpaths          rP   Ú_fontzVisualRenderer._fontl   sý   € Ø!#ˆ
Ø�>Š>˜dŸn™n×3Ñ3Ô5Ø×Ñœf T§^¡^×%8Ñ%8¸Ó%AÓBÔCØ×Ñœf T§^¡^×%8Ñ%8¸Ó%AÓBÔCäÐGÓHÜÐOÓPð
ˆ
ô
 ÐBÓCÜÐRÓSð
ˆð 	×Ñ©™*°-Ô@ÛˆDØ�{‰{�}ðÜ$×-Ñ-¬c°$«i¸dÔCÒCð ô ×%Ñ%Ó'Ð'øô ò Ùðús   Ã'DÄ	D*Ä)D*c                ó¨   — t        t        j                  |j                  «       «      j	                  «       d d d«      }t        j                  |«      S )Né   é   )rL   ÚhashlibÚmd5ÚencodeÚ	hexdigestÚrandomÚRandom)ra   ÚkeyÚhs      rP   Ú_seedzVisualRenderer._seed‚   s<   € Ü”—‘˜CŸJ™J›LÓ)×3Ñ3Ó5°b°qÐ9¸2Ó>ˆÜ�}‰}˜QÓÐrR   T)r5   Úverticalc               ó’  — |\  }}t        j                  d|«      }|j                  «       }	t        |«      D ]�  }
t        d|d«      D ]{  }|r|
t	        |dz
  d«      z  }n=|r)|t	        |dz
  d«      z  |
t	        |dz
  d«      z  z   dz  }n|t	        |dz
  d«      z  }t        |||«      }||	||
f<   |dz   |k  sŒr||	|dz   |
f<   Œ} Œ� |S )NÚRGBr   rU   rT   )r   ÚnewÚloadÚrangeÚmaxrX   )ra   rd   rV   rW   r5   r~   Úwr|   ÚimgÚpxÚyÚxrO   Úcolors                 rP   Ú	_gradientzVisualRenderer._gradient†   sá   € ð ‰ˆˆ1Ü�i‰i˜˜tÓ$ˆØ�X‰X‹ZˆÜ�q–ˆAÜ˜1˜a –^�ÙØœC  A¡ q›MÑ)‘AÙØœc ! a¡%¨›mÑ+°´C¸¸A¹¸q³MÑ0AÑBÀaÑG‘AàœC  A¡ q›MÑ)�AÜ" 2 r¨1Ó-�Ø ��1�a�4‘Ø�q‘5˜1“9Ø#(�B�q˜1‘u˜a�x’Lñ $ð ð ˆ
rR   c           
     óæ  — |\  }}t        j                  d|«      }|j                  «       }|d   |z  |d   |z  }
}	t        j                  ||«      }t        d|d«      D ]�  }t        d|d«      D ]}  }t        dt        j                  ||	z
  ||
z
  «      |dz  z  «      }t        |||«      }||||f<   |dz   |k  r
|||dz   |f<   |dz   |k  sŒ^||||dz   f<   |dz   |k  sŒq|||dz   |dz   f<   Œ Œ‘ |S )Nr€   r   rT   rU   ç      ð?gÍÌÌÌÌÌä?)r   r�   r‚   ÚmathÚhypotrƒ   ÚminrX   )ra   rd   ÚinnerÚouterÚcenterr…   r|   r†   r‡   ÚcxÚcyÚmax_rrˆ   r‰   rO   rŠ   s                   rP   Ú_radial_gradientzVisualRenderer._radial_gradient    s  € ð ‰ˆˆ1Ü�i‰i˜˜tÓ$ˆØ�X‰X‹ZˆØ˜‘˜Q‘  q¡	¨A¡ˆBˆÜ—
‘
˜1˜aÓ ˆÜ�q˜!˜Q–ˆAÜ˜1˜a –^�Ü˜œTŸZ™Z¨¨B©°°B±Ó7¸5À4¹<ÑHÓI�Ü" 5¨%°Ó3�Ø ��1�a�4‘Ø�q‘5˜1’9Ø#(�B�q˜1‘u˜a�x‘LØ�q‘5˜1“9Ø#(�B�q˜!˜a™%�x‘LØ˜1‘u˜q“yØ+0˜˜1˜q™5 ! a¡%˜<Ò(ñ $ð  ð ˆ
rR   c                óò   — g }|xs g d d D ]  }	 |j                  t        |«      «       Œ t        |«      dk  r.| j                  | j
                  | j                  | j                  g}|S # t        $ r Y Œiw xY w)Né   rU   )Úappendr
   Ú	ExceptionÚlenr_   r]   r^   )ra   ÚpaletteÚcolorsÚhex_cs       rP   Ú_parse_palettezVisualRenderer._parse_palette¹   sv   € Ø-/ˆØ’m  R aÓ(ˆEðØ—‘œj¨Ó/Õ0ð )ô
 ˆv‹;˜Š?Ø—g‘g˜tŸ|™|¨T¯[©[¸$¿+¹+ÐFˆFØˆøô	 ò Ùðús   �A*Á*	A6Á5A6c                ó4  — |\  }}|j                   \  }}t        ||z  ||z  «      }t        ||z  «      t        ||z  «      }	}|j                  ||	ft        j
                  j                  «      }||z
  dz  }
|	|z
  dz  }|j                  |
||
|z   ||z   f«      S )NrU   )rd   r„   rL   Úresizer   Ú
ResamplingÚLANCZOSÚcrop)ra   r†   rd   ÚtwÚthÚiwÚihÚscaleÚnwÚnhÚleftÚtops               rP   Ú
_fit_coverzVisualRenderer._fit_coverÄ   sŸ   € Ø‰ˆˆBØ—‘‰ˆˆBÜ�B˜‘G˜R "™WÓ%ˆÜ�R˜%‘Z“¤# b¨5¡j£/ˆBˆØ�j‰j˜"˜b˜¤5×#3Ñ#3×#;Ñ#;Ó<ˆØ�R‘˜A‰~ˆØ�B‰w˜1‰nˆØ�x‰x˜˜s D¨2¡I¨s°R©xÐ8Ó9Ð9rR   é    )é   é   é*   é   )éÿ   rµ   rµ   é2   )ÚalphaÚtintÚradiusÚborderc               óX  — |j                  d«      }t        j                  d|j                  d«      }t	        j
                  |«      }	|\  }
}}}|	j                  |
|||g|g |¢|‘­¬«       |r|	j                  |
|||g||d¬«       t        j                  ||«      j                  d«      S )NÚRGBA©r   r   r   r   ©r¹   ÚfillrU   ©r¹   ÚoutlineÚwidthr€   )Úconvertr   r�   rd   r   ÚDrawÚrounded_rectangleÚalpha_composite)ra   ÚbaseÚboxr·   r¸   r¹   rº   ÚrgbarH   ÚdrawÚx0Úy0Úx1Úy1s                 rP   Ú_glass_panelzVisualRenderer._glass_panelÎ   s«   € ð �|‰|˜FÓ#ˆÜ—)‘)˜F D§I¡I¨|Ó<ˆÜ�~‰~˜gÓ&ˆØ‰ˆˆB��BØ×Ñ  B¨¨BÐ/¸À^ÀtÀ^ÈUÁ^ÐÔTÙØ×"Ñ" B¨¨B°Ð#3¸FÈFÐZ[Ð"Ô\Ü×$Ñ$ T¨7Ó3×;Ñ;¸EÓBÐBrR   Úbottoméà  ©r   r   r   éæ   )Ú	directionÚheightrŠ   Ú	max_alphac               ó  — |\  }}t        j                  d|d«      }t        j                  |«      }	t	        ||«      }
t        |
«      D ]³  }t        ||t        |
dz
  d«      z  z  «      }|dk(  r'||
z
  |z   }|	j                  d|f||fgg |¢|‘­¬«       ŒM|dk(  r|	j                  d|f||fgg |¢|‘­¬«       Œq|dk(  sŒw|	j                  d|f||fgg |¢t        |d	z  |t        |
dz
  d«      z  z  «      ‘­¬«       Œµ |S )
Nr¼   r½   rT   rÐ   r   ©r¿   r®   Úfullçš™™™™™á?)	r   r�   r   rÄ   r�   rƒ   rL   r„   Úline)ra   rd   rÔ   rÕ   rŠ   rÖ   r…   r|   ÚscrimÚsdÚspanÚirM   rˆ   s                 rP   Ú_scrimzVisualRenderer._scrimá   s(  € ð ‰ˆˆ1Ü—	‘	˜& $¨Ó5ˆÜ�^‰^˜EÓ"ˆÜ�6˜1‹~ˆÜ�t–ˆAÜ�I ¤S¨°©°1Ó%5Ñ!5Ñ6Ó7ˆAØ˜HÒ$Ø˜‘H˜q‘L�Ø—‘˜!˜Q˜ ! Q Ð(¨{°¨{¸©{�Õ;Ø˜eÒ#Ø—‘˜!˜Q˜ ! Q Ð(¨{°¨{¸©{�Õ;Ø˜fÓ$Ø—‘˜!˜Q˜ ! Q Ð(Ð/g°Ð/g¼¸IÈÑ<LÐPQÔTWÐX\Ð_`ÑX`ÐbcÓTdÑPdÑ<eÓ8fÑ/g�Õhð ð ˆrR   c                óŠ   — |j                  t        j                  |j                  d«      |«      j                  d«      «       y )Nr¼   r€   )Úpaster   rÆ   rÃ   )ra   rÇ   rÜ   s      rP   Ú_apply_scrimzVisualRenderer._apply_scrimù   s/   € Ø�
‰
”5×(Ñ(¨¯©°fÓ)=¸uÓE×MÑMÈeÓTÕUrR   c                ó  — |\  }}t        d«      D ]ó  }|j                  d|«      |j                  d|«      }	}|j                  dd«      }
t        j                  d|d«      }t	        j
                  |«      }|j                  ||
z
  |	|
z
  ||
z   |	|
z   gg |¢d‘­¬«       |j                  t        j                  d	«      «      }|j                  t        j                  |j                  d«      |«      j                  d
«      «       Œõ y )Né   r   éd   é  r¼   r½   r¶   rØ   é$   r€   )rƒ   Úrandintr   r�   r   rÄ   ÚellipseÚfilterr   ÚGaussianBlurrâ   rÆ   rÃ   )ra   rÇ   r^   Úrngrd   r…   r|   Ú_r”   r•   ÚrÚblobÚbds                rP   Ú_decorative_blobsz VisualRenderer._decorative_blobsü   sà   € Ø‰ˆˆ1Ü�q–ˆAØ—[‘[  AÓ&¨¯©°A°qÓ(9�ˆBØ—‘˜C Ó%ˆAÜ—9‘9˜V T¨<Ó8ˆDÜ—‘ Ó%ˆBØ�J‰J˜˜Q™  Q¡¨¨Q©°°Q±Ð7¸mÀ¸mÈ¹mˆJÔLØ—;‘;œ{×7Ñ7¸Ó;Ó<ˆDØ�J‰J”u×,Ñ,¨T¯\©\¸&Ó-AÀ4ÓH×PÑPÐQVÓWÕXñ rR   c                óî   — |xs dj                  «       j                  dd«      j                  «       }|t        v r|S |t        v r	t        |   S t        j                  «       D ]  \  }}||v s||v sŒ|c S  y)Nr   Ú-rî   )ÚlowerÚreplaceÚstripÚLAYOUTSrI   Úitems)ra   Úlayoutr{   ÚtokenÚtargets        rP   Ú_resolve_layoutzVisualRenderer._resolve_layout  sy   € ØÒ,Ð,×3Ñ3Ó5×=Ñ=¸cÀ3ÓG×MÑMÓOˆØ”'‰>ØˆJØ”/Ñ!Ü" 3Ñ'Ð'Ü,×2Ñ2Ö4‰MˆE�6Ø˜‰|˜s eš|Ø’ð 5ð #rR   c                óÚ   — |xs dj                  «       j                  dd«      }dddddœddd	ddœd
ddddœdddd	dœdddddœdd
dddœdddddœdd
dddœdœ}|j                  ||d   «      S )NÚmodern_startuprô   rî   r�   T)Úhook_mulÚbody_mulÚ
brand_capsÚ	hook_boldgffffffò?g)\�Âõ(ì?Fgffffffî?gq=
×£pí?gÍÌÌÌÌÌì?g333333ë?gš™™™™™ñ?gÍÌÌÌÌÌð?g\�Âõ(\ï?)rÿ   Úapple_minimalÚswissÚluxuryÚ	brutalistÚ	newspaperÚ
futuristicrG   )rõ   rö   Úget)ra   Ú
typographyr{   Úprofiless       rP   Ú_typography_profilez"VisualRenderer._typography_profile  s¬   € ØÒ-Ð-×4Ñ4Ó6×>Ñ>¸sÀCÓHˆà+.¸CÈtÐbfÑgØ*.¸DÐPUÐdhÑiØ"&°DÈÐ[_Ñ`Ø#&°DÈÐ[`ÑaØ&)°tÈ4Ð^bÑcØ&*¸ÈDÐ_cÑdØ'+¸ÈDÐ_cÑdØ&*¸ÈDÐ_cÑdñ	
ˆð �|‰|˜C Ð*:Ñ!;Ó<Ð<rR   c                ó"   — |rdddddœS dddd	dœS )
Nrå   é   rU   é"   )Ú
hook_linesÚ	hook_wrapÚ
body_linesÚ	body_wrapr™   é   é   r³   © )ra   Úhas_bgs     rP   Ú_text_limitszVisualRenderer._text_limits   s%   € ÙØ"#°"ÀAÐTVÑWÐWØ¨bÀÐPRÑSÐSrR   c               óf   — t        ||«      d | D ]  }
|j                  ||f|
||¬«       ||	z  }Œ  |S )N©r¿   Úfont)r   Útext)ra   rÊ   r‰   rˆ   r  r  r¿   ÚwrapÚ	max_linesÚline_heightrÛ   s              rP   Ú_draw_lineszVisualRenderer._draw_lines%  sE   € ô ˜d DÓ)¨*¨9Ó5ˆDØ�I‰I�q˜!�f˜d¨°DˆIÔ9Ø�Ñ‰Að 6ð ˆrR   c                óÔ  — |\  }}t        |xr |j                  «       «      }|r®| j                  t        j                  |«      j                  d«      |«      }t        j                  |«      j                  d«      }t        j                  |«      j                  d«      }t        j                  d|d«      }	t        j                  ||	d«      }||fS |j                  g d¢«      }
|d   |t        dt        |«      dz
  «         }}|
d	k(  r| j                  |||«      }n0|
d
k(  r| j!                  |||d¬«      }n| j!                  |||d¬«      }| j#                  ||d   ||«       ||fS )Nr€   g¤p=
×£à?gáz®Gáò?rÒ   gìQ¸…ëÑ?)ÚdiagÚvertÚradialr   rT   r%  r$  T)r~   )r5   éÿÿÿÿ)Úboolre   r¯   r   ÚopenrÃ   r   Ú
BrightnessÚenhanceÚContrastr�   ÚblendÚchoicer�   rœ   r—   r‹   rò   )ra   rd   rž   Úbg_imagerí   r…   r|   r  rÇ   ÚshadeÚstylerV   rW   s                rP   Ú_build_basezVisualRenderer._build_base7  sS  € ð ‰ˆˆ1Ü�hÒ4 8§?¡?Ó#4Ó5ˆÙØ—?‘?¤5§:¡:¨hÓ#7×#?Ñ#?ÀÓ#FÈÓMˆDÜ×*Ñ*¨4Ó0×8Ñ8¸Ó>ˆDÜ×(Ñ(¨Ó.×6Ñ6°tÓ<ˆDÜ—I‘I˜e T¨9Ó5ˆEÜ—;‘;˜t U¨DÓ1ˆDð �Vˆ|Ðð —J‘JÒ9Ó:ˆEØ˜A‘Y ¤s¨1¬c°&«k¸A©oÓ'>Ñ ?�ˆBØ˜Ò Ø×,Ñ,¨T°2°rÓ:‘Ø˜&’Ø—~‘~ d¨B°¸T�~ÓB‘à—~‘~ d¨B°¸T�~ÓB�Ø×"Ñ" 4¨°©°S¸$Ô?Ø�Vˆ|ÐrR   r   Údefault)Úfooterrú   r�   r.  Úcreative_keyrd   r  c       	        ó:  — | j                  |«      }| j                  |«      }| j                  ||z   «      }| j                  |
«      }| j	                  t        |xr |j                  «       «      «      }| j                  |	|||«      \  }}t        j                  |«      }t        | d|› �| j                  «      } ||||||xs | j                  |||	|||¬«       |j                  j                  dd¬«       |j                  d«      j!                  |dd¬«       |S )NÚ_layout_)	ÚhookÚbodyr3  rž   rí   rd   ÚtypoÚlimitsr  T)ÚparentsÚexist_okr€   ÚPNG)ÚformatÚoptimize)rý   r    r}   r  r  r'  re   r1  r   rÄ   ÚgetattrÚ_layout_editorial_overlayr\   ÚparentÚmkdirrÃ   Úsave)ra   Úout_pathr7  r8  r3  rú   r�   r.  r4  rd   r  rž   rí   r9  r:  rÇ   r  rÊ   Úrenderers                      rP   Úcompose_herozVisualRenderer.compose_heroT  s  € ð ×%Ñ% fÓ-ˆØ×$Ñ$ WÓ-ˆØ�j‰j˜¨Ñ.Ó/ˆØ×'Ñ'¨
Ó3ˆØ×"Ñ"¤4¨Ò(F°X·_±_Ó5FÓ#GÓHˆà×'Ñ'¨¨f°hÀÓD‰ˆˆfÜ�~‰~˜dÓ#ˆÜ˜4 8¨F¨8Ð!4°d×6TÑ6TÓUˆÙØØØØØÒ,˜TŸ_™_ØØØØØØõ	
ð 	�‰×Ñ d°TÐÔ:Ø�‰�UÓ× Ñ  °%À$Ð ÔGØˆrR   c                óÒ   — | j                  |||||j                  dd«      |j                  d«      |j                  d«      |j                  d|«      ||j                  d«      ¬«
      S )Nrú   r   r�   r.  r4  r  ©	r7  r8  r3  rú   r�   r.  r4  rd   r  )rG  r
  )ra   rE  r7  r8  r3  rd   Úkwargss          rP   Úrender_singlezVisualRenderer.render_single}  sl   € ð × Ñ ØØØØØ—:‘:˜hÐ(;Ó<Ø—J‘J˜yÓ)Ø—Z‘Z 
Ó+ØŸ™ N°DÓ9ØØ—z‘z ,Ó/ð !ó 
ð 	
rR   c                ó  — t        t        «      }|j                  d«      xs ||t        |«      z     }	|dz   › d|› �}
| j	                  ||||
|	|j                  d«      |j                  d«      |› d|› �||j                  d«      ¬«
      S )	Nrú   rT   z / r�   r.  rô   r  rI  )Úlistrø   r
  rœ   rG  )ra   rE  ÚindexÚtotalÚtitler8  rd   rJ  Úlayoutsrú   r3  s              rP   Úrender_carousel_slidez$VisualRenderer.render_carousel_slide“  sž   € ô ”w“-ˆØ—‘˜HÓ%ÒF¨°¼¸W»Ñ1EÑ)FˆØ˜A‘I�;˜c % Ð)ˆØ× Ñ ØØØØØØ—J‘J˜yÓ)Ø—Z‘Z 
Ó+Ø!˜7 ! E 7Ð+ØØ—z‘z ,Ó/ð !ó 
ð 	
rR   c       	        óp  — |\  }}|d   }| j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }|	d   r| j                  j                  «       n| j                  }|j	                  d	d	|d
gd¬«       |j                  d|d| j                  dd¬«      ¬«       |j                  d|dz
  dfg|d¬«       |j                  |dz
  dfd|| j                  dd¬«      ¬«       |rdnd}|j	                  d	||z
  ||gd¬«       ||z
  dz   }| j                  |d|||d|
d    |
d!   t        d"|	d   z  «      ¬#«	      }|d$z  }| j                  |d|||d%|
d&   |
d'   t        d|	d   z  «      ¬#«	       |j                  d|d"z
  f|d d( || j                  d)d¬«      ¬«       y )*Nr&  é.   r   r  ©r=   é   r  r  r   ræ   ©rµ   rµ   rµ   rØ   )é,   é    )é   rZ  rZ  r  Tr  )rX  éX   rX  r[  r™   ©r¿   rÂ   rç   é&   ÚBRIEFINGr  éT  i|  )éü   éû   éø   rè   )r  r  r  r  r  é4   ©r  r¿   r  r  r   rs   )éF   re  éP   r  r  éA   é   )rq   rL   r\   ÚupperÚ	rectangler  rÛ   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   Úhook_fÚbody_fÚbrandÚblock_hrˆ   s                       rP   Ú_layout_magazine_coverz%VisualRenderer._layout_magazine_cover¯  s9  € Ø‰ˆˆ1Ø˜‘ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ+/°Ò+=�—‘×%Ñ%Ô'À4Ç?Á?ˆà�‰˜˜1˜a �~¨OˆÔ<Ø�	‰	�(˜E¨¸4¿:¹:ÀbÈt¸:Ó;Tˆ	ÔUØ�	‰	�8˜a "™f b˜\Ð*°¸qˆ	ÔAØ�	‰	�1�s‘7˜B�- °&¸t¿z¹zÈ"ÐSW¸zÓ?Xˆ	ÔYá‘# SˆØ�‰˜˜1˜w™;¨¨1Ð-°OˆÔDØ�‰K˜"ÑˆØ×Ñ˜T 2 q¨$°VÀ,ÐU[Ð\gÑUhÐtzð  |Hñ  uIô  WZð  []ð  `dð  eoñ  `pñ  [pó  WqÐó  rˆØ	ˆQ‰ˆØ×Ñ˜˜r 1 d°¸lÐQWÐXcÑQdÐpvð  xDñ  qEô  SVð  WYð  \`ð  akñ  \lñ  Wló  SmÐô  	nØ�	‰	�2�q˜2‘v�,  s¨ °&¸t¿z¹zÈ"ÐSW¸zÓ?Xˆ	ÕYrR   c       	        óž  — |\  }}|d   }|rdnd}| j                  || j                  |d|¬«      «       |j                  | j                  |d||z
  dz   |dz
  |dz
  fd	d
¬«      «       t	        j
                  |«      }|j                  d||z
  dz   |dz
  |dz
  gd
|d¬«       |j                  d|	d   r| j                  j                  «       n| j                  || j                  d
d¬«      ¬«       | j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }||z
  dz   }| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }|dz  }| j                  |d|||d |
d!   |
d"   t        d|	d   z  «      ¬«	       |j                  d|d#z
  f|d d$ d%| j                  d«      ¬«       y )&Nr&  i¤  rÑ   rÐ   )rÔ   rÕ   é(   rh  rè   é²   é   ©r·   r¹   rU   rÀ   )é@   é0   r  TrU  r  r¶   r   r  r´   r  é8   ru  rW  r  r  é:   rd  é
   ©éÃ   éÍ   éá   r  r  éH   re  )é–   r°   é´   )rã   rà   râ   rÏ   r   rÄ   rÅ   r  r\   ri  rq   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   Úpanel_hrk  rl  rˆ   s                      rP   rA  z(VisualRenderer._layout_editorial_overlayÃ  s_  € Ø‰ˆˆ1Ø˜‘ˆÙ‘# SˆØ×Ñ˜$ §¡¨D¸HÈW Ó UÔVØ�
‰
�4×$Ñ$ T¨B°°G±¸bÑ0@À!ÀbÁ&È!ÈbÉ&Ð+QÐY\ÐegÐ$ÓhÔiÜ�~‰~˜dÓ#ˆØ×Ñ  A¨¡K°"Ñ$4°a¸"±f¸aÀ"¹fÐEÈbÐZ`ÐhiÐÔjØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐekÐrv×r|Ñr|Ð}ð  GKÐr|ó  sLˆ	ô  	MØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ�‰K˜"ÑˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ	ˆR‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜2‘v�,  s¨ °/ÈÏ
É
ÐSUËˆ	ÕWrR   c       	   
     ó(  — |\  }}|d   }|s;|j                  t        j                  |t        j                  d|d«      d«      «       | j	                  || j                  |d|d¬«      «       t        j                  |«      }| j                  t        d|	d	   z  «      |	d
   ¬«      }| j                  t        d|	d   z  «      «      }t        ||
d   «      d |
d    }t        |«      t        d|	d	   z  «      z  t        d|	d   z  «      z   }||z
  dz  dz
  }|D ]R  }|j                  d||¬«      }|d   |d   z
  }|j                  ||z
  dz  |f|d|¬«       |t        d|	d	   z  «      z  }ŒT |dz  }t        ||
d   dz   «      d |
d    D ]R  }|j                  d||¬«      }|d   |d   z
  }|j                  ||z
  dz  |f|d|¬«       |t        d|	d   z  «      z  }ŒT |j                  |dz  dz
  |dz
  f|d d  || j                  dd!¬«      ¬«       y )"Nr&  r€   )r  r  rs   çffffffÖ?rÙ   éŒ   ©rÔ   rÕ   rÖ   ru  r   r  rU  é   r  r  r  r~  r¶   rU   rh  ©r   r   )r  r   rW  r  rt   r  é   r  )r€  é¹   r{  r]  rf  rq  T)râ   r   r,  r�   rã   rà   r   rÄ   rq   rL   r   rœ   Útextbboxr  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rk  rl  r  Útotal_hrˆ   rÛ   Úbboxr¦   s                          rP   Ú_layout_apple_keynotez$VisualRenderer._layout_apple_keynoteÔ  sL  € Ø‰ˆˆ1Ø˜‘ˆÙØ�J‰J”u—{‘{ 4¬¯©°5¸$À	Ó)JÈDÓQÔRØ×Ñ˜$ §¡¨D¸FÈ1ÐX[ Ó \Ô]Ü�~‰~˜dÓ#ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆÜ˜t V¨KÑ%8Ó9Ð:P¸FÀ<Ñ<PÐQˆ
Ü�j“/¤C¨¨T°*Ñ-=Ñ(=Ó$>Ñ>ÄÀRÈ$ÈzÑJZÑEZÓA[Ñ[ˆØ�‰[˜QÑ Ñ#ˆÛˆDØ—=‘= ¨°F�=Ó;ˆDØ�a‘˜4 ™7Ñ"ˆBØ�I‰I˜˜B™ 1‘} aÐ(¨$°_È6ˆIÔRØ”�R˜$˜zÑ*Ñ*Ó+Ñ+‰Að	 ð
 	
ˆR‰ˆÜ˜d F¨;Ñ$7¸!Ñ$;Ó<Ð=S¸vÀlÑ?SÓTˆDØ—=‘= ¨°F�=Ó;ˆDØ�a‘˜4 ™7Ñ"ˆBØ�I‰I˜˜B™ 1‘} aÐ(¨$°_È6ˆIÔRØ”�R˜$˜zÑ*Ñ*Ó+Ñ+‰Að	 Uð
 	�	‰	�1˜‘6˜B‘;  B¡Ð'¨°°¨¸6ÈÏ
É
ÐSUÐ\`È
ÓHaˆ	ÕbrR   c       	        ój  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|j                  ddd|g|¬«       |j                  dd|dgt        |dd«      ¬«       |j	                  d	|	d
   r| j
                  j                  «       n| j
                  d| j                  dd¬«      ¬«       |j	                  |dz
  dfdd| j                  d«      ¬«       |j                  | j                  |dd|dz
  |dz
  fddd¬«      «       t        j                  |«      }| j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }d}| j                  |d|||d|
d    |
d!   t        d"|	d   z  «      ¬#«	      }|dz  }t        t        ||
d$   «      d |
d%    «      D ]M  \  }}|j!                  d|d&z   d'|d(z   g|¬«       |j	                  d)|f|d|¬«       |t        d*|	d   z  «      z  }ŒO |j	                  d|d+z
  f|d d, d-| j                  d«      ¬«       y ).Nr&  rT   r   é   rØ   éx   rÒ   ç333333Ã?)rv  r³   r  rW  r´   TrU  r  rv  ÚSLIDE©éÈ   éÒ   rÓ   r  r°   ræ   r”  )rZ  rt   r´   rh  ©r·   r¸   r¹   rX  r   r  rV  r  rf  r  r  rc  rd  r  r  rs   é`   rs  ép   rq  r~  é<   )é‚   r„  r°   )rœ   r]   rj  rX   r  r\   ri  rq   râ   rÏ   r   rÄ   rL   r!  Ú	enumerater   rê   )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   r]   rk  rl  rˆ   rß   rÛ   s                        rP   Ú_layout_pitch_deckz!VisualRenderer._layout_pitch_deckí  s“  € Ø‰ˆˆ1Ø˜‘ˆÜ" 6›{¨Qš�&˜’)°D·L±LˆØ�‰˜˜1˜b !�}¨6ˆÔ2Ø�‰˜˜A˜q #�¬Z¸ÀÈDÓ-QˆÔRØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐetÐ{÷  |Fñ  |Fð  GIð  PTð  |Fó  |Uˆ	ô  	VØ�	‰	�1�s‘7˜B�- ¨ÀTÇZÁZÐPRÃ^ˆ	ÔTØ�
‰
�4×$Ñ$ T¨B°°Q¸±V¸QÀ¹WÐ+EÈSÐWcÐlnÐ$ÓoÔpÜ�~‰~˜dÓ#ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ	ˆR‰ˆÜ ¤¨4°¸Ñ1DÓ!EÐF\ÈÈ|ÑH\Ð!]Ö^‰GˆAˆtØ�L‰L˜"˜a !™e R¨¨R©Ð0°vˆLÔ>Ø�I‰I�s˜A�h ¨?ÀˆIÔHØ”�R˜$˜zÑ*Ñ*Ó+Ñ+‰Að _ð 	�	‰	�2�q˜2‘v�,  s¨ °/ÈÏ
É
ÐSUËˆ	ÕWrR   c       	        ó*  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|r%| j                  || j                  |d|d¬«      «       t	        j
                  |«      }d}|||dz  |dz  z
  |dz  |dz  z
  f|dz  |dz  z   |||z
  |dz  |dz  z
  f||dz  |dz  z   |dz  |dz  z
  ||z
  f|dz  |dz  z   |dz  |dz  z   d|z  dz  |dz  z
  ||z
  fd|z  dz  |dz  z   |dz  |dz  z   ||z
  ||z
  fg}||d	d
|g}g d¢}t        |||«      D ]–  \  }}}|j                  | j                  ||d|d¬«      «       t	        j
                  |«      }|j                  t        |«      ddd¬«       |d   dz   |d   dz   }}|j                  ||f|d| j                  dd¬«      ¬«       Œ˜ |d   }| j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }|d   dz   }| j                  ||d   dz   |||dd|
d   t        d |	d   z  «      ¬!«	      }| j                  ||d   dz   |d"z   ||d#d|
d$   t        d%|	d   z  «      ¬!«	       |j                  |d"z   |d&z
  f|d d' d(| j                  d«      ¬«       y ))Nr&  rT   rÙ   ræ   r…  rt   rU   rå   )r†  é#   r¶   )rq  é-   é>   )ÚAIÚDATAõ   â€¢r£  ÚGOé¾   r  r–  )rµ   rµ   rµ   rq  rÀ   r   rh  rW  r  TrU  r  rè   r   r  r  rw  rs  r�  r  r³   rd  rs   )r•  é×   rÓ   r  r´   rv  r¶   ©r€  r¥  r•  )rœ   r]   rã   rà   r   rÄ   Úziprâ   rÏ   rÅ   rM  r  rq   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rW   ÚgapÚcellsÚfillsÚlabelsrÈ   r¿   ÚlabelÚlxÚlyÚmainrk  rl  rˆ   s                                rP   Ú_layout_bento_gridz!VisualRenderer._layout_bento_grid  sx  € Ø‰ˆˆ1Ø˜‘ˆÜ˜f›+¨š/ˆV�AŠY¨t¯|©|ˆÙØ×Ñ˜d D§K¡K°ÀÈqÐ\_ KÓ$`ÔaÜ�~‰~˜dÓ#ˆØˆà�#�q˜A‘v  q¡Ñ(¨!¨q©&°3¸!±8Ñ*;Ð<Ø�!‰V�c˜Q‘hÑ  Q¨¡W¨a°1©f°s¸a±xÑ.?Ð@Ø�!�q‘&˜3 !™8Ñ# Q¨!¡V¨c°Q©hÑ%6¸¸C¹Ð@Ø�!‰V�c˜Q‘hÑ  Q¡¨°©Ñ 1°1°q±5¸A±:ÀÀqÁÑ3HÈ!ÈcÉ'ÐRØ�‰U�a‰Z˜# ™(Ñ" A¨¡F¨S°A©XÑ$5°q¸3±wÀÀCÁÐHð
ˆð ˜˜\¨<¸Ð@ˆÚ3ˆÜ # E¨5°&Ö 9ÑˆC��uØ�J‰J�t×(Ñ(¨¨s¸#ÀDÐQSÐ(ÓTÔUÜ—>‘> $Ó'ˆDØ×"Ñ"¤4¨£9°RÐATÐ\]Ð"Ô^Ø˜‘V˜b‘[ # a¡&¨2¡+�ˆBØ�I‰I�r˜2�h ¨OÀ$Ç*Á*ÈRÐVZÀ*ÓB[ˆIÕ\ð !:ð �Q‰xˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ�‰G�b‰LˆØ×Ñ˜T 4¨¡7¨R¡<°°D¸vÈOÐbdÐpvð  xDñ  qEô  SVð  WYð  \`ð  akñ  \lñ  Wló  SmÐó  nˆØ×Ñ˜˜t A™w¨™|¨Q°©U°D¸vÈOÐbdÐpvð  xDñ  qEô  SVð  WYð  \`ð  akñ  \lñ  Wló  SmÐô  	nØ�	‰	�3˜‘7˜A ™FÐ# V¨C¨R [°ÈTÏZÉZÐXZË^ˆ	Õ\rR   c       	        ó`  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }t        |dz  «      }t        |dz  «      }t        j                  d|d«      }t        j                  |«      }|j                  d|||gg |¢d‘­¬	«       |j                  d|||d
z   gg |¢d‘­¬	«       |j                  t        j                  |j                  d«      |«      j                  d«      «       t        j                  |«      }|j                  d|	d   r| j                  j                  «       n| j                  d| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }|dz   }| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }|dz  }| j                  |d|||d|
d   |
d    t        d!|	d   z  «      ¬«	       |j                  d|d"z
  f|d d# || j                  d$d¬«      ¬«       y )%Nr&  rT   gR¸…ëQØ?g
×£p=
ç?r¼   r½   r   r¦  rØ   rˆ  rµ   r€   ©rv  rv  r  rW  rV  TrU  r  rv  r   r  r  rè   r  r  é6   rd  rs   ©éÜ   r}  éð   r  r  rY  rw  r™  rh  )rœ   r]   rL   r   r�   r   rÄ   rj  râ   rÆ   rÃ   r  r\   ri  rq   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   r]   Ú	banner_y0Ú	banner_y1r&   rñ   rk  rl  rˆ   s                          rP   Ú_layout_hero_bannerz"VisualRenderer._layout_hero_banner!  sž  € Ø‰ˆˆ1Ø˜‘ˆÜ" 6›{¨Qš�&˜’)°D·L±LˆÜ˜˜D™“Mˆ	Ü˜˜D™“Mˆ	Ü—‘˜6 4¨Ó6ˆÜ�^‰^˜FÓ#ˆØ
�‰�a˜ A yÐ1¸¸'¸À3¹ˆÔHØ
�‰�a˜ A y°1¡}Ð5¸N¸f¸NÀc¹NˆÔKØ�
‰
”5×(Ñ(¨¯©°fÓ)=¸vÓF×NÑNÈuÓUÔVÜ�~‰~˜dÓ#ˆØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐetÐ{÷  |Fñ  |Fð  GIð  PTð  |Fó  |Uˆ	ô  	VØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ˜‰NˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ	ˆQ‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜2‘v�,  s¨ °&¸t¿z¹zÈ"ÐSW¸zÓ?Xˆ	ÕYrR   c       	        ó®  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|r%| j                  || j                  |ddd¬«      «       t	        j
                  |«      }|j                  dd|dgt        |d	d
«      ¬«       |j                  dd|| j                  dd¬«      ¬«       |j                  |dz
  df| j                  d d j                  «       d| j                  dd¬«      ¬«       d|dz  df|dz
  dfg}t        |«      D ]®  \  }\  }}d}|j                  ||z
  ||z
  ||z   ||z   g|dk(  r|n|dd¬«       |j                  |dz
  |dz
  f|dz   › d| j                  dd¬«      ¬«       |t        |«      dz
  k  sŒ{||dz      d   }|j                  ||z   |f||z
  ||dz      d   fgdd¬«       Œ° |j                  | j!                  |d d!|d z
  |d"z
  fd#d$¬%«      «       t	        j
                  |«      }| j                  t#        d |	d&   z  «      |	d'   ¬«      }| j                  t#        d|	d(   z  «      «      }d)}| j%                  |d*|||d|
d+   |
d,   t#        d-|	d&   z  «      ¬.«	      }| j%                  |d*|d/z   ||d0|
d1   |
d2   t#        d|	d(   z  «      ¬.«	       |j                  d*|dz
  f|d d3 || j                  d«      ¬«       y )4Nr&  rT   r®   r”  r€  r…  r   r[  rÒ   gš™™™™™É?rØ   )rq  r´   ÚINSIGHTrs  TrU  r  r†  rh  rW  )r�  r”  rU   i  r�  rw  ©r¿   rÁ   rÂ   rZ  r  rY  rå   r\  rq  é�  rf  r‰  r  rt  r   r  r  i®  ru  r  r  rv  rd  rs   ©r¥  r”  r¶  r  r  é7   )rœ   r]   rã   rà   r   rÄ   rj  rX   r  rq   r\   ri  r›  rê   rÛ   râ   rÏ   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rW   Únodesrß   r”   r•   rï   Únxrk  rl  rˆ   s                            rP   Ú_layout_infographicz"VisualRenderer._layout_infographic6  sq  € Ø‰ˆˆ1Ø˜‘ˆÜ˜f›+¨š/ˆV�AŠY¨t¯|©|ˆÙØ×Ñ˜d D§K¡K°ÀÈcÐ]` KÓ$aÔbÜ�~‰~˜dÓ#ˆØ�‰˜˜1˜a �}¬:°b¸)ÀSÓ+IˆÔJØ�	‰	�(˜I¨F¸¿¹ÀBÈT¸Ó9Rˆ	ÔSØ�	‰	�1�s‘7˜B�- §¡°°"Ð!5×!;Ñ!;Ó!=ÀOÐZ^×ZdÑZdÐegÐnrÐZdÓZsˆ	Ôtà˜a 1™f c˜]¨Q°©W°c¨NÐ;ˆÜ$ UÖ+‰KˆA‰x��BØˆAØ�L‰L˜"˜q™& " q¡&¨"¨q©&°"°q±&Ð9È!ÈqÊ&ÁÐVXÐbqÐyzˆLÔ{Ø�I‰I�r˜B‘w  R¡Ð(¨Q°©U¨G¸?ÐQU×Q[ÑQ[Ð\^ÐeiÐQ[ÓQjˆIÔkØ”3�u“: ‘>Ó!Ø˜1˜q™5‘\ !‘_�Ø—	‘	˜B ™F B˜<¨"¨q©&°%¸¸A¹±,¸q±/Ð)BÐCÈ/Ðab�	Õcð ,ð 	�
‰
�4×$Ñ$ T¨B°°Q¸±V¸QÀ¹VÐ+DÈCÐXZÐ$Ó[Ô\Ü�~‰~˜dÓ#ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ×Ñ˜˜r 1 q¡5¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐô  	uØ�	‰	�2�q˜2‘v�,  s¨ °&¸t¿z¹zÈ"»~ˆ	ÕNrR   c       	        ó  — |\  }}|d   }d}| j                  || j                  |ddd¬«      «       t        j                  |«      }|j	                  dd|dgd	¬
«       |j                  ddd| j                  dd¬«      ¬«       |j	                  |dz
  d|dz
  dgd¬
«       |j                  |dz
  d|dz
  dg|¬
«       |j                  |dz
  dfdd| j                  dd¬«      ¬«       |j	                  d|dz
  ||gd¬
«       |j	                  d|dz
  d |g|¬
«       | j                  t        d|	d!   z  «      d¬«      }| j                  t        d"|	d#   z  «      «      }|dz
  }| j                  |d$|||d|
d%   |
d&   t        d'|	d!   z  «      ¬(«	      }| j                  |d$|d)z   ||d*|
d+   |
d,   t        d$|	d#   z  «      ¬(«	       |j                  d$|d-z
  f| j                  › d.|d d/ › �|| j                  d0d¬«      ¬«       y )1Nr&  )r¶  r]  r]  rÐ   i@  r•  r…  r   rw  )r€  rh  r†  rØ   )rh  r�  ÚBREAKINGrW  rs  TrU  r  r°   rZ  rh  rX  rÒ   r  r  éˆ   rè   é€   rt   ÚLIVEr·  )rZ  r�  r  rs   r   rV  r  rY  r  r  r¶   rd  rˆ  r§  r  r  rv  z  |  rŸ  r  )rã   rà   r   rÄ   rj  r  rq   rê   rL   r!  r\   )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   Úlive_redrk  rl  rˆ   s                      rP   Ú_layout_news_broadcastz%VisualRenderer._layout_news_broadcastR  s�  € Ø‰ˆˆ1Ø˜‘ˆØ ˆØ×Ñ˜$ §¡¨D¸HÈSÐ\_ Ó `ÔaÜ�~‰~˜dÓ#ˆà�‰˜˜1˜a �}¨=ˆÔ9Ø�	‰	�(˜J¨_À4Ç:Á:ÈbÐW[À:ÓC\ˆ	Ô]Ø�‰˜˜C™  Q¨¡V¨RÐ0°yˆÔAØ�‰�a˜#‘g˜r 1 s¡7¨BÐ/°hˆÔ?Ø�	‰	�1�s‘7˜B�- ¨oÀDÇJÁJÈrÐX\ÀJÓD]ˆ	Ô^à�‰˜˜1˜s™7 A qÐ)°ˆÔ=Ø�‰˜˜1˜s™7 A qÐ)°ˆÔ7Ø—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ�‰GˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ×Ñ˜˜r 1 q¡5¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐô  	uØ�	‰	�2�q˜2‘v�, 4§?¡?Ð"3°5¸ÀÀ¸¸Ð FÈVÐZ^×ZdÑZdÐegÐnrÐZdÓZsˆ	ÕtrR   c       	        ó^  — |\  }}|d   }|r%| j                  || j                  |d|d¬«      «       t        j                  |«      }|j	                  d|	d   r| j
                  j                  «       n| j
                  || j                  dd¬	«      ¬
«       d}|j                  |df||dz
  fgdd¬«       d|dfd|dfd|dfg}| j                  t        d|	d   z  «      |	d   ¬	«      }| j                  t        d|	d   z  «      «      }|D ]¡  \  }}}|j                  |dz
  |dz
  |dz   |dz   g|dd¬«       |r|n|}|r|
d   n|
d   }|r|
d   n|
d   }|d z   }t        t        ||«      d | «      D ]8  \  }}|j	                  ||d!z
  |t        d"|	d   z  «      z  z   f||rdnd#|¬
«       Œ: Œ£ y )$Nr&  rÙ   éZ   r…  )rv  rq  r  rs  TrU  r  rf  r�  ræ   rW  r™   r\  r„  r_  Fé  r]  r   r  r  rZ  rU   r½  r  r  r  r  rè   rs   r  r¿  )rã   rà   r   rÄ   r  r\   ri  rq   rÛ   rL   rê   r›  r   )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   Úline_xÚstepsrk  rl  Úy_posr  Úis_hookr  r  Úmax_lÚtxrß   rÛ   s                               rP   Ú_layout_timelinezVisualRenderer._layout_timelineh  s  € Ø‰ˆˆ1Ø˜‘ˆÙØ×Ñ˜d D§K¡K°ÀÈqÐ\^ KÓ$_Ô`Ü�~‰~˜dÓ#ˆØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐekÐrv×r|Ñr|Ð}ð  GKÐr|ó  sLˆ	ô  	MØˆØ�	‰	�F˜C�= 6¨1¨s©7Ð"3Ð4¸?ÐRSˆ	ÔTà�$˜ÐØ�$˜ÐØ�&˜%Ð ð
ˆð
 —‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆÛ$)Ñ ˆE�4˜Ø�L‰L˜& 2™+ u¨r¡z°6¸B±;ÀÈÁ
ÐKÐRXÐbqÐyzˆLÔ{Ù$‘6¨&ˆDÙ*1�6˜+Ò&°v¸kÑ7JˆDÙ,3�F˜<Ò(¸ÀÑ9MˆEØ˜"‘ˆBÜ$¤Y¨t°TÓ%:¸6¸EÐ%BÖC‘��4Ø—	‘	˜2˜u q™y¨1¬s°2¸¸ZÑ8HÑ3HÓ/IÑ+IÑIÐJÈDÑjqÑWfð  xGð  NR�	õ  Sñ Dñ %*rR   c       	        ó$  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|j                  t        j                  |t        j
                  d|d«      |rdnd«      «       t        j                  |«      }|j                  ddd|gd	¬
«       t        g d¢«      D ]\  \  }}|j                  dd|dz  z   dd|dz  z   gd|dk(  r|nd¬«       |j                  dd|dz  z   f|d| j                  d«      ¬«       Œ^ ddd|dz
  dfddd|dz
  dfg}t        |«      D ]×  \  }}|j                  | j                  ||dd d!¬"«      «       t        j                  |«      }|j                  |d   d#z   |d   d!z   fd$|dz   › �d%| j                  d#«      ¬«       t        d&«      D ]R  }|j                  dd'«      }|d   dz   |d(z  z   }|j                  ||d)   dz
  |z
  |dz   |d)   dz
  g|d*k(  r|n|¬
«       ŒT ŒÙ |j                  | j                  |d+d,|dz
  |dz
  fd-d#¬.«      «       t        j                  |«      }| j                  t!        d/|	d0   z  «      |	d1   ¬2«      }| j                  t!        d3|	d4   z  «      «      }d5}| j#                  |d6|||d7|
d8   |
d9   t!        d:|	d0   z  «      ¬;«	      }| j#                  |d6|d<z   ||d=|
d>   |
d?   t!        d(|	d4   z  «      ¬;«	       |j                  d6|d@z
  f|d dA || j                  d#«      ¬«       y )BNr&  rT   r€   )r�  rt   rs  çÍÌÌÌÌÌÜ?r‘  r   r”  )r  rh  rY  rØ   )ÚHomeÚMetricsÚFeedrh  rf  rw  r€  r�  ry  )r´   rY  rv  r¾   rè   é\   rµ  r  r  )rÓ   rq  rÍ  r€  i  rq  r†  )rÓ   r”  rÍ  r_  r_  éª   ©r  rV  rq  r�  r–  rt   zMetric ©r„  r  rÛ  r  re  r´   rå   rU   rÓ   ir  r{  rt  r  r   r  rU  r  r  r¾  rç   rW  r  r  r³   rd  rˆ  ©rÛ  r€  r”  r  r  éD   r¶   )rœ   r]   râ   r   r,  r�   r   rÄ   rj  r›  rÅ   r  rq   rÏ   rƒ   ré   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rW   rß   r­  ÚcardsrÈ   ÚjÚbhÚbxrk  rl  rˆ   s                             rP   Ú_layout_dashboard_uiz#VisualRenderer._layout_dashboard_ui�  s®  € Ø‰ˆˆ1Ø˜‘ˆÜ˜f›+¨š/ˆV�AŠY¨t¯|©|ˆØ�
‰
”5—;‘;˜t¤U§Y¡Y¨u°d¸LÓ%IÑSYÉ4Ð_cÓdÔeÜ�~‰~˜dÓ#ˆà�‰˜˜1˜c 1�~¨LˆÔ9Ü!Ò"=Ö>‰HˆAˆuØ×"Ñ" B¨¨Q°©V©°S¸#ÀÀBÁ¹,Ð#GÐPRÐ_`ÐdeÒ_eÑY[ÐkwÐ"ÔxØ�I‰I�r˜2  B¡™;Ð'¨°_È4Ï:É:ÐVXË>ˆIÕZð ?ð % s¨B°°B±¸Ð&<Ð>RÐUXÐZ]Ð_`ÐceÑ_eÐgjÐTkÐlˆÜ Ö&‰FˆAˆsØ�J‰J�t×(Ñ(¨¨s¸#ÀLÐY[Ð(Ó\Ô]Ü—>‘> $Ó'ˆDØ�I‰I�s˜1‘v ‘{ C¨¡F¨R¡KÐ0°G¸AÀ¹E¸7Ð2CÈ/Ð`d×`jÑ`jÐkmÓ`nˆIÔoä˜1–X�Ø—[‘[  RÓ(�Ø˜‘V˜b‘[ 1 r¡6Ñ)�Ø—‘  C¨¡F¨R¡K°"Ñ$4°b¸2±g¸sÀ1¹vÈ¹{ÐKÐ\]ÐabÒ\bÑRXÐhj�Õkñ ð 'ð 	�
‰
�4×$Ñ$ T¨C°°a¸"±f¸aÀ"¹fÐ+EÈSÐY[Ð$Ó\Ô]Ü�~‰~˜dÓ#ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 3¨¨4°fÀ?ÐY_Ð`kÑYlÐx~ð  @Lñ  yMô  [^ð  _að  dhð  isñ  dtñ  _tó  [uÐó  vˆØ×Ñ˜˜s A¨¡E¨4°fÀ?ÐY_Ð`kÑYlÐx~ð  @Lñ  yMô  [^ð  _að  dhð  isñ  dtñ  _tó  [uÐô  	vØ�	‰	�3˜˜B™�- ¨¨ °6ÀÇ
Á
È2Ãˆ	ÕOrR   c       	   	     ó>  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|dz  }t        j                  d|d«      }t	        j
                  |«      }|j                  dd||gg t        |dd«      ¢d	‘­¬
«       t        j                  d|d«      }t	        j
                  |«      }|j                  |d||gg t        |dd«      ¢d	‘­¬
«       |j                  t        j                  |j                  d«      |«      j                  d«      «       |j                  t        j                  |j                  d«      |«      j                  d«      «       t	        j
                  |«      }|j                  |dz
  |dz  dz
  |dz   |dz  dz   gd¬
«       |j                  |dz
  |dz  dz
  fdd| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }t        |d«      d d }t        |«      D ]"  \  }}|j                  dd|dz  z   f|d|¬«       Œ$ t        |d«      d |
d    }t        |«      D ]%  \  }}|j                  |dz   d|dz  z   f|d|¬«       Œ' |j                  d|d z
  fd!d"| j                  d#d¬«      ¬«       |j                  |dz   |d z
  fd$d"| j                  d#d¬«      ¬«       |j                  |dz  d%z
  |dz
  f|d d || j                  d&«      ¬«       y )'Nr&  rT   rU   r¼   r½   r   rÒ   rƒ  r”  rØ   rÖ  r€   rè   rW  r  rh  ÚVS)rh  rh  r†  r´   TrU  r  rY  r   r  r  rZ  r€  rq  r  r  ru  ÚBEFOREr“  r  ÚAFTERræ   rt   )rœ   r]   r   r�   r   rÄ   rj  rX   râ   rÆ   rÃ   r  rq   rL   r   r›  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rW   ÚmidÚ
left_panelÚlpÚright_panelÚrprk  rl  Ú	left_textrß   rÛ   Ú
right_texts                              rP   Ú_layout_split_comparisonz'VisualRenderer._layout_split_comparison¡  s	  € Ø‰ˆˆ1Ø˜‘ˆÜ˜f›+¨š/ˆV�AŠY¨t¯|©|ˆØ�1‰fˆÜ—Y‘Y˜v t¨\Ó:ˆ
Ü�^‰^˜JÓ'ˆØ
�‰�a˜˜C �^Ð*Q¬J°r¸9ÀdÓ,KÐ*QÈSÑ*QˆÔRÜ—i‘i ¨¨lÓ;ˆÜ�^‰^˜KÓ(ˆØ
�‰�c˜1˜a �^Ð*U¬J°v¸yÈ$Ó,OÐ*UÐQTÑ*UˆÔVØ�
‰
”5×(Ñ(¨¯©°fÓ)=¸zÓJ×RÑRÐSXÓYÔZØ�
‰
”5×(Ñ(¨¯©°fÓ)=¸{ÓK×SÑSÐTYÓZÔ[Ü�~‰~˜dÓ#ˆØ�‰˜˜b™ ! q¡&¨2¡+¨s°R©x¸¸a¹À"¹ÐEÈOˆÔ\Ø�	‰	�3˜‘8˜Q !™V b™[Ð)¨4°lÈÏÉÐTVÐ]aÈÓIbˆ	ÔcØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆÜ˜d BÓ'¨¨Ð+ˆ	Ü  Ö+‰GˆAˆtØ�I‰I�r˜3  R¡™<Ð(¨$°_È6ˆIÕRð ,ä˜t RÓ(Ð)?¨6°,Ñ+?Ð@ˆ
Ü  Ö,‰GˆAˆtØ�I‰I�s˜R‘x  q¨2¡v¡Ð.°¸?ÐQWˆIÕXð -à�	‰	�2�q˜2‘v�, ¨ÀTÇZÁZÐPRÐY]ÀZÓE^ˆ	Ô_Ø�	‰	�3˜‘8˜Q ™VÐ$ g°OÈ$Ï*É*ÐUWÐ^bÈ*ÓJcˆ	ÔdØ�	‰	�1˜‘6˜C‘<  R¡Ð(¨&°°"¨+¸FÈÏÉÐTVËˆ	ÕXrR   c       	        ó8  — |\  }}|d   }|rdnd}|j                  | j                  ||d||z
  |dz
  fdd¬«      «       t        j                  |«      }|j	                  |d||z
  |dz
  gd|d¬	«       |j	                  |d
z   d|dz   dgd|¬«       |j                  |dz   dfdd| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }d}| j                  ||dz   |||d|
d    |
d!   t        d"|	d   z  «      ¬#«	      }|d$z  }| j                  ||dz   |||d%|
d&   |
d'   t        d(|	d   z  «      ¬#«	       |j                  |dz   |dz
  f|d d) d*| j                  d+«      ¬«       y ),Nr&  re  rÌ  r„  é¼   rY  rt  rå   rÀ   rè   r€  r¶  éä   rt   r¾   rc  éÀ   ÚUPDATE)r±   rh  rž  r  TrU  r  rT  r   r  rV  r  rç   rq  rW  r  r  r´  rd  rZ  rz  r  r  r  rÀ  rÝ  rh  )	râ   rÏ   r   rÄ   rÅ   r  rq   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   Úpadrk  rl  rˆ   s                      rP   Ú_layout_glass_cardz!VisualRenderer._layout_glass_card½  s:  € Ø‰ˆˆ1Ø˜‘ˆÙ‰b ˆØ�
‰
�4×$Ñ$ T¨C°°a¸#±g¸qÀ3¹wÐ+GÈsÐ[]Ð$Ó^Ô_Ü�~‰~˜dÓ#ˆØ×Ñ  S¨!¨c©'°1°s±7Ð;ÀBÐPVÐ^_ÐÔ`Ø×Ñ  b¡¨#¨s°S©y¸#Ð>ÀrÐPVÐÔWØ�	‰	�3˜‘8˜S�/ 8°,ÀTÇZÁZÐPRÐY]ÀZÓE^ˆ	Ô_Ø—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 3¨¡8¨Q°¸6ÈÐ^dÐepÑ^qð  ~Dð  EQñ  ~Rô  `cð  dfð  imð  nxñ  iyñ  dyó  `zÐó  {ˆØ	ˆR‰ˆØ×Ñ˜˜s R™x¨¨D°vÀOÐZ`ÐalÑZmÐyð  AMñ  zNô  \_ð  `bð  eið  jtñ  euñ  `uó  \vÐô  	wØ�	‰	�3˜‘8˜Q ™WÐ% v¨c¨r {¸ÈtÏzÉzÐZ\Ë~ˆ	Õ^rR   c       	        ór  — |\  }}|d   }|s;|j                  t        j                  |t        j                  d|d«      d«      «       t	        j
                  |«      }|j                  dd|dz
  |dz
  gdd¬«       |j                  d	d
g|d¬«       |	d   r| j                  j                  «       n| j                  }|j                  d||| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d   z  «      «      }d}| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }|dz  }| j                  |d|||d|
d    |
d!   t        d"|	d   z  «      ¬«	       |j                  d|d#z
  f|d d$ d%| j                  d&«      ¬«       y )'Nr&  r€   )rs   rs   ry  g      Ð?r~  )rf  rf  rÌ  rT   ©rÁ   rÂ   )r~  r„  )r¶  r„  rU   r\  r  )r~  r—  rh  FrU  r  rc  r   r  rV  r  r€  )éõ   rú  rb  r  r  rx  rd  rs  )r°   é¥   é¯   r  r  rè   ræ   r™  )ræ   éi   és   r  )râ   r   r,  r�   r   rÄ   rj  rÛ   r\   ri  r  rq   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rm  rk  rl  rˆ   s                      rP   Ú_layout_minimal_premiumz&VisualRenderer._layout_minimal_premiumÎ  s  € Ø‰ˆˆ1Ø˜‘ˆÙØ�J‰J”u—{‘{ 4¬¯©°5¸$À
Ó)KÈTÓRÔSÜ�~‰~˜dÓ#ˆØ�‰˜˜B  B¡¨¨B©Ð/¸ÈQˆÔOØ�	‰	�9˜jÐ)°¸aˆ	Ô@Ø+/°Ò+=�—‘×%Ñ%Ô'À4Ç?Á?ˆØ�	‰	�(˜E¨°T·Z±ZÀÈ°ZÓ5Oˆ	ÔPØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ	ˆR‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜3‘w�- ¨¨ °?ÈÏÉÐTVËˆ	ÕXrR   c       	        óV  — |\  }}|d   }t        j                  d|d«      }|j                  t        j                  ||d«      «       t	        j
                  |«      }d}dD ]0  \  }}|j                  ||z   ||z   ||z
  |z
  ||z
  |z
  gd||¬«       Œ2 |j                  d	d
|| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      d¬«      }| j                  t        d|	d   z  «      «      }d}| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }|j                  d|dz   d|dz   g|¬«       |dz  }| j                  |d|||d|
d   |
d    t        d!|	d   z  «      ¬«	       |j                  d|d"z
  f|d d# d$| j                  d%«      ¬«       y )&Nr&  r€   )r  rs   rt   g�Âõ(\�â?rY  ))r   r™   )ry  rT   r  rÀ   )rw  rw  u   â—ˆ TECH SIGNALrV  TrU  r  r´  r   r´   r  r€  rw  rW  r  r  r   rd  rs   r”  r�  rØ   )r€  r”  rµ   r  r  rè   r~  rÀ  )rš  r  r”  rh  )r   r�   râ   r,  r   rÄ   rÅ   r  rq   rL   r!  rj  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rH   ÚmÚoffsetrÂ   rk  rl  rˆ   s                         rP   Ú_layout_neon_techz VisualRenderer._layout_neon_techà  s3  € Ø‰ˆˆ1Ø˜‘ˆÜ—)‘)˜E 4¨Ó4ˆØ�
‰
”5—;‘;˜t W¨dÓ3Ô4Ü�~‰~˜dÓ#ˆØˆÛ.‰MˆF�EØ×"Ñ" A¨¡J°°F±
¸AÀ¹EÀF¹NÈAÐPQÉEÐTZÉNÐ#[ÐdfÐpvð  DÐ"õ  Eð /à�	‰	�(Ð-°FÀÇÁÈBÐUYÀÓAZˆ	Ô[Ø—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ�‰˜˜A ™E 3¨¨B©Ð/°fˆÔ=Ø	ˆR‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜2‘v�,  s¨ °/ÈÏ
É
ÐSUËˆ	ÕWrR   c       	        ó@  — |\  }}|d   }|r|j                  d«      d   d d n|j                  «       d   d d j                  «       }|r<|j                  t        j                  |t        j
                  d|d«      d«      «       n&|j                  t        j
                  d|d	«      «       t        j                  |«      }t        d|d
«      D ]  }|j                  |df||fgdd¬«       Œ t        d|d
«      D ]  }|j                  d|f||fgdd¬«       Œ |j                  |dz
  d|dz   dg|d¬«       |j                  d|	d   r| j                  j                  «       n| j                  || j                  dd¬«      ¬«       |rt        |d«      d   nd}|j                  d||| j                  t        d|	d   z  «      d¬«      ¬«       | j                  t        d|	d   z  «      d¬«      }| j                  t        d|	d    z  «      «      }d!}| j!                  |d"|||d#|
d$   |
d%   t        d&|	d   z  «      ¬'«	      }| j!                  |d"|dz   ||d(|
d)   |
d*   t        d+|	d    z  «      ¬'«	       |j                  d"|d,z
  f|d d d-| j                  d«      ¬«       y ).Nr&  Ú.r   rh  rZ  r€   )rˆ  rs   r�  ç      à?)rs   ry  r  r´  rÜ  rT   r\  r¾  iÄÿÿÿr™  rˆ  rù  )ru  ru  r  rs  TrU  r  ry  ÚNOW)ru  rÛ  r[  r   rq  rV  r  r_  ru  rW  r  r  rv  rd  rÞ  r  r  rY  r~  )én   r�  r„  )r4   ri  râ   r   r,  r�   r   rÄ   rƒ   rÛ   rê   r  r\   rq   r   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   r<   rß   Ú	stat_linerk  rl  rˆ   s                        rP   Ú_layout_bold_statz VisualRenderer._layout_bold_stató  sú  € Ø‰ˆˆ1Ø˜‘ˆÙ+/�—
‘
˜3“ Ñ" 3 BÑ'°T·Z±Z³\À!±_ÀSÀbÐ5I×PÑPÓRˆÙØ�J‰J”u—{‘{ 4¬¯©°5¸$À
Ó)KÈSÓQÕRà�J‰J”u—y‘y ¨¨kÓ:Ô;Ü�~‰~˜dÓ#ˆÜ�q˜!˜R–ˆAØ�I‰I˜˜1�v  1˜vÐ&¨\ÀˆIÕCð !ä�q˜!˜R–ˆAØ�I‰I˜˜1�v  1˜vÐ&¨\ÀˆIÕCð !à�‰�a˜#‘g˜s A¨¡F¨CÐ0¸&ÈˆÔJØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐekÐrv×r|Ñr|Ð}ð  GKÐr|ó  sLˆ	ô  	MÙ.2”I˜d BÓ'¨Ò*¸ˆ	Ø�	‰	�)˜Y¨V¸$¿*¹*ÄSÈÈdÐS]ÑN^ÑI^ÓE_Ðfj¸*Ó:kˆ	ÔlØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ×Ñ˜˜r 1 r¡6¨4°fÀ?ÐY_Ð`kÑYlÐx~ð  @Lñ  yMô  [^ð  _að  dhð  isñ  dtñ  _tó  [uÐô  	vØ�	‰	�2�q˜2‘v�,  s¨ °/ÈÏ
É
ÐSUËˆ	ÕWrR   c       	        ó„  — |\  }}|d   }| j                  || j                  |ddd¬«      «       t        j                  |«      }|j	                  |dz
  d|dz
  dg|¬«       |j                  |d	z
  d
fdd| j                  dd¬«      ¬«       |j                  d|	d   r| j                  j                  «       n| j                  d| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      d¬«      }| j                  t        d|	d   z  «      «      }|dz
  }| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }| j                  |d|dz   ||d|
d    |
d!   t        d"|	d   z  «      ¬«	       |j                  d|d#z
  f| j                  › d$|d d% › �|| j                  dd¬«      ¬«       y )&Nr&  rÐ   rÍ  éë   r…  r”  rv  rØ   rû  éb   Ú01)rZ  rZ  rh  rX  TrU  r  )rv  rc  r  rW  r  rw  r   r´   r  r¾  r  r  ru  rd  rs   )r|  r•  r}  r  r  rè   r™  u    Â· r]  )rã   rà   r   rÄ   rê   r  rq   r\   ri  rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   rk  rl  rˆ   s                     rP   Ú_layout_gradient_storyz%VisualRenderer._layout_gradient_story  sP  € Ø‰ˆˆ1Ø˜‘ˆØ×Ñ˜$ §¡¨D¸HÈSÐ\_ Ó `ÔaÜ�~‰~˜dÓ#ˆØ�‰�a˜#‘g˜r 1 r¡6¨3Ð/°fˆÔ=Ø�	‰	�1�s‘7˜B�- ¨L¸t¿z¹zÈ"ÐSW¸zÓ?Xˆ	ÔYØ�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐetÐ{÷  |Fñ  |Fð  GIð  PTð  |Fó  |Uˆ	ô  	VØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ�‰GˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ×Ñ˜˜r 1 q¡5¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐô  	uØ�	‰	�2�q˜2‘v�, 4§?¡?Ð"3°4¸¸sÀ¸°}Ð EÈFÐY]×YcÑYcÐdfÐmqÐYcÓYrˆ	ÕsrR   c       	        óz  — |\  }}|d   }t        |«      dkD  r|d   n| j                  }|j                  dd|dg|¬«       |j                  dd|dg|¬«       t        j                  |«      }|j                  g d¢d¬«       |j                  d	| j                  d d j                  «       || j                  d
d¬«      ¬«       |j                  d| j                  d| j                  dd¬«      ¬«       |j                  ddd| j                  d«      ¬«       |rdnd}|j                  | j                  |d||dz
  |dz
  fddd¬«      «       t        j                  |«      }| j                  t        d|	d   z  «      |	d   ¬«      }| j                  t        d|	d    z  «      «      }|d!z   }| j                  |d"|||d#|
d$   |
d%   t        d&|	d   z  «      ¬'«	      }|dz  }| j                  |d"|||d(|
d)   |
d*   t        d+|	d    z  «      ¬'«	       |j                  d"|d,z
  f|d d- || j                  dd¬«      ¬«       y ).Nr&  rT   r   rš  rØ   rÆ  )rv  rè   él   r—  rW  )rx  rc  rY  TrU  r  )rš  rv  r†  )rš  r[  zIndustry Insights)r¶  r}  r  r  r€  rÛ  rv  rf  r•  )éú   ra  éý   rZ  r–  r]  r   r  rV  r  rè   r~  )rh  é   rž  r  r  rT  rd  )r™  re  éU   r  r  r  ræ   rg  )rœ   r]   rj  r   rÄ   rê   r  r\   ri  rq   râ   rÏ   rL   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   r]   Ú	content_yrk  rl  rˆ   s                       rP   Ú_layout_corporate_linkedinz)VisualRenderer._layout_corporate_linkedin  sŸ  € Ø‰ˆˆ1Ø˜‘ˆÜ" 6›{¨Qš�&˜’)°D·L±LˆØ�‰˜˜1˜a �~¨GˆÔ4Ø�‰˜˜3  3Ð'¨fˆÔ5Ü�~‰~˜dÓ#ˆØ�‰Ò&¨_ˆÔ=Ø�	‰	�(˜DŸO™O¨B¨QÐ/×5Ñ5Ó7¸gÈDÏJÉJÐWYÐ`dÈJÓLeˆ	ÔfØ�	‰	�)˜TŸ_™_°?ÈÏÉÐTVÐ]aÈÓIbˆ	ÔcØ�	‰	�)Ð0°ÈTÏZÉZÐXZË^ˆ	Ô\Ù!‘C sˆ	Ø�
‰
�4×$Ñ$ T¨B°	¸1¸r¹6À1ÀrÁ6Ð+JÐRUÐ\kÐtvÐ$ÓwÔxÜ�~‰~˜dÓ#ˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸TÀ+Ñ=N�ÓOˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØ˜‰NˆØ×Ñ˜T 2 q¨$°VÀ,ÐU[Ð\gÑUhÐtzð  |Hñ  uIô  WZð  []ð  `dð  eoñ  `pñ  [pó  WqÐó  rˆØ	ˆR‰ˆØ×Ñ˜˜r 1 d°¸lÐQWÐXcÑQdÐpvð  xDñ  qEô  SVð  WYð  \`ð  akñ  \lñ  Wló  SmÐô  	nØ�	‰	�2�q˜3‘w�- ¨¨ °6ÀÇ
Á
È2ÐTXÀ
Ó@Yˆ	ÕZrR   c       	        ó2  — |\  }}|d   }t        |«      dkD  r|d   nd}t        |«      dkD  r|d   nd}|j                  t        j                  |t        j                  d|d«      d«      «       t        j                  |«      }t        d	|d
«      D ]  }|j                  d	|f||fgdd¬«       Œ t        d«      D ]m  }|j                  d	|dz
  «      }|j                  dd«      }|j                  dd«      }|j                  ||||z   ||z   g|j                  «       dkD  r|n|¬«       Œo |j                  d|d	f|dz
  dfdgt        |dd«      ¬«       |j                  ||fd	|fd|dz
  f||dz
  fgt        |dd«      ¬«       t        j                  |«      }|j                  dd|| j                  dd¬«      ¬«       |j                  d| j                   j#                  «       || j                  dd¬«      ¬«       | j                  t%        d |	d!   z  «      d¬«      }| j                  t%        d"|	d#   z  «      «      }d$}t'        t)        ||
d%   «      d |
d&    «      D ]S  \  }}|dz  rd'nd	}|j                  d(|z   |f|||¬«       |j                  d |f|d)|¬«       |t%        d*|	d!   z  «      z  }ŒU |dz  }| j+                  |d |||d+|
d,   |
d-   t%        d.|	d#   z  «      ¬/«	       |j                  d |d0z
  f|d d1 || j                  d2d¬«      ¬«       y )3Nr&  rU   )rµ   r   rÇ  rT   )r   rµ   rµ   r€   )ry  r  rh  r  r   r™   rÒ   r\  rs   rh  rZ  iØÿÿÿrq  rØ   r‡  rf  ræ   )r   r„  r�  rÚ   r³  u	   â–¸ CYBERrs  TrU  r  )rÛ  rv  rv  r   rV  r  r”  r  r  rå   rc  rW  rw  )r”  r€  r¶  r  r  r  rd  ru  rÀ  r  )rœ   râ   r   r,  r�   r   rÄ   rƒ   rÛ   ré   rj  ry   ÚpolygonrX   r  rq   r\   ri  rL   r›  r   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   ÚmagentaÚcyanrˆ   rî   ÚgyÚghÚgxrk  rl  rß   rÛ   r  s                              rP   Ú_layout_cyberpunkz VisualRenderer._layout_cyberpunk0  sW  € Ø‰ˆˆ1Ø˜‘ˆÜ" 6›{¨Qš�&˜’)°MˆÜ ›K¨!šOˆv�aŠy°ˆØ�
‰
”5—;‘;˜t¤U§Y¡Y¨u°d¸KÓ%HÈ#ÓNÔOÜ�~‰~˜dÓ#ˆä�q˜!˜Q–ˆAØ�I‰I˜˜1�v  1˜vÐ&¨Y¸aˆIÕ@ð  ô �q–ˆAØ—‘˜Q  B¡Ó'ˆBØ—‘˜Q Ó#ˆBØ—‘˜S "Ó%ˆBØ�N‰N˜B  A¨¡F¨B°©GÐ4ÀcÇjÁjÃlÐUXÒFX¹7Ð^bˆNÕcð	 ð
 	�‰�f˜q !˜f q¨2¡v¨s m°XÐ>ÄZÐPWÐYbÐdgÓEhˆÔiØ�‰�q˜!�f˜q !˜f s¨A°©G n°q¸!¸b¹&°kÐBÌÐTXÐZcÐeiÓIjˆÔkÜ�~‰~˜dÓ#ˆØ�	‰	�(˜K¨d¸¿¹ÀBÈT¸Ó9Rˆ	ÔSØ�	‰	�)˜TŸ_™_×2Ñ2Ó4¸7ÈÏÉÐTVÐ]aÈÓIbˆ	ÔcØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆØˆÜ ¤¨4°¸Ñ1DÓ!EÐF\ÈÈ|ÑH\Ð!]Ö^‰GˆAˆtØ˜aš%‘Q QˆFØ�I‰I�r˜F‘{ AÐ&¨°4¸fˆIÔEØ�I‰I�r˜1�g˜t¨/ÀˆIÔGØ”�R˜$˜zÑ*Ñ*Ó+Ñ+‰Að	 _ð
 	
ˆR‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜2‘v�,  s¨ °&¸t¿z¹zÈ"ÐSW¸zÓ?Xˆ	ÕYrR   c       	        ó6  — |\  }}|d   }t        j                  d|d«      }t        j                  |«      }|j	                  dt        |dz  «      f|t        |dz  «      f||fd|fgd¬«       |j                  t        j                  |j                  d«      |«      j                  d	«      «       t        j                  |«      }|j                  g d
¢|¬«       |j                  d|	d   r| j                  j                  «       n| j                  d| j                  dd¬«      ¬«       | j                  t        d|	d   z  «      d¬«      }| j                  t        d|	d   z  «      «      }t        |dz  «      }| j                  |d|||d|
d   |
d   t        d|	d   z  «      ¬«	      }|dz  }| j                  |d|||d|
d   |
d   t        d |	d   z  «      ¬«	       |j                  d|d!z
  f| j                  › d"|d d# › �|| j                  dd¬«      ¬«       y )$Nr&  r¼   r½   r   g{®GázÔ?g¸…ëQ¸¾?)rs   rZ  rs  r¦  rØ   r€   )rw  rX  é°   r¶   )rw  ru  r  rW  r  TrU  r  r´  r   r´   r  çš™™™™™Ù?rw  r  r  r   rd  rZ  )r‰  r{  r¦  r  r  rè   ru  u     Â·  r]  )r   r�   r   rÄ   r  rL   râ   rÆ   rÃ   rj  r  r\   ri  rq   r!  )ra   rÊ   rÇ   r7  r8  r3  rž   rí   rd   r9  r:  r  r…   r|   r^   ÚpanelÚpdrk  rl  rˆ   s                       rP   Ú_layout_split_diagonalz%VisualRenderer._layout_split_diagonalQ  s†  € Ø‰ˆˆ1Ø˜‘ˆÜ—	‘	˜& $¨Ó5ˆÜ�^‰^˜EÓ"ˆØ
�
‰
�Qœ˜A ™H›Ð&¨¬C°°D±«MÐ(:¸QÀ¸FÀQÈÀFÐKÐRbˆ
ÔcØ�
‰
”5×(Ñ(¨¯©°fÓ)=¸uÓE×MÑMÈeÓTÔUÜ�~‰~˜dÓ#ˆØ�‰Ò-°FˆÔ;Ø�	‰	�(°t¸LÒ7I˜DŸO™O×1Ñ1Ô3ÈtÏÉÐetÐ{÷  |Fñ  |Fð  GIð  PTð  |Fó  |Uˆ	ô  	VØ—‘œC  T¨*Ñ%5Ñ 5Ó6¸T�ÓBˆØ—‘œC  T¨*Ñ%5Ñ 5Ó6Ó7ˆÜ��D‘‹MˆØ×Ñ˜T 2 q¨$°VÀ/ÐX^Ð_jÑXkÐw}ð  Kñ  xLô  Z]ð  ^`ð  cgð  hrñ  csñ  ^só  ZtÐó  uˆØ	ˆR‰ˆØ×Ñ˜˜r 1 d°¸oÐTZÐ[fÑTgÐsyð  {Gñ  tHô  VYð  Z\ð  _cð  dnñ  _oñ  Zoó  VpÐô  	qØ�	‰	�2�q˜2‘v�, 4§?¡?Ð"3°6¸&ÀÀ"¸+¸Ð GÈfÐ[_×[eÑ[eÐfhÐosÐ[eÓ[tˆ	ÕurR   rK   )
r\   rj   r]   rj   r^   rj   r_   rj   r`   úPath | None)F)rd   rL   r=   r'  ÚreturnúImageFont.ImageFont)r{   rj   r'  úrandom.Random)rd   útuple[int, int]rV   útuple[int, int, int]rW   r+  r5   r'  r~   r'  r'  úImage.Image))r  r"  )
rd   r*  r‘   r+  r’   r+  r“   ztuple[float, float]r'  r,  )r�   úlist[str] | Noner'  úlist[tuple[int, int, int]])r†   r,  rd   r*  r'  r,  )rÇ   r,  rÈ   ztuple[int, int, int, int]r·   rL   r¸   r+  r¹   rL   rº   z tuple[int, int, int, int] | Noner'  r,  )rd   r*  rÔ   rj   rÕ   rL   rŠ   r+  rÖ   rL   r'  r,  )rÇ   r,  rÜ   r,  r'  ÚNone)
rÇ   r,  r^   r+  rí   r)  rd   r*  r'  r/  )rú   rj   r'  rj   )r  ú
str | Noner'  Údict)r  r'  r'  zdict[str, int])rÊ   zImageDraw.ImageDrawr‰   rL   rˆ   rL   r  rj   r  r(  r¿   r+  r  rL   r  rL   r   rL   r'  rL   )
rd   r*  rž   r.  r.  r&  rí   r)  r'  ztuple[Image.Image, bool])rE  r   r7  rj   r8  rj   r3  r0  rú   rj   r�   r-  r.  r&  r4  rj   rd   r*  r  r0  r'  r   )
rE  r   r7  rj   r8  rj   r3  r0  r'  r   )rE  r   rN  rL   rO  rL   rP  rj   r8  rj   r'  r   )+Ú__name__Ú
__module__Ú__qualname__Ú__doc__rb   rq   r}   r‹   r—   r    r¯   rÏ   rà   rã   rò   rý   r  r  r!  r1  ÚSIZE_SQUARErG  rK  rR  ro  rA  r�  rœ  r±  rº  rÃ  rÊ  rÔ  rä  rð  r÷  rÿ  r  r
  r  r  r  r%  r  rR   rP   rZ   rZ   Y   s·  „ ÙKð "&ð#àð#ð ð#ð ð	#ð
 ð#ð ó#ô (ó, ð Øñàðð !ðð !ð	ð ðð ðð 
óð> '1ðàðð $ðð $ð	ð
 $ðð 
óó2	ó:ð Ø%1ØØ3FñCàðCð 'ðCð
 ðCð #ðCð ðCð 1ðCð 
óCð. "ØØ&/Øñàðð ð	ð
 ðð $ðð ðð 
óó0Vó	Yó	#ó=óTð
à!ðð ðð ð	ð
 ðð "ðð #ðð ðð ðð ðð 
óð$àðð +ðð ð	ð
 ðð 
"óðF "Ø)Ø$(Ø $Ø%Ø +Ø!%ñ'àð'ð ð	'ð
 ð'ð ð'ð ð'ð "ð'ð ð'ð ð'ð ð'ð ð'ð 
ó'ð\ "Øð
àð
ð ð
ð ð	
ð
 ð
ð 
ó
ð: ð
àð
ð ð
ð ð	
ð
 ð
ð ð
ð 
ó
ò8Zò(Xò"cò2Xò*]ò>Zò*Oò8uò,Sò2Pò@Yò8_ò"Yò$Xò&Xò0tò[ò,ZóBvrR   rZ   )rM   rL   rN   rL   rO   Úfloatr'  rL   )rV   r+  rW   r+  rO   r7  r'  r+  )Ú
__future__r   ru   rŽ   ry   Úpathlibr   ÚPILr   r   r   r   r	   Úsrc.util.textr
   r   r6  rø   rI   Ú__annotations__rQ   rX   rZ   r  rR   rP   Ú<module>r=     s  ðÞ "ã Û Û Ý ç FÕ Fç /à€ð€ð,*#Øˆð*#àˆ_ð*#ð ˆLð*#ð ˆ\ð	*#ð
 ˆ\ð*#ð ˆLð*#ð ˆmð*#ð ˆMð*#ð ˆMð*#ð ˜ð*#ð Ðð*#ð Ð!ð*#ð Ðð*#ð �Zð*#ð �ð*#ð  	ˆ.ð!*#ð" �ñ#*#ð$ Ð$ð%*#ð& Ð ð'*#ð( 	Ð
ð)*#ð* Ðð+*#ð, Ð ð-*#ð. ˆ\ð/*#ð0 ˆLð1*#ð2 Ð ð3*#ð4 Ð ð5*#ð6 ˆKð7*#ð8 ˆKð9*#ð: ˆKð;*#ð< ˆKð=*#ð> Ð ð?*#ð@ ÐðA*#ðB Ð$ðC*#ðD Ð%ñE*#ðF %ØØØ ØØ$Ø"òS*#€�ó *óZ óT÷Hvò HvrR   