§
    £”j1”  ã                   ó|  — d Z dZddlZddlmZmZ ddlmZmZm	Z	 ddl
mZmZmZmZmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlmZ i Z ed¦  «        D ]YZedk     sedk    r	dez  ee<   Œe ed¦  «         ed¦  «         ed¦  «        fv rd e e¦  «        z   ee<   ŒK e e¦  «        ee<   ŒZ[d„ Z!dZ" G d„ d¦  «        Z#	 ddlT ddej$        fd„Z%d„ Z& G d„ de¦  «        Z'ej$        fd„Z(ej$        fd„Z)d%d „Z*e+d!k    r7ddl,Z, e-e,j.        ¦  «        d"k    re,j.        d"         Z/ndZ/ e*e/d#¬$¦  «         dS dS )&z3.3.0z$Render drawing objects in Postscripté    N)ÚBytesIOÚStringIO)ÚgetFontÚstringWidthÚ
unicode2T1)ÚasBytesÚchar2intÚrawBytesÚasNativeÚ	isUnicode)Úfp_str)ÚRendererÚgetStateDeltaÚrenderScaledDrawing)ÚSTATE_DEFAULTS)Ú	rl_config)ÚFILL_EVEN_ODDé   é    é   z\%03oú\ú(ú)c                 óþ   — t          | ¦  «        } g }|j        }d}| D ]L}t          t          |¦  «                 } ||¦  «         |t	          |¦  «        z  }|dk    rd} |d¦  «         ŒMd                     |¦  «        S )Nr   éÈ   z\
Ú )r   ÚappendÚ_ESCAPEDICTr	   ÚlenÚjoin)ÚsÚRÚaRÚnÚcs        új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/renderPS.pyÚ_escape_and_limitr'      s…   € Ý�‰
Œ
€AØ
€AØ	
Œ€BØ	€AØð ð ˆÝ� ™œÔ$ˆØ
ˆˆ1‰ŒˆØ	�S�‰VŒV‰ˆØˆcŠ6ˆ6ØˆAØˆBˆv‰JŒJˆJøØ�7Š7�1‰:Œ:Ðó    a?  
/RE { %def
  findfont begin
  currentdict dup length dict begin
 { %forall
   1 index /FID ne { def } { pop pop } ifelse
 } forall
 /FontName exch def dup length 0 ne { %if
   /Encoding Encoding 256 array copy def
   0 exch { %forall
     dup type /nametype eq { %ifelse
       Encoding 2 index 2 index put
       pop 1 add
     }{ %else
       exch pop
     } ifelse
   } forall
 } if pop
  currentdict dup end end
  /FontName get exch definefont pop
} bind def

/WinAnsiEncoding [
  39/quotesingle 96/grave 128/euro 130/quotesinglbase/florin/quotedblbase
  /ellipsis/dagger/daggerdbl/circumflex/perthousand
  /Scaron/guilsinglleft/OE 145/quoteleft/quoteright
  /quotedblleft/quotedblright/bullet/endash/emdash
  /tilde/trademark/scaron/guilsinglright/oe/dotlessi
  159/Ydieresis 164/currency 166/brokenbar 168/dieresis/copyright
  /ordfeminine 172/logicalnot 174/registered/macron/ring
  177/plusminus/twosuperior/threesuperior/acute/mu
  183/periodcentered/cedilla/onesuperior/ordmasculine
  188/onequarter/onehalf/threequarters 192/Agrave/Aacute
  /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
  /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
  /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
  /Ocircumflex/Otilde/Odieresis/multiply/Oslash
  /Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
  /germandbls/agrave/aacute/acircumflex/atilde/adieresis
  /aring/ae/ccedilla/egrave/eacute/ecircumflex
  /edieresis/igrave/iacute/icircumflex/idieresis
  /eth/ntilde/ograve/oacute/ocircumflex/otilde
  /odieresis/divide/oslash/ugrave/uacute/ucircumflex
  /udieresis/yacute/thorn/ydieresis
] def
c                   ó\  — e Zd Zd;d„Zd„ Zd<d„Zd„ Zd„ Zd=d	„Zd
„ Z	d„ Z
d<d„Zd„ Zd„ Zg dfd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd=d„Zd„ Zd„ Zd>d„Zd>d„Zd?d„Zd@d„ZdAd „Zd>d!„ZdBd#„ZdCd%„Zd&„ Zd'„ Z dDd)„Z!d*„ Z"dEd+„Z#d<d,„Z$d-„ Z%d.„ Z&d/„ Z'd0„ Z(d1„ Z)d>d2„Z*dFd3„Z+d4„ Z,d5„ Z-d6„ Z.d7„ Z/d<d8„Z0d9„ Z1d<d:„Z2dS )GÚPSCanvas©é,  r,   é   c                 ó^  — |\  | _         | _        g }|j        | _        |j        | _        d| _        g | _        | j        j        | _        d| _	        d x| _
        x| _        x| _        x| _        x| _        x| _        x| _        | _        g | _        |                      t(          d         t(          d         ¦  «         |                      t(          d         ¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         || _        t4          | _        d S )Nr   ú
ÚfontNameÚfontSizeÚstrokeColorr-   é   )ÚwidthÚheightr   Ú_xtraState_pushÚpopÚ_xtraState_popÚcommentsÚcodeÚcode_appendÚ_sepÚ_strokeColorÚ
_fillColorÚ
_lineWidthÚ_fontÚ	_fontSizeÚ_lineCapÚ	_lineJoinÚ_colorÚ
_fontsUsedÚsetFontr   ÚsetStrokeColorÚ
setLineCapÚsetLineJoinÚsetLineWidthÚPostScriptLevelr   Ú	_fillMode)ÚselfÚsizerK   Ú	xtraStates       r&   Ú__init__zPSCanvas.__init__[   s$  € Ø"&ÑˆŒ
�D”KØˆ	Ø(Ô/ˆÔØ'œmˆÔØˆŒØˆŒ	Øœ9Ô+ˆÔØˆŒ	ð ,0ð	0ˆÔð 	0˜DœOð 	0¨d¬oð 	0ØŒJð	0Øœð	0Ø*.¬-ð	0àŒN˜Tœ[àˆŒØ�Š•^ JÔ/µ¸zÔ0JÑKÔKÐKØ×Ò�N¨=Ô9Ñ:Ô:Ð:Ø�Š˜ÑÔÐØ×Ò˜ÑÔÐØ×Ò˜!ÑÔÐØ,ˆÔÝ&ˆŒˆˆr(   c                 óH   — | j         r|                      d|z   ¦  «         d S d S )Nú%)r9   r;   )rM   Úmsgs     r&   ÚcommentzPSCanvas.commentq   s-   € ØŒ=Ð3˜$×*Ò*¨3¨s©7Ñ3Ô3Ð3Ð3Ð3Ð3Ð3r(   Nc                 óÈ   — | j         dk    r|                      |||||¦  «         d S | j         dk    r|                      |||||¦  «         d S t          d| j         z  ¦  «        ‚)Nr3   r-   zUnsupported Postscript Level %s)rK   Ú_drawImageLevel1Ú_drawImageLevel2Ú
ValueError)rM   ÚimageÚx1Úy1r4   r5   s         r&   Ú	drawImagezPSCanvas.drawImaget   sy   € àÔ Ò"Ð"Ø×!Ò! %¨¨B°°vÑ>Ô>Ð>Ð>Ð>ØÔ! 1Ò$Ð$Ø×!Ò! %¨¨R°¸Ñ?Ô?Ð?Ð?Ð?åÐ>ÀÔAUÑUÑVÔVÐVr(   c                 ó0   — |                       d¦  «         d S )NÚshowpage©r;   ©rM   s    r&   ÚclearzPSCanvas.clear}   s   € Ø×Ò˜Ñ$Ô$Ð$Ð$Ð$r(   c                 óN  — | j         sd S g }| j         D ]?}t          |¦  «        }|j        s'|j        dk    r|                     d|›d|›d�¦  «         Œ@|rP|                     dt          ¦  «         | j                             d| j         	                    |¦  «        ¦  «         d S d S )NÚWinAnsiEncodingzWinAnsiEncoding /z /z REr   r3   )
rE   r   Ú_dynamicFontÚencNamer   ÚinsertÚPS_WinAnsiEncodingr:   r<   r    )rM   ÚCr0   ÚfontObjs       r&   Ú_t1_re_encodezPSCanvas._t1_re_encode€   sÁ   € ØŒÐ&  àˆØœð 	Nð 	NˆHÝ˜hÑ'Ô'ˆGØÔ'ð N¨G¬OÐ=NÒ,NÐ,NØ—’�¸¸¸À8À8À8ÐLÑMÔMÐMøØð 	3Ø�HŠH�QÕ)Ñ*Ô*Ð*ØŒI×Ò˜Q ¤	§¢¨qÑ 1Ô 1Ñ2Ô2Ð2Ð2Ð2ð	3ð 	3r(   c                 óì  — t          |d¦  «        st          |d¦  «        }n|}| j        d         dk    r|                      ¦   «          | j                             dd| j        | j        fz  ¦  «         |                      ¦   «          |                     t          | j
                             | j        ¦  «        ¦  «        ¦  «         ||ur*|                     ¦   «          ddlm}  ||dd	¬
¦  «         d S d S )NÚwriteÚwbéÿÿÿÿr^   r   z‰%%!PS-Adobe-3.0 EPSF-3.0
%%%%BoundingBox: 0 0 %d %d
%%%% Initialization:
/m {moveto} bind def
/l {lineto} bind def
/c {curveto} bind def
)ÚmarkfilenameÚXPR3ÚEPSF)ÚcreatorcodeÚfiletype)ÚhasattrÚopenr:   ra   rf   r4   r5   rj   rl   r
   r<   r    ÚcloseÚreportlab.lib.utilsro   )rM   ÚfÚ_fro   s       r&   ÚsavezPSCanvas.saveŒ   s  € Ý�q˜Ñ!Ô!ð 	Ý�a˜‘”ˆBˆBàˆBØŒ9�RŒ=˜*Ò$Ð$ d§j¢j¡l¤l lØŒ	×Ò˜ð ð „z�$”+Ðññ 	 ô 	 ð 	 ð 	×ÒÑÔÐØ
�Š•˜$œ)Ÿ.š.¨¬Ñ3Ô3Ñ4Ô4Ñ5Ô5Ð5Ø�Qˆ;ˆ;Ø�HŠH‰JŒJˆJØ8Ð8Ð8Ð8Ð8Ð8ØˆL˜ v°vÐ>Ñ>Ô>Ð>Ð>Ð>ð ˆ;r(   c                 óf   — |                       | j        f¦  «         |                      d¦  «         d S )NÚgsave)r6   Ú_fontCodeLocr;   r`   s    r&   Ú	saveStatezPSCanvas.saveState¢   s6   € Ø×Ò˜dÔ/Ð1Ñ2Ô2Ð2Ø×Ò˜Ñ!Ô!Ð!Ð!Ð!r(   c                 óf   — |                       d¦  «         |                      ¦   «         \  | _        d S )NÚgrestore)r;   r8   r}   r`   s    r&   ÚrestoreStatezPSCanvas.restoreState¦   s3   € Ø×Ò˜Ñ$Ô$Ð$Ø!×0Ò0Ñ2Ô2ÑˆÔÐÐr(   c                 óH   — |p| j         }|p| j        }t          |||¦  «        S )zlReturn the logical width of the string if it were drawn
        in the current font (defaults to self.font).)r@   rA   r   )rM   r!   Úfontr1   s       r&   r   zPSCanvas.stringWidthª   s.   € ð Ð!�t”zˆØÐ-˜tœ~ˆÝ˜1˜d HÑ-Ô-Ð-r(   c                 ó^   — | j         |k    r!|| _         |                      d|z  ¦  «         d S d S )Nz%d setlinecap)rB   r;   ©rM   Úvs     r&   rH   zPSCanvas.setLineCap±   s=   € ØŒ=˜!ÒÐØˆDŒMØ×Ò˜_¨QÑ.Ñ/Ô/Ð/Ð/Ð/ð Ðr(   c                 ó^   — | j         |k    r!|| _         |                      d|z  ¦  «         d S d S )Nz%d setlinejoin)rC   r;   r…   s     r&   rI   zPSCanvas.setLineJoin¶   s>   € ØŒ>˜1ÒÐØˆDŒNØ×ÒÐ-¨aÑ/Ñ0Ô0Ð0Ð0Ð0ð Ðr(   r   c                 ój  — d}t          |t          t          f¦  «        r |                      d|›d|›d|›�¦  «         dS t          |t          t
          f¦  «        rX|dk    s
J d¦   «         ‚d                     t          t          |¦  «        ¦  «        }|                      d|›d|›d|›�¦  «         dS dS )	z7Two notations.  pass two numbers, or an array and phaseÚsetdashú[ú z] 0 r   zphase is a length in user spacez] N)	Ú
isinstanceÚfloatÚintr;   ÚtupleÚlistr    ÚmapÚstr)rM   ÚarrayÚphaseÚpsoperationÚ	textarrays        r&   ÚsetDashzPSCanvas.setDash»   sÌ   € ð  ˆÝ�e�U¥3˜KÑ(Ô(ð 	MØ×ÒÐ¨u¨u¨u°e°e°e¸[¸[ÐIÑJÔJÐJÐJÐJÝ˜�u¥T˜lÑ+Ô+ð 	MØ˜A’:�:�:Ð@‘:”:�:ØŸš¥¥S¨%¡¤Ñ1Ô1ˆIØ×ÒÐ¨Y¨Y¨Y¸¸¸¸{¸{ÐKÑLÔLÐLÐLÐLð	Mð 	Mr(   c                 ó>   — || _         |                      |¦  «         d S ©N)r=   ÚsetColor©rM   Úcolors     r&   rG   zPSCanvas.setStrokeColorÆ   s"   € Ø!ˆÔØ�Š�eÑÔÐÐÐr(   c           	      ó>  — | j         |k    r�|| _         |rˆt          |d¦  «        r>|                      dt          |j        |j        |j        |j        ¦  «        z  ¦  «         d S |                      dt          |j        |j	        |j
        ¦  «        z  ¦  «         d S d S d S )NÚcyanz%s setcmykcolorz%s setrgbcolor)rD   rt   r;   r   rž   ÚmagentaÚyellowÚblackÚredÚgreenÚbluer›   s     r&   rš   zPSCanvas.setColorÊ   s´   € ØŒ;˜ÒÐØˆDŒKØð dÝ˜5 &Ñ)Ô)ð dØ×$Ò$Ð%6½ÀÄ
ÈEÌMÐ[`Ô[gÐinÔitÑ9uÔ9uÑ%uÑvÔvÐvÐvÐvà×$Ò$Ð%5½¸u¼yÈ%Ì+ÐW\ÔWaÑ8bÔ8bÑ%bÑcÔcÐcÐcÐcð Ððdð dr(   c                 ó>   — || _         |                      |¦  «         d S r™   )r>   rš   r›   s     r&   ÚsetFillColorzPSCanvas.setFillColorÓ   s!   € ØˆŒØ�Š�eÑÔÐÐÐr(   c                 ó   — || _         d S r™   )rL   r…   s     r&   ÚsetFillModezPSCanvas.setFillMode×   s   € ØˆŒˆˆr(   c                 ó^   — || j         k    r!|| _         |                      d|z  ¦  «         d S d S )Nz%s setlinewidth)r?   r;   )rM   r4   s     r&   rJ   zPSCanvas.setLineWidthÚ   s>   € Ø�D”OÒ#Ð#Ø#ˆDŒOØ×ÒÐ.°Ñ6Ñ7Ô7Ð7Ð7Ð7ð $Ð#r(   c                 ó®   — | j         |k    s| j        |k    r>t          | j        ¦  «        | _        || _         || _        |                      d¦  «         d S d S )Nr   )r@   rA   r   r:   r}   r;   )rM   rƒ   r1   Úleadings       r&   rF   zPSCanvas.setFontß   s[   € ØŒ:�tÒÐ˜tœ~¨xÒ7Ð7Ý # D¤I¡¤ˆDÔØˆDŒJØ%ˆDŒNØ×Ò˜RÑ Ô Ð Ð Ð ð	  8Ð7r(   c                 óÂ   — | j         d k    rS|                      | j         ¦  «         |                      t          ||¦  «        ›dt          ||¦  «        ›d�¦  «         d S d S )Nz m z	 l stroke)r=   rš   r;   r   ©rM   rZ   r[   Úx2Úy2s        r&   ÚlinezPSCanvas.lineæ   sd   € ØÔ Ò$Ð$Ø�MŠM˜$Ô+Ñ,Ô,Ð,Ø×Òµ6¸"¸b±>´>°>°>Å6È"ÈbÁ>Ä>À>À>ÐRÑSÔSÐSÐSÐSð %Ð$r(   c                 ój   — 	 t          |¦  «        S #  t          dt          |¦  «        z  ¦  «        ‚xY w)z{
        return a copy of string s with special characters in postscript strings
        escaped with backslashes.
        zcannot escape %s)r'   rX   Úascii)rM   r!   s     r&   Ú_escapezPSCanvas._escapeë   s8   € ð
	<Ý$ QÑ'Ô'Ð'øð	<ÝÐ/µ%¸±(´(Ñ:Ñ;Ô;Ð;øøøs   ‚ ‘!2c                 óÜ  — |dk    rd S t          ||¦  «        }|                      |¦  «        }|dk    r7|                      | j        ¦  «         |                      |›d|›d�¦  «         d S |dk    p|dk    p|dk    p|dk    }|dk    p|dk    p|d	k    p|dk    }|dk    }|r”|r’| j        €d
}	nd}	|                      | j        ¦  «         |                      |›d|›d|	›�¦  «         |                      d¦  «         | j        �1|                      | j        ¦  «         |                      d¦  «         d S d S |                      | j        ¦  «         |                      |›d|›d�¦  «         d S )Né   r   z m (z) show r-   é   é   r3   é   r   zfill z) true charpath gsave z	grestore zstroke z) true charpath stroke )r   r³   rš   r>   r;   r=   )
rM   ÚxÚyr!   ÚtextRenderModeÚxyÚfillÚstrokeÚ	addToClipÚops
             r&   Ú_textOutzPSCanvas._textOutõ   s¿  € Ø˜1ÒÐ˜f˜fÝ�A�a‰[Œ[ˆØ�LŠL˜‰OŒOˆà˜1ÒÐØ�MŠM˜$œ/Ñ*Ô*Ð*Ø×Ò°"°"°"°Q°Q°QÐ7Ñ8Ô8Ð8ØˆFà˜qÒ Ð_ N°AÒ$5Ð_¸ÈÒ9JÐ_ÈnÐ^_ÒN_ˆØ Ò"Ða n°aÒ&7Ða¸>È1Ò;LÐaÐP^Ð`aÒPaˆØ" AÒ%ˆ	Øð 	I�Fð 	IØŒÐ&Ø��à�Ø—’˜dœoÑ.Ô.Ð.Ø×ÒÀ2À2À2ÀaÀaÀaÈÈÐKÑLÔLÐLØ×Ò˜[Ñ)Ô)Ð)ØÔ Ð,Ø—’˜dÔ/Ñ0Ô0Ð0Ø× Ò  Ñ+Ô+Ð+Ð+Ð+ð -Ð,ð �MŠM˜$Ô+Ñ,Ô,Ð,Ø×ÒÀ"À"À"ÀQÀQÀQÐGÑHÔHÐHÐHÐHr(   c                 óR  — |}| j         }| j        }| j        }	| j        }
t	          |¦  «        s‰	 |                     d¦  «        }nr# t          $ re}|j        dd…         \  }}t          |j        d d…         |j        d         ›d||dz
  |…         ›d|||…         ›d|||dz   …         ›�fz   Ž ‚d }~ww xY wt          ||g|j	        z   ¦  «        D ]§\  }}||k    rSt          |j        j        ¦  «        } |d|›d	t          |¦  «        ›d
�¦  «         ||	vr|	                     |¦  «         |}|                      ||||¦  «         ||                     |                     |j        ¦  «        |¦  «        z  }Œ¨||k    r)d | _        |                      |j        j        |¦  «         d S d S )NÚutf8r-   r¶   r/   é
   z-->z<--r   ú) findfont ú scalefont setfont)r;   rA   rE   r³   r   ÚdecodeÚUnicodeDecodeErrorÚargsr   ÚsubstitutionFontsr   ÚfaceÚnamer   r   rÁ   r   re   r@   rF   )rM   ri   r¹   rº   r!   r»   Úfcr;   r1   Ú	fontsUsedÚescapeÚeÚiÚjrx   ÚtÚpsNames                    r&   Ú_issueT1StringzPSCanvas._issueT1String  sü  € ØˆØÔ&ˆØ”>ˆØ”Oˆ	Ø”ˆÝ˜‰|Œ|ð 	wðwØ—H’H˜VÑ$Ô$��øÝ%ð wð wð wØ”f˜Q˜q˜S”k‘��!Ý(¨1¬6°"°1°"¬:ÈQÌVÐTUÌYÈYÈYÐWXÐYZÐ[]ÑY]Ð^_ÐY_ÔW`ÐW`ÐW`ÐabÐcdÐefÐcfÔagÐagÐagÐhiÐjkÐlmÐnpÑlpÐjpÔhqÐhqÐ7rÐ6tÑ+tÐvÐvøøøøðwøøøõ ˜q ' ¨7Ô+DÑ!DÑEÔEð 	=ð 	=‰DˆAˆqØ�"ŠuˆuÝ! !¤&¤+Ñ.Ô.�Ø��ÀFÀFÀFÍ6ÐRZÑK[ÔK[ÐK[ÐK[Ð\Ñ]Ô]Ð]Ø Ð*Ð*Ø×$Ò$ VÑ,Ô,Ð,Ø�Ø�MŠM˜!˜A˜a Ñ/Ô/Ð/Ø�—’˜qŸxšx¨¬	Ñ2Ô2°8Ñ<Ô<Ñ<ˆAˆAØ�BŠ;ˆ;ØˆDŒJØ�LŠL˜œÔ*¨8Ñ4Ô4Ð4Ð4Ð4ð ˆ;s   ¯A Á
B4ÁA B/Â/B4Úleftc                 óf  — |dv }|dv }|s|�r¡|dk    r\t          || j        | j        ¦  «        }	|dk    r||	z  }n5|dk    r	||	dz  z  }n&|dk    r |t          |||	| j        | j        ¦  «        z  }t	          | j        ¦  «        }
| j        | j                 sdt          |
j        j	        ¦  «        }d|›d	t          | j        ¦  «        ›d
�| j        | j        <   || j        vr| j                             |¦  «         |dk    r;|                      dt          ||¦  «        ›dt          |¦  «        ›d�¦  «         dx}}| j        }|
j        r|                      ||||¬¦  «         n|                      |
||||¬¦  «         |                      |¦  «         |dk    r|                      d¦  «         d S d S d S )N)r   r-   r¶   r·   )r3   r-   r¸   r·   rÖ   ÚendÚmiddleç       @Únumericr   rÅ   rÆ   r   zgsave z translate z rotate©r»   r€   )r   r@   rA   ÚnumericXShiftr   r:   r}   r   rË   rÌ   r   rE   r   r;   rD   rd   rÁ   rÕ   rš   )rM   r¹   rº   r!   ÚangleÚtext_anchorr»   ÚneedFillÚ
needStrokeÚtextLenri   rÔ   ÚoldColors                r&   Ú
drawStringzPSCanvas.drawString+  sý  € Ø! YÐ.ˆØ# yÐ0ˆ
Øð 	-�zñ 	-Ø˜FÒ"Ð"Ý% a¨¬°D´NÑCÔC�Ø Ò%Ð%Ø˜‘L�A�AØ  (Ò*Ð*Ø˜ ™‘O�A�AØ  )Ò+Ð+Ø� {°1°W¸T¼ZÈÌÑWÔWÑW�AÝ˜dœjÑ)Ô)ˆGØ”9˜TÔ.Ô/ð 3Ý! '¤,Ô"3Ñ4Ô4��ØU[ÐU[ÐU[Õ\bÐcgÔcqÑ\rÔ\rÐ\rÐ\rÐ-s�”	˜$Ô+Ñ,Ø ¤Ð0Ð0Ø”O×*Ò*¨6Ñ2Ô2Ð2Ø�aŠxˆxØ× Ò Ð Å6È!ÈAÁ;Ä;À;À;ÍvÐV[É}Ì}È}È}Ð!]Ñ^Ô^Ð^Ø�	��AØ”{ˆHØÔ#ð RØ—’˜a  A°n�ÑEÔEÐEÐEà×#Ò# G¨A¨a°À.Ð#ÑQÔQÐQØ�MŠM˜(Ñ#Ô#Ð#Ø�aŠxˆxØ× Ò  Ñ,Ô,Ð,Ð,Ð,ð3	-ð 	-ð0 ˆxr(   rÙ   c                 ó:   — |                       |||||¬¦  «         d S ©N)rß   r»   ©rä   )rM   r¹   rº   Útextrß   r»   s         r&   ÚdrawCentredStringzPSCanvas.drawCentredStringI  s$   € Ø�OŠO˜A˜a °+ÈnˆOÑ]Ô]Ð]Ð]Ð]r(   rØ   c                 ó:   — |                       |||||¬¦  «         d S ræ   rç   )rM   rè   r¹   rº   rß   r»   s         r&   ÚdrawRightStringzPSCanvas.drawRightStringL  s$   € Ø�Š˜˜Q˜q¨[ÈˆÑXÔXÐXÐXÐXr(   c
           	      ód  — d}
t          ||¦  «        t          ||||||¦  «        f}| j        d k    r5|                      | j        ¦  «         |                      |
|z  dz   ¦  «         | j        d k    r>|                      | j        ¦  «         |                      |
|z  |	rdpdz   dz   ¦  «         d S d S )Nz%s m %s curvetoz eofillz
 closepathr   z stroke)r   r>   rš   r;   r=   )rM   rZ   r[   r®   r¯   Úx3Úy3Úx4Úy4ÚclosedÚcodelineÚdatas               r&   Ú	drawCurvezPSCanvas.drawCurveO  s×   € Ø$ˆÝ�r˜2‘”¥ r¨2¨r°2°r¸2Ñ >Ô >Ð?ˆØŒ?˜dÒ"Ð"Ø�MŠM˜$œ/Ñ*Ô*Ð*Ø×Ò˜h¨™o°Ñ:Ñ;Ô;Ð;ØÔ Ò$Ð$Ø�MŠM˜$Ô+Ñ,Ô,Ð,Ø×Ò˜h¨™oØ &Ð 7¨<Ð>¸Bñ@à'ñ(ñ )ô )ð )ð )ð )ð %Ð$r(   r3   c                 óÐ   — t          ||¦  «        t          ||¦  «        }}t          ||¦  «        t          ||¦  «        }}|                      ||f||f||f||ffd||¬¦  «         dS )z)Draw a rectangle between x1,y1, and x2,y2r3   )rñ   r¾   r½   N)ÚminÚmaxÚpolygon)rM   rZ   r[   r®   r¯   r¾   r½   s          r&   ÚrectzPSCanvas.rect]  sp   € õ �R˜‘”�S  R™[œ[ˆBˆÝ�R˜‘”�S  R™[œ[ˆBˆØ�Š�r˜"�g˜r "˜g r¨" g¨r°"¨gÐ6¸qÈÐX\ˆÑ]Ô]Ð]Ð]Ð]r(   é   c           	      ó¶  — t          ||¦  «        t          ||¦  «        }}t          ||¦  «        t          ||¦  «        }}d}dg}|j        }	 |	|||z   ||z   || ddfz  ¦  «          |	|||z   ||z
  || ddfz  ¦  «          |	|||z
  ||z
  || ddfz  ¦  «          |	|||z
  ||z   || ddfz  ¦  «          |	d¦  «         |                      |¦  «         d	S )
z³Draw a rounded rectangle between x1,y1, and x2,y2,
        with corners inset as ellipses with x radius rx and y radius ry.
        These should have x1<x2, y1<y2, rx>0, and ry>0.zJmatrix currentmatrix %s %s translate %s %s scale 0 0 1 %s %s arc setmatrixÚnewpathéZ   é´   i  éh  r   Ú	closepathN)rö   r÷   r   Ú_fillAndStroke)
rM   rZ   r[   r®   r¯   ÚrxÚryÚellipsePathÚrrÚas
             r&   Ú	roundRectzPSCanvas.roundRecte  s%  € õ �R˜‘”�S  R™[œ[ˆBˆÝ�R˜‘”�S  R™[œ[ˆBˆð cˆð ˆ[ˆØŒIˆà	ˆˆ+˜˜B™  2¡ r¨B¨3°°CÐ8Ñ
8Ñ9Ô9Ð9Ø	ˆˆ+˜˜B™  2¡ r¨B¨3°°SÐ9Ñ
9Ñ:Ô:Ð:Ø	ˆˆ+˜˜B™  2¡ r¨B¨3°°SÐ9Ñ
9Ñ:Ô:Ð:Ø	ˆˆ+˜˜B™  2¡ r¨B¨3°°BÐ7Ñ
7Ñ9Ô9Ð9Ø	ˆˆ+‰Œˆà×Ò˜BÑÔÐÐÐr(   c                 ó6   — |                       ||||¦  «         dS )zqDraw an orthogonal ellipse inscribed within the rectangle x1,y1,x2,y2.
        These should have x1<x2 and y1<y2.N)ÚdrawArcr­   s        r&   ÚellipsezPSCanvas.ellipse�  s"   € ð 	�Š�R˜˜B˜rÑ"Ô"Ð"Ð"Ð"r(   c                 óN   — |                       ||z
  ||z
  ||z   ||z   ¦  «         d S r™   )r
  )rM   ÚxcÚycÚrs       r&   ÚcirclezPSCanvas.circle‡  s0   € Ø�Š�R˜‘T˜"˜Q™$  1¡ R¨¡TÑ*Ô*Ð*Ð*Ð*r(   rÿ   c                 ó²  — ||z   dz  ||z   dz  }	}||z
  dz  ||z
  dz  }}
|                       ||||||¦  «        }t          j        |z  dz  }t          j        |z  dz  }||z   }d}| j        dk    rœ|                      | j        ¦  «         |                      |¦  «         d}| j        dk    r|                      d¦  «         |                      ||	¦  «         |                      d¦  «         | j        dk    r|                      d¦  «         | j        dk    r¿|                      | j        ¦  «         ||
t          j        |¦  «        z  z   |	|t          j	        |¦  «        z  z   }}|s|                      |¦  «         |rA|                      ||	¦  «         |                      ||¦  «         |                      d	¦  «         |                      d
¦  «         dS dS )zÿDraw a partial ellipse inscribed within the rectangle x1,y1,x2,y2,
        starting at startAng degrees and covering extent degrees.   Angles
        start with 0 to the right (+x) and increase counter-clockwise.
        These should have x1<x2 and y1<y2.rÚ   g     €f@r   Nr3   r|   Úeofillr€   r   r¾   )
Ú_genArcCodeÚmathÚpir>   rš   r;   r=   ÚlineToÚcosÚsin)rM   rZ   r[   r®   r¯   ÚstartAngÚextentÚ
fromcenterÚcxÚcyr  r  rò   ÚstartAngleRadiansÚextentRadiansÚendAngleRadiansÚcodelineAppendedÚstartxÚstartys                      r&   r	  zPSCanvas.drawArcŠ  s  € ð �R‘%˜‘˜r "™u c™kˆBˆØ�R‘%˜‘˜r "™u c™kˆBˆà×#Ò# B¨¨B°°H¸fÑEÔEˆå œG HÑ,¨UÑ2ÐÝœ ™ uÑ,ˆØ+¨mÑ;ˆàÐð Œ?˜dÒ"Ð"Ø�MŠM˜$œ/Ñ*Ô*Ð*Ø×Ò˜XÑ&Ô&Ð&Ø ÐØÔ  $Ò&Ð&¨×(8Ò(8¸Ñ(AÔ(AÐ(AØ�KŠK˜˜2ÑÔÐØ×Ò˜XÑ&Ô&Ð&ØÔ  $Ò&Ð&¨×(8Ò(8¸Ñ(DÔ(DÐ(Dð Ô Ò$Ð$à�MŠM˜$Ô+Ñ,Ô,Ð,Ø " 2¥d¤hÐ/@Ñ&AÔ&AÑ#AÑ AÀ2ÀbÍÌÐRcÑIdÔIdÑFdÑCd�VˆVØ#ð +Ø× Ò  Ñ*Ô*Ð*Øð .à—’˜B˜rÑ"Ô"Ð"Ø—’˜F FÑ+Ô+Ð+Ø× Ò  Ñ-Ô-Ð-Ø×Ò˜XÑ&Ô&Ð&Ð&Ð&ð %Ð$r(   c                 ó²   — t          ||z
  dz  ¦  «        }t          ||z
  dz  ¦  «        }||z   dz  ||z   dz  }
}	d}|dk    rd}nd}|	|
|||||z   |f}||z  S )zOCalculate the path for an arc inscribed in rectangle defined by (x1,y1),(x2,y2)rÚ   zImatrix currentmatrix %s %s translate %s %s scale 0 0 1 %s %s %s setmatrixr   ÚarcÚarcn)Úabs)rM   rZ   r[   r®   r¯   r  r  ÚxScaleÚyScaler¹   rº   rò   r$  ró   s                 r&   r  zPSCanvas._genArcCodeµ  sƒ   € õ �b˜‘e˜S‘[Ñ!Ô!ˆÝ�b˜‘e˜S‘[Ñ!Ô!ˆà�2‘�s‰{˜R ™U C™Kˆ1ˆà^ˆà�QŠ;ˆ;ØˆCˆCàˆCØ�!�V˜V X¨x¸©ÀÐDˆà˜$‰Ðr(   c                 ó6  — t          |¦  «        dk    s
J d¦   «         ‚|d         }|dd …         }g }|j        } |dt          |¦  «        z  ¦  «         |D ]} |dt          |¦  «        z  ¦  «         Œ|r |d¦  «         |                      |||¬¦  «         d S )	Nr-   z"Polygon must have 2 or more pointsr   r3   ú%s mú%s lr   )r¾   r½   )r   r   r   r  )	rM   Úprñ   r¾   r½   ÚstartÚpolyr  Úpoints	            r&   rø   zPSCanvas.polygonÇ  s¼   € Ý�1‰vŒv˜Š{ˆ{ˆ{Ð@‰{Œ{ˆ{à�!”ˆØˆaˆbˆbŒEˆàˆØŒKˆØ	ˆˆ&•6˜%‘=”=Ñ
 Ñ!Ô!Ð!Øð 	&ð 	&ˆEØˆAˆf•v˜e‘}”}Ñ$Ñ%Ô%Ð%Ð%Øð 	ØˆAˆk‰NŒNˆNà×Ò˜D¨°DÐÑ9Ô9Ð9Ð9Ð9r(   c           	      óâ   — | j         d k    ra|                      | j         ¦  «         d}|D ]D}|                      |t          |d         ¦  «        t          |d         ¦  «        fz  ¦  «         ŒCd S d S )Nz%s m %s l stroker   r3   )r=   Ú	_setColorr;   r   )rM   ÚlineListrœ   r4   rò   r°   s         r&   ÚlineszPSCanvas.lines×  s„   € ØÔ Ò$Ð$Ø�NŠN˜4Ô,Ñ-Ô-Ð-Ø)ˆHØ ð Oð O�Ø× Ò  ­V°D¸´G©_¬_½VÀDÈÄG¹_¼_Ð,MÑ!MÑNÔNÐNÐNð	 %Ð$ðOð Or(   c                 óR   — |                       dt          ||¦  «        z  ¦  «         d S )Nr*  ©r;   r   ©rM   r¹   rº   s      r&   ÚmoveTozPSCanvas.moveToÞ  ó)   € Ø×Ò˜¥&¨¨A¡,¤,Ñ.Ñ/Ô/Ð/Ð/Ð/r(   c                 óR   — |                       dt          ||¦  «        z  ¦  «         d S )Nr+  r5  r6  s      r&   r  zPSCanvas.lineToá  r8  r(   c                 óZ   — |                       dt          ||||||¦  «        z  ¦  «         d S )Nz%s cr5  )rM   rZ   r[   r®   r¯   rí   rî   s          r&   ÚcurveTozPSCanvas.curveToä  s3   € Ø×Ò˜¥&¨¨B¨r°"°R¸Ñ";Ô";Ñ;Ñ<Ô<Ð<Ð<Ð<r(   c                 ó0   — |                       d¦  «         d S )Nr   r_   r`   s    r&   Ú	closePathzPSCanvas.closePathç  s   € Ø×Ò˜Ñ%Ô%Ð%Ð%Ð%r(   c                 ór  — t          |¦  «        dk    s
J d¦   «         ‚| j        d k    rŽ|                      | j        ¦  «         |                      |d         d         |d         d         ¦  «         |dd …         D ]$}|                      |d         |d         ¦  «         Œ%|                      d¦  «         d S d S )Nr3   z#Polyline must have 1 or more pointsr   r¾   )r   r=   rš   r7  r  r;   )rM   r,  rÓ   s      r&   ÚpolyLinezPSCanvas.polyLineê  s»   € Ý�1‰vŒv˜Š{ˆ{ˆ{ÐA‰{Œ{ˆ{ØÔ Ò$Ð$Ø�MŠM˜$Ô+Ñ,Ô,Ð,Ø�KŠK˜˜!œ˜Qœ  1¤ a¤Ñ)Ô)Ð)Ø�q�r�r”Uð (ð (�Ø—’˜A˜aœD ! A¤$Ñ'Ô'Ð'Ð'Ø×Ò˜XÑ&Ô&Ð&Ð&Ð&ð %Ð$r(   c                 ó:  — g }|j         }d}|D �]i}|d         }t          |dd …         ¦  «        }|t          k    ro|r&d} |dt          |d d…         ¦  «        z  ¦  «         n# |dt          |d d…         ¦  «        z  ¦  «          |dt          |dd …         ¦  «        z  ¦  «         Œœ|t          k    r7d}|d d…         \  }	}
}}}} ||                      |	|
||||¦  «        ¦  «         ŒÞ|t          k    rp|r&d} |dt          |d d…         ¦  «        z  ¦  «         n# |dt          |d d…         ¦  «        z  ¦  «          |dt          |dd …         ¦  «        z  ¦  «         �ŒYt          d|z   ¦  «        ‚|r |d	¦  «         |                      |¦  «         d S )
Nr3   r   r*  r-   r+  r·   z
%s curvetozunknown figure operator: r   )	r   r�   Ú
figureLiner   Ú	figureArcr  ÚfigureCurveÚ	TypeErrorr  )rM   ÚpartListrñ   Ú
figureCoder  ÚfirstÚpartrÀ   rÉ   rZ   r[   r®   r¯   Ú
startAngler  s                  r&   Ú
drawFigurezPSCanvas.drawFigureó  sñ  € Øˆ
ØÔˆØˆàð 	@ñ 	@ˆDØ�a”ˆBÝ˜˜Q˜R˜Rœ‘>”>ˆDà•ZÒÐØð 1Ø�EØ�A�f�v d¨2¨A¨2¤hÑ/Ô/Ñ/Ñ0Ô0Ð0Ð0à�A�f�v d¨2¨A¨2¤hÑ/Ô/Ñ/Ñ0Ô0Ð0Ø��&�6 $ q r r¤(Ñ+Ô+Ñ+Ñ,Ô,Ð,Ð,à•y’�Ø�Ø04°R°a°R´Ñ-��2�b˜˜J vØ��$×"Ò" 2 b¨¨B¨z¸&ÑAÔAÑBÔBÐBÐBà•{Ò"Ð"Øð 1Ø�EØ�A�f�v d¨2¨A¨2¤hÑ/Ô/Ñ/Ñ0Ô0Ð0Ð0à�A�f�v d¨2¨A¨2¤hÑ/Ô/Ñ/Ñ0Ô0Ð0Ø��,¥¨¨Q¨R¨R¬Ñ!1Ô!1Ñ1Ñ2Ô2Ð2Ñ2åÐ ;¸BÑ >Ñ?Ô?Ð?àð 	ØˆAˆk‰NŒNˆNØ×Ò˜JÑ'Ô'Ð'Ð'Ð'r(   c                 ó|  — | j         o|}| j        o|}|s|s|�r | j                             |¦  «         |rw|€| j        }|s|r|                      d¦  «         |                      | j         ¦  «         |                      |t          k    rdnd¦  «         |s|r|                      d¦  «         |r]|r|                      d¦  «         |                      | j        ¦  «         |                      d¦  «         |r|                      d¦  «         |r.|                      d¦  «         |                      d¦  «         d S d S d S )Nr|   r  r½   r€   r¾   Úcliprü   )r>   r=   r:   ÚextendrL   r;   rš   r   )rM   r:   rL  r½   r¾   ÚfillModes         r&   r  zPSCanvas._fillAndStroke  s|  € ØŒÐ' 4ˆØÔ"Ð- vˆØð 	,�6ð 	,˜Tñ 	,ØŒI×Ò˜TÑ"Ô"Ð"Øð @ØÐ#Ø#œ~�HØÐ<˜TÐ< 4×#3Ò#3°GÑ#<Ô#<Ð#<Ø—’˜dœoÑ.Ô.Ð.Ø× Ò ¨Xµ}Ò-DÐ-D  È&ÑQÔQÐQØÐ?˜TÐ? 4×#3Ò#3°JÑ#?Ô#?Ð#?Øð 6ØÐ2˜×)Ò)¨'Ñ2Ô2Ð2Ø—’˜dÔ/Ñ0Ô0Ð0Ø× Ò  Ñ*Ô*Ð*ØÐ5˜×)Ò)¨*Ñ5Ô5Ð5Øð ,Ø× Ò  Ñ(Ô(Ð(Ø× Ò  Ñ+Ô+Ð+Ð+Ð+ð!	,ð 	,ð,ð ,r(   c                 óR   — |                       dt          ||¦  «        z  ¦  «         d S )Nz%s translater5  r6  s      r&   Ú	translatezPSCanvas.translate,  s)   € Ø×Ò˜­&°°1©+¬+Ñ5Ñ6Ô6Ð6Ð6Ð6r(   c                 óR   — |                       dt          ||¦  «        z  ¦  «         d S )Nz%s scaler5  r6  s      r&   ÚscalezPSCanvas.scale/  s)   € Ø×Ò˜¥f¨Q¨q¡k¤kÑ1Ñ2Ô2Ð2Ð2Ð2r(   c                 óZ   — |                       dt          ||||||¦  «        z  ¦  «         d S )Nz[%s] concatr5  )rM   r  Úbr%   ÚdrÐ   rx   s          r&   Ú	transformzPSCanvas.transform2  s3   € Ø×Ò˜­°°!°A°a¸¸!Ñ)<Ô)<Ñ<Ñ=Ô=Ð=Ð=Ð=r(   c                 ó$   — ||c| _         | _        dS )z1if this is used we're probably in the wrong worldN)r4   r5   )rM   ÚwÚhs      r&   Ú_drawTimeResizezPSCanvas._drawTimeResize5  s   € à"# QÐˆŒ
�D”K�K�Kr(   c                 ó¤  — d}|                      d¦  «        }|j        \  }}	|s|}|s|	}| j                             d|›d|›d�|›d|›d�d|z  g¦  «         | j                             |›d|	›d|›�d|›dd	›dd	›d|	 ›dd	›d|	›d
�ddg¦  «          t	          |d¦  «        r|j        n|j        ¦   «         }
|                      |
¦  «        }t          |¦  «        }| 	                    d¦  «        }|dk    r0|  
                    |¦  «         | 	                    d¦  «        }|dk    °0|  
                    d¦  «         |  
                    d¦  «         d S )Nrú   ÚRGBr|   r‹   ú
 translateú scalez/scanline %d 3 mul string defrŠ   r   ú]z2{ currentfile scanline readhexstring pop } false 3zcolorimage ÚtobyteséN   r   z% end of image datar€   )ÚconvertrN   r:   rM  rt   r`  ÚtostringÚ_AsciiHexEncoder   Úreadr;   )rM   rY   rZ   r[   r4   r5   Úcomponent_depthÚmyimageÚimgwidthÚ	imgheightÚrawimageÚhex_encodedÚ	outstreamÚdatalines                 r&   rV   zPSCanvas._drawImageLevel19  s¹  € ð ˆØ—-’- Ñ&Ô&ˆØ%œlÑˆ�)Øð 	ØˆEØð 	ØˆFð& 	Œ	×ÒØØ!#   B B BÐ'Ø"˜U˜U 6 6 6Ð*Ø+¨hÑ6ð	ñ 	ô 	ð 	ð 	Œ	×ÒØ"˜(˜( I I I¨¨Ð?Ð?Ø%- X X¨q¨q¨q°!°!°!°i°Z°Z°ZÀÀÀÀIÀIÀIÐNØ@Øð	ñ 	ô 	ð 	ð X¥w¨w°yÑ'AÔ'AÐW�G”O�OÀwÔGWÑZÔZˆØ×*Ò*¨8Ñ4Ô4ˆõ ˜[Ñ)Ô)ˆ	à—>’> "Ñ%Ô%ˆØ˜"ŠnˆnØ×Ò˜XÑ&Ô&Ð&Ø—n’n RÑ(Ô(ˆHð ˜"Šnˆnð 	×ÒÐ.Ñ/Ô/Ð/Ø×Ò˜Ñ$Ô$Ð$Ð$Ð$r(   c                 ó´   — t          ¦   «         }t          |¦  «        D ]'}|                     dt          |¦  «        z  ¦  «         Œ(|                     ¦   «         S )zHelper function used by imagesz%02x)r   r   rl   r	   Úgetvalue)rM   ÚinputÚoutputÚchars       r&   rd  zPSCanvas._AsciiHexEncodew  sP   € å‘”ˆÝ˜E‘N”Nð 	2ð 	2ˆDØ�LŠL˜¥(¨4¡.¤.Ñ0Ñ1Ô1Ð1Ð1Ø�ŠÑ Ô Ð r(   c           	      óü  — |j         dk    rd}d}|}n>|j         dk    r|                     d¦  «        }d}|}n|                     d¦  «        }d}d}|j        \  }	}
|s|	}|s|
}| j                             d|›d|›d	�|›d|›d
�g¦  «         |dk    r|                      d¦  «         n|dk    r|                      d¦  «         |                      d|	|
|fz  ¦  «         |dk    r|                      d¦  «         |dk    r|                      d¦  «         | j                             d|	›d|
 ›d|
›d�dddg¦  «          t          |d¦  «        r|j        n|j        ¦   «         }|  	                    |¦  «        }t          |¦  «        }|                     d¦  «        }|dk    r0|                      |¦  «         |                     d¦  «        }|dk    °0|                      d¦  «         |                      d¦  «         dS )z"At present we're handling only PILÚLrú   r3   Ú1r\  rµ   r|   r‹   r]  r^  z/DeviceRGB setcolorspacez/DeviceGray setcolorspacezY
<<
/ImageType 1
/Width %d /Height %d  %% dimensions of source image
/BitsPerComponent %dz/Decode [0 1]z6/Decode [0 1 0 1 0 1]  %% decode color values normallyz/ImageMatrix [z 0 0 z 0 r_  z./DataSource currentfile /ASCIIHexDecode filterz>> % End image dictionaryrY   r`  ra  r   z> % end of image datar€   N)Úmoderb  rN   r:   rM  r;   rt   r`  rc  rd  r   re  )rM   rY   rZ   r[   r4   r5   ÚimBitsPerComponentÚimNumComponentsrg  ÚimwidthÚimheightrj  rk  rl  rm  s                  r&   rW   zPSCanvas._drawImageLevel2~  s’  € ð Œ:�sŠ?ˆ?Ø!"ÐØˆOØˆGˆGØŒZ˜3ÒÐØ—m’m CÑ(Ô(ˆGØˆOØˆGˆGà—m’m EÑ*Ô*ˆGØˆOØ!"Ðà#œLÑˆ�Øð 	ØˆEØð 	ØˆFØŒ	×ÒØØ!#   B B BÐ'Ø"˜U˜U 6 6 6Ð*ð,ñ 	-ô 	-ð 	-ð
 ˜aÒÐØ×ÒÐ7Ñ8Ô8Ð8Ð8Ø Ò!Ð!Ø×ÒÐ8Ñ9Ô9Ð9à×Òð ð # HÐ.@ÐAñ	Bñ 	Dô 	Dð 	Dð ˜aÒÐØ×Ò˜_Ñ-Ô-Ð-Ø˜aÒÐØ×ÒÐUÑVÔVÐVàŒ	×ÒÐ¸w¸w¸wÈÈ	È	È	ÐS[ÐS[ÐS[Ð\ØLØ7Ø#ð%ñ 	&ô 	&ð 	&ð
 X¥w¨w°yÑ'AÔ'AÐW�G”O�OÀwÔGWÑZÔZˆØ×*Ò*¨8Ñ4Ô4ˆõ ˜[Ñ)Ô)ˆ	à—>’> "Ñ%Ô%ˆØ˜"ŠnˆnØ×Ò˜XÑ&Ô&Ð&Ø—n’n RÑ(Ô(ˆHð ˜"Šnˆnð 	×ÒÐ0Ñ1Ô1Ð1Ø×Ò˜Ñ$Ô$Ð$Ð$Ð$r(   )r+   r-   )NNr™   )r   )r   rÖ   r   )rÙ   r   )rØ   r   )r3   r3   )rú   rú   )r   rÿ   r   )r   r3   r3   )r   r3   r3   N)3Ú__name__Ú
__module__Ú__qualname__rP   rT   r\   ra   rj   rz   r~   r�   r   rH   rI   r—   rG   rš   r¦   r¨   rJ   rF   r°   r³   rÁ   rÕ   rä   ré   rë   rô   rù   r  r
  r  r	  r  rø   r3  r7  r  r;  r=  r?  rJ  r  rP  rR  rV  rZ  rV   rd  rW   © r(   r&   r*   r*   Z   sy  € € € € € ð'ð 'ð 'ð 'ð,4ð 4ð 4ðWð Wð Wð Wð%ð %ð %ð
3ð 
3ð 
3ð?ð ?ð ?ð ?ð,"ð "ð "ð3ð 3ð 3ð.ð .ð .ð .ð0ð 0ð 0ð
1ð 1ð 1ð
  að 	Mð 	Mð 	Mð 	Mðð ð ðdð dð dðð ð ðð ð ð8ð 8ð 8ð
!ð !ð !ð !ðTð Tð Tð
<ð <ð <ðIð Ið Ið Ið85ð 5ð 5ð 5ð4-ð -ð -ð -ð<^ð ^ð ^ð ^ðYð Yð Yð Yð
)ð 
)ð 
)ð 
)ð^ð ^ð ^ð ^ð ð  ð  ð  ð8#ð #ð #ð+ð +ð +ð)'ð )'ð )'ð )'ðVð ð ð$:ð :ð :ð :ð Oð Oð Oð Oð0ð 0ð 0ð0ð 0ð 0ð=ð =ð =ð&ð &ð &ð'ð 'ð 'ð"(ð "(ð "(ð "(ðH,ð ,ð ,ð ,ð*7ð 7ð 7ð3ð 3ð 3ð>ð >ð >ð'ð 'ð 'ð;%ð ;%ð ;%ð ;%ð|!ð !ð !ð:%ð :%ð :%ð :%ð :%ð :%r(   r*   )Ú*c                 óp   — t          ¦   «         }|                     t          | ¦  «        ||||¬¦  «         dS )z
As it says©ÚshowBoundaryN)Ú_PSRendererÚdrawr   )ÚdrawingÚcanvasr¹   rº   r‚  r"   s         r&   r„  r„  Å  s6   € å‰Œ€AØ‡F‚FÕ˜wÑ'Ô'¨°°AÀL€FÑQÔQÐQÐQÐQr(   c                 ó’   — g }|j         }t          dt          | ¦  «        d¦  «        D ]} || |         | |dz            f¦  «         Œ|S )zo
    given a list of coordinates [x0, y0, x1, y1....]
    produce a list of points [(x0,y0), (y1,y0),....]
    r   r-   r3   )r   Úranger   )rt  ÚPr  rÑ   s       r&   Ú_pointsFromListrŠ  Ê  sY   € ð
 	€AØ	Œ€AÝ�1•S˜‘V”V˜AÑÔð ð ˆØ	ˆˆ1ˆQŒ4��!�A‘#”ˆ-ÑÔÐÐØ€Hr(   c                   óp   — e Zd ZdZd„ Zddddddd	d
œZd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zdd„Zd„ Zd„ ZdS )rƒ  z±This draws onto a EPS document.  It needs to be a class
    rather than a function, as some EPS-specific state tracking is
    needed outside of the state info in the SVG model.c                 óà  — | j                              d|z  ¦  «         | j         j        }t          |t          ¦  «        r|j        s| j                              ¦   «          t          |¦  «        }| j         	                    |¦  «         |  
                    |i ¦  «         |                      |¦  «         | j                             ¦   «         }t          |t          ¦  «        r|j        s| j                              ¦   «          | j                              d|z  ¦  «         || j         _        |                     ¦   «         D ]/\  }}|| j        v r!t!          | j         | j        |         |¦  «         Œ0dS )zEThis is the recursive method called for each node
        in the treezbegin node %rzend node %rN)Ú_canvasrT   rD   rŒ   ÚPathÚ
isClipPathr~   r   Ú_trackerÚpushÚapplyStateChangesÚdrawNodeDispatcherr7   r�   ÚitemsÚ	_restoresÚsetattr)rM   Únoderœ   ÚdeltasÚrDeltasÚkr†   s          r&   ÚdrawNodez_PSRenderer.drawNodeÚ  s`  € ð 	Œ×Ò˜_¨TÑ1Ñ2Ô2Ð2Ø”Ô#ˆÝ˜4¥Ñ&Ô&ð 	%¨4¬?ð 	%ØŒL×"Ò"Ñ$Ô$Ð$õ ˜tÑ$Ô$ˆØŒ×Ò˜6Ñ"Ô"Ð"Ø×Ò˜v rÑ*Ô*Ð*ð 	×Ò Ñ%Ô%Ð%à”-×#Ò#Ñ%Ô%ˆÝ˜4¥Ñ&Ô&ð 	(¨4¬?ð 	(ØŒL×%Ò%Ñ'Ô'Ð'ØŒ×Ò˜]¨4Ñ/Ñ0Ô0Ð0Ø#ˆŒÔð —M’M‘O”Oð 	:ð 	:‰DˆAˆqØ�D”NÐ"Ð"Ý˜œ T¤^°AÔ%6°qÑ9Ô9Ð9øð	:ð 	:r(   r=   r?   rB   rC   r>   r@   rA   )r2   ÚstrokeWidthÚstrokeLineCapÚstrokeLineJoinÚ	fillColorr0   r1   c                 óZ  — |j         |j        cxk    rdk    rFn nC| j                             |j        |j        |j        |j        z   |j        |j        z   ¦  «         d S | j                             |j        |j        |j        |j        z   |j        |j        z   |j         |j        ¦  «         d S )Nr   )	r  r  r�  rù   r¹   rº   r4   r5   r  )rM   rù   s     r&   ÚdrawRectz_PSRenderer.drawRectü  sº   € ØŒ7�d”gÐ"Ð"Ò"Ð" Ò"Ð"Ð"Ð"Ð"àŒL×ÒØ”F˜DœFØ”F˜4œ:Ñ% t¤v¨d¬kÑ'9ñ;ô ;ð ;ð ;ð ;ð ŒL×"Ò"Ø”F˜DœFØ”F˜4œ:Ñ% t¤v¨d¬kÑ'9¸4¼7ÀDÄGñô ð ð ð r(   c                 ó„   — | j         j        r3| j                              |j        |j        |j        |j        ¦  «         d S d S r™   )r�  r=   r°   rZ   r[   r®   r¯   )rM   r°   s     r&   ÚdrawLinez_PSRenderer.drawLine
  sF   € ØŒ<Ô$ð 	BØŒL×Ò˜dœg t¤w°´¸¼ÑAÔAÐAÐAÐAð	Bð 	Br(   c                 ó\   — | j                              |j        |j        |j        ¦  «         d S r™   )r�  r  r  r  r  )rM   r  s     r&   Ú
drawCirclez_PSRenderer.drawCircle  s(   € ØŒ×Ò˜VœY¨¬	°6´8Ñ<Ô<Ð<Ð<Ð<r(   c           	      ó¼  — |                      ¦   «         \  }}}|dk    s|€f|dk    s|€^|j        sW|j        }|j        }|j        }|j        }|j        }	||z
  }
| j                             ||	z
  ||z
  ||	z   ||z   ||
d¬¦  «         d S | 	                    ¦   «         }t          |t          ¦  «        r|                      |¦  «         d S |                      |¦  «         d S )Nr   r3   )r  )Ú
_xtraRadiiÚannularÚstartangledegreesÚendangledegreesÚcenterxÚcenteryÚradiusr�  r	  Ú	asPolygonrŒ   rŽ  ÚdrawPathÚdrawPolygon)rM   ÚwedgeÚyradiusÚradius1Úyradius1r©  rª  r«  r¬  r­  r  r‰  s               r&   Ú	drawWedgez_PSRenderer.drawWedge  s  € Ø%*×%5Ò%5Ñ%7Ô%7Ñ"ˆ�˜(Ø�QŠJˆJ˜'˜/°¸!²°¸xÐ?OÐY^ÔYfÐ?OØ %Ô 7ÐØ#Ô3ˆOØ”]ˆGØ”mˆGØ”\ˆFØ$Ð'8Ñ8ˆFØŒL× Ò  ¨¡°¸±À'È&Á.ÐRYÐZaÑRaØ! 6°að !ñ 9ô 9ð 9ð 9ð 9ð —’Ñ!Ô!ˆAÝ˜!�DÑ!Ô!ð $Ø—’˜aÑ Ô Ð Ð Ð à× Ò  Ñ#Ô#Ð#Ð#Ð#r(   c                 óz   — | j         j        r.| j                              t          |j        ¦  «        ¦  «         d S d S r™   )r�  r=   r?  rŠ  Úpoints©rM   r,  s     r&   ÚdrawPolyLinez_PSRenderer.drawPolyLine#  s?   € ØŒ<Ô$ð 	=ØŒL×!Ò!¥/°!´(Ñ";Ô";Ñ<Ô<Ð<Ð<Ð<ð	=ð 	=r(   c                 ó¸   — |j         |j        z
  }|j         |j        z   }|j        |j        z
  }|j        |j        z   }| j                             ||||¦  «         d S r™   )r  r  r  r  r�  r
  )rM   r
  rZ   r®   r[   r¯   s         r&   ÚdrawEllipsez_PSRenderer.drawEllipse'  s\   € àŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒ×Ò˜R  2 bÑ)Ô)Ð)Ð)Ð)r(   c                 ób   — | j                              t          |j        ¦  «        d¬¦  «         d S )Nr3   )rñ   )r�  rø   rŠ  r·  r¸  s     r&   r°  z_PSRenderer.drawPolygon/  s-   € ØŒ×Ò�_¨Q¬XÑ6Ô6¸qÐÑAÔAÐAÐAÐAr(   c           	      óò  — t          |dd¦  «        }| j        j        s|r×| j                             ¦   «         }|d         |j        |j        |j        f\  }}}}|dvrz|d         |d         }	}t          |||	¦  «        }
|dk    r||
z  }nM|dk    r	||
d	z  z  }n>|d
k    r|t          |||
||	d¬¦  «        z  }nt          dt          |¦  «        z   ¦  «        ‚| j                             ||||¬¦  «         d S d S )Nr»   r   Ú
textAnchor)r-  Ú	inheritedr0   r1   rØ   rÙ   r-   rÛ   Úwinansi)Úencodingzbad value for text_anchor rÜ   )Úgetattrr�  r>   r�  ÚgetStater¹   rº   rè   r   rÝ   rX   r’   rä   )rM   Ú	stringObjr»   ÚSrß   r¹   rº   rè   rƒ   r1   râ   s              r&   rä   z_PSRenderer.drawString2  s6  € Ý  Ð+;¸AÑ>Ô>ˆØŒ<Ô"ð 	M nð 	MØ”×&Ò&Ñ(Ô(ˆAØ&'¨¤o°y´{À9Ä;ÈyÌ~Ð&]Ñ#ˆK˜˜A˜tØÐ"7Ð7Ð7Ø!" :¤°°*´�h�Ý% d¨D°Ñ:Ô:�Ø Ò%Ð%Ø˜‘L�A�AØ  (Ò*Ð*Ø˜ ™‘N�A�AØ  )Ò+Ð+Ø� {°4¸ÀÀXÐW`ÐaÑaÔaÑa�A�Aå$Ð%AÅ#ÀkÑBRÔBRÑ%RÑSÔSÐSØŒL×#Ò# A a¨¸^Ð#ÑLÔLÐLÐLÐLð	Mð 	Mr(   Nc                 óJ  ‡‡‡‡‡— ddl mŠ | j        Š‰j        ‰j        ‰j        ‰j        fŠt          ‰dd¦  «        }ˆˆˆfd„}‰€t          ‰d‰j        ¦  «        Š‰j	        d u}‰j
        d u}‰j        }ˆˆfd„}ˆˆfd„}	ˆfd	„}
|d
k    r |¦   «           ||||¬¦  «         d S |dk    r>|r |d¬¦  «          ||||¬¦  «         d S |s|r |¦   «           ||d|¬¦  «         d S d S |r |d¬¦  «        r |¦   «          d S |s|r |¦   «           ||d|¬¦  «         d S d S )Nr   )Ú_renderPathÚ	autocloser   c                  ó   •—  ‰‰‰fi | ¤ŽS r™   r~  )ÚkwdsrÇ  Ú	drawFuncsÚpaths    €€€r&   ÚrPz _PSRenderer.drawPath.<locals>.rPI  s   ø€ Ø�;˜t YÐ7Ð7°$Ð7Ð7Ð7r(   rN  c                  ó$   •—  ‰j         g fd‰i| ¤ŽS )NrN  ©r  )rÊ  r%   rN  s    €€r&   ú<lambda>z&_PSRenderer.drawPath.<locals>.<lambda>P  s"   ø€ Ð-˜QÔ-¨bÐLÐL¸8ÐLÀtÐLÐL€ r(   c                  ó4   •— ‰                       g d‰¬¦  «        S )Nr   )r¾   rN  rÏ  )r%   rN  s   €€r&   rÐ  z&_PSRenderer.drawPath.<locals>.<lambda>Q  s   ø€ ˜A×,Ò,¨R¸ÀHÐ,ÑMÔM€ r(   c                  ó2   •— ‰                       g d¬¦  «        S )Nr   )r½   rÏ  )r%   s   €r&   rÐ  z&_PSRenderer.drawPath.<locals>.<lambda>R  s   ø€ ˜a×.Ò.¨r¸Ð.Ñ:Ô:€ r(   Úsvg)r¾   r½   rL  ÚpdfT)Ú
forceClose)Ú	countOnly)Úreportlab.graphics.shapesrÇ  r�  r7  r  r;  r=  rÂ  rL   r>   r=   r�  )rM   rÌ  rN  rÈ  rÍ  r½   r¾   rL  ÚfasÚpathFillÚ
pathStrokerÇ  r%   rË  s    ``        @@@r&   r¯  z_PSRenderer.drawPathD  s÷  øøøøø€ Ø9Ð9Ð9Ð9Ð9Ð9ØŒLˆØ”X˜qœx¨¬°A´KÐ@ˆ	Ý˜D ¨RÑ0Ô0ˆ	ð	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8àÐÝ˜t J¨q¬{Ñ;Ô;ˆHØŒ| 4Ð'ˆØ” tÐ+ˆØŒˆØLÐLÐLÐLÐLˆØMÐMÐMÐMÐMˆØ:Ð:Ð:Ð:ˆ
Ø�eÒÐØˆB‰DŒDˆDØˆC�v 4¨TÐ2Ñ2Ô2Ð2Ð2Ð2Ø˜ÒÐØð 4Ø�˜dÐ#Ñ#Ô#Ð#Ø�˜6 t°Ð6Ñ6Ô6Ð6Ð6Ð6Øð 4˜4ð 4Ø�‘”�Ø�˜6 q¨dÐ3Ñ3Ô3Ð3Ð3Ð3ð4ð 4ð ð 4˜˜ TÐ*Ñ*Ô*ð 4Ø�‘”���Øð 4˜4ð 4Ø�‘”�Ø�˜6 q¨dÐ3Ñ3Ô3Ð3Ð3Ð3ð4ð 4r(   c           
      ó$  — |                      ¦   «         D �]ù\  }}|dk    rD| j                             |d         |d         |d         |d         |d         |d         ¦  «         ŒP|dk    r| j                             |¦  «         Œq|d	k    r| j                             |¦  «         Œ’|d
k    r| j                             |¦  «         Œ³|dk    r| j                             |¦  «         ŒÔ|dk    rž|r�t          |t          t          f¦  «        rFt          |¦  «        dk    r3t          |d         t          t          f¦  «        r|d         }|d         }nd}| j                             ||¦  «         �Œ]| j                             ¦   «          �Œx|dk    r| j                             |¦  «         �Œš|dv r[|                     d| j        j        ¦  «        }|                     d| j        j        ¦  «        }| j                             ||¦  «         �ŒûdS )z\This takes a set of states, and outputs the operators
        needed to set those propertiesrV  r   r3   r-   rµ   r¶   r¸   r2   rœ  r�  rž  ÚstrokeDashArrayrŸ  )r1   r0   r0   r1   N)r”  r�  rV  rG   rJ   rH   rI   rŒ   r�   r�   r   r—   r¦   Úgetr@   rA   rF   )rM   ÚdeltaÚnewStateÚkeyÚvaluer”   ÚfontnameÚfontsizes           r&   r’  z_PSRenderer.applyStateChangesd  s,  € ð  Ÿ+š+™-œ-ð *	9ñ *	9‰JˆC�Ø�kÒ!Ð!Ø”×&Ò& u¨Q¤x°°q´¸5À¼8Ø!& q¤¨5°¬8°U¸1´Xñ?ô ?ð ?ð ?à˜Ò%Ð%ð ”×+Ò+¨EÑ2Ô2Ð2Ð2Ø˜Ò%Ð%Ø”×)Ò)¨%Ñ0Ô0Ð0Ð0Ø˜Ò'Ð'Ø”×'Ò'¨Ñ.Ô.Ð.Ð.ØÐ(Ò(Ð(Ø”×(Ò(¨Ñ/Ô/Ð/Ð/ØÐ)Ò)Ð)Øð +Ý! %­­e¨Ñ5Ô5ð "½#¸e¹*¼*Àaº-¸-ÍJÐW\Ð]^ÔW_ÕafÕgkÐ`lÑLmÔLm¸-Ø % a¤˜Ø % a¤˜˜à !˜Ø”L×(Ò(¨¨uÑ5Ô5Ð5Ñ5à”L×(Ò(Ñ*Ô*Ð*Ñ*ð ˜Ò#Ð#ð ”×)Ò)¨%Ñ0Ô0Ð0Ñ0ð
 Ð0Ð0Ð0ð !Ÿ9š9 Z°´Ô1CÑDÔD�Ø Ÿ9š9 Z°´Ô1GÑHÔH�Ø”×$Ò$ X¨xÑ8Ô8Ð8ùðU*	9ð *	9r(   c                 ó    — ddl m}  ||j        ¦  «        }| j                             |j        |j        |j        |j        |j	        ¦  «         d S )Nr   )ÚImageReader)
rw   rå  rÌ  r�  r\   Ú_imager¹   rº   r4   r5   )rM   rY   rå  Úims       r&   r\   z_PSRenderer.drawImage“  sS   € Ø3Ð3Ð3Ð3Ð3Ð3Øˆ[˜œÑ$Ô$ˆØŒ×Ò˜rœy¨¬°´¸¼ÀUÄ\ÑRÔRÐRÐRÐRr(   r™   )r{  r|  r}  Ú__doc__r›  r•  r¡  r£  r¥  rµ  r¹  r»  r°  rä   r¯  r’  r\   r~  r(   r&   rƒ  rƒ  Õ  s  € € € € € ð:ð :ð:ð :ð :ð<  .¸\ÐZdØ!,¸ÐQXØ&ð(ð (€Iðð ð ðBð Bð Bð=ð =ð =ð$ð $ð $ð$=ð =ð =ð*ð *ð *ðBð Bð BðMð Mð Mð$4ð 4ð 4ð 4ð@-9ð -9ð -9ð^Sð Sð Sð Sð Sr(   rƒ  c                 ó¬   — t          | ¦  «        } t          | j        | j        f¦  «        }t	          | |dd|¬¦  «         |                     |¦  «         d S )Nr   r�  )r   r*   r4   r5   r„  rz   )rU  Úfnr‚  Úkwdr%   s        r&   Ú
drawToFilerì  ˜  sQ   € Ý˜AÑÔ€AÝ�!”'˜!œ(Ð#Ñ$Ô$€AÝˆˆAˆq�! ,Ð/Ñ/Ô/Ð/Ø‡F‚Fˆ2�J„J€J€J€Jr(   c                 ój   — t          ¦   «         }t          | ||¬¦  «         |                     ¦   «         S )z=Returns a PS as a string in memory, without touching the diskr�  )r   rì  ro  )rU  r‚  r!   s      r&   ÚdrawToStringrî  ž  s.   € å‰	Œ	€AÝˆq�! ,Ð/Ñ/Ô/Ð/Ø�:Š:‰<Œ<Ðr(   ÚepsoutFc                 óp  — ddl m} ddlm} |j        d d …         }g d¢|j        d d …<   	 dd l}|j                             | ¦  «        s|                     | ¦  «         g }t          |¦  «        D ]R}|dd…         dk    rBt          ||¦  «        } |¦   «         }	t          |dd¦  «        }
|                     |	|
f¦  «         ŒSd}|D ]Q\  }}
| |j        z   d	|z  z   }t          ||¦  «         |s|d
k    rt          dt          |¦  «        z  ¦  «         |dz  }ŒR	 ||j        d d …<   d S # ||j        d d …<   w xY w)Nr   )Ú
testshapes)Úverbose)zTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicÚCourierrÄ   Ú
getDrawingrè  r   zrenderPS_%d.epsr-   zrenderPS test saved %sr3   )Úreportlab.graphicsrñ  Úreportlab.rl_configrò  Ú_FONTSÚosrÌ  ÚisdirÚmkdirÚdirrÂ  r   Úseprì  Úprintr²   )ÚoutDirÚshoutrñ  rò  ÚOLDFONTSrø  ÚdrawingsÚfuncnameÚfuncr…  Ú	docstringrÑ   rU  Úfilenames                 r&   Útestr  ª  sŸ  € Ø-Ð-Ð-Ð-Ð-Ð-Ø+Ð+Ð+Ð+Ð+Ð+ØÔ    Ô#€HØdÐdÐd€JÔ�a�a�aÑð(Øˆ	ˆ	ˆ	àŒw�}Š}˜VÑ$Ô$ð 	Ø�HŠH�VÑÔÐàˆå˜J™œð 	6ð 	6ˆHØ˜˜"˜Œ~ Ò-Ð-Ý˜z¨(Ñ3Ô3�Ø˜$™&œ&�Ý# D¨°2Ñ6Ô6�	Ø—’ ¨)Ð 4Ñ5Ô5Ð5øàˆØ&ð 	ð 	‰NˆQ�	Ø ¤‘Ð):¸1Ñ)<Ñ<ˆHÝ�q˜Ñ"Ô"Ð"ØÐT˜ š	˜	¥5Ð)AÅEÈ(ÁOÄOÑ)SÑ#TÔ#TÐ#TØ�‰FˆAˆAð		ð  (ˆ
Ô˜!˜!˜!ÑÐÐø˜xˆ
Ô˜!˜!˜!ÑÐ'Ð'Ð'Ð's   «C-D' Ä'D5Ú__main__r3   T)rÿ  )rï  F)0Ú__version__rè  r  Úior   r   Úreportlab.pdfbase.pdfmetricsr   r   r   rw   r   r	   r
   r   r   Úreportlab.lib.rl_accelr   Úreportlab.graphics.renderbaser   r   r   r×  r   Ú	reportlabr   Úreportlab.pdfgen.canvasr   r   rˆ  r%   ÚordÚchrr'   rg   r*   r‚  r„  rŠ  rƒ  rì  rî  r  r{  Úsysr   ÚargvÚoutdirr~  r(   r&   ú<module>r     sç  ðð €Ø2€à €€€Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ )Ð )Ð )Ð )Ð )Ð )Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à€Ø	ˆˆs‰Œð  ð  €AØˆ‚t€tˆq�#ŠvˆvØ  1™ˆ�A‰ˆØ	
ˆsˆs�4‰yŒy˜˜˜S™œ # # c¡(¤(Ð+Ð	+Ð	+Ø˜c˜c !™fœf™ˆ�A‰ˆà˜˜Q™œˆ�A‰ˆØðð ð ð -Ð ð^^	%ð ^	%ð ^	%ð ^	%ð ^	%ñ ^	%ô ^	%ð ^	%ðB1ð (Ð 'Ð 'Ð 'ð  °Ô1Gð Rð Rð Rð Rð
	ð 	ð 	ðASð ASð ASð ASð AS�(ñ ASô ASð ASðF #,Ô"8ð ð ð ð ð "+Ô!7ð ð ð ð ð(ð (ð (ð (ð: ˆZÒÐØ€J€J€JØ
€sˆ3Œ8�}„}�Q‚€Ø”˜!”ˆˆàˆØ€Dˆ�dÐÑÔÐÐÐð Ðr(   