+
    Œvj1”  ã                   ó¨  € R t Rt^ RIt^ RIHtHt ^ RIHtHtH	t	 ^ RI
HtHtHtHtHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ R	IHt ^ R
IHt / t]! R4       FZ  t]^ 8  g   ]^8¼  d   R],          ]]&   K  ]]! R4      ]! R4      ]! R4      39   d   R] ! ]4      ,           ]]&   KO  ] ! ]4      ]]&   K\  	  AR t!Rt" ! R R4      t# ^ RI5 ^ ^ ]PH                  3R lt%R t& ! R R]4      t']PH                  3R lt(]PH                  3R lt)R R lt*]+R8X  d>   ^ RI,t,]-! ],P\                  4      ^8”  d   ],P\                  ^,          t/MRt/]*! ]/RR7       R# R# )!z3.3.0z$Render drawing objects in PostscriptN)Ú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                 óò   € \        V 4      p . pVP                  p^ pV  FF  p\        \        V4      ,          pV! V4       V\	        V4      ,          pV^È8¼  g   K<  ^ pV! R4       KH  	  RP                  V4      # )é    z\
Ú )r   ÚappendÚ_ESCAPEDICTr   ÚlenÚjoin)ÚsÚRÚaRÚnÚcs   &    Ú_/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/renderPS.pyÚ_escape_and_limitr$      sm   € Ü�‹
€AØ
€AØ	
�‰€BØ	€AÛˆÜœ ›Õ$ˆÙ
ˆ1ŒØ	ŒS�‹V�ˆØˆcŽ6ØˆAÙˆvŽ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                   ó˜  a € ] tR t^Zt o R3R ltR tR4R ltR tR tR5R lt	R t
R	 tR4R
 ltR tR t. ^ 3R ltR tR tR tR tR tR5R ltR tR tR6R ltR6R ltR7R ltR8R ltR9R ltR6R ltR:R ltR;R ltR t R t!R<R  lt"R! t#R=R" lt$R4R# lt%R$ t&R% t'R& t(R' t)R( t*R6R) lt+R>R* lt,R+ t-R, t.R- t/R. t0R4R/ lt1R0 t2R4R1 lt3R2t4V t5R# )?ÚPSCanvasc                óZ  € Vw  V n         V n        . pVP                  V n        VP                  V n        ^ V n        . V n        V P                  P                  V n        RV n	        R;V n
        ;V n        ;V n        ;V n        ;V n        ;V n        ;V n        V n        . V n        V P'                  \(        R,          \(        R,          4       V P+                  \(        R,          4       V P-                  ^4       V P/                  ^ 4       V P1                  ^4       W n        \4        V n        R# )r   Ú
NÚfontNameÚfontSizeÚstrokeColor)Ú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ÚsizerD   Ú	xtraStates   &&& r#   Ú__init__ÚPSCanvas.__init__[   s
  € Ø"&ÑˆŒ
�D”KØˆ	Ø(×/Ñ/ˆÔØ'Ÿm™mˆÔØˆŒØˆŒ	ØŸ9™9×+Ñ+ˆÔØˆŒ	ð ,0ð	0ˆÔð 	0˜DœOð 	0¨d¬oð 	0ØŒJð	0Øœð	0Ø*.¬-ð	0àŒN˜Tœ[àˆŒØ�‰”^ JÕ/´¸zÕ0JÔKØ×ÑœN¨=Õ9Ô:Ø�‰˜ÔØ×Ñ˜ÔØ×Ñ˜!ÔØ,ÔÜ&ˆŽr%   c                ó^   € V P                   '       d   V P                  R V,           4       R# R# )Ú%N)r2   r4   )rF   Úmsgs   &&r#   ÚcommentÚPSCanvas.commentq   s   € Ø�=�=ˆ=˜$×*Ñ*¨3¨s­7Ö3‰=r%   Nc                óÒ   € V P                   ^8X  d   V P                  WW4V4       R# V P                   ^8X  d   V P                  WW4V4       R# \        RV P                   ,          4      h)é   zUnsupported Postscript Level %sN)rD   Ú_drawImageLevel1Ú_drawImageLevel2Ú
ValueError)rF   ÚimageÚx1Úy1r-   r.   s   &&&&&&r#   Ú	drawImageÚPSCanvas.drawImaget   sY   € à×Ñ Ô"Ø×!Ñ! %¨B°vÖ>Ø×!Ñ! 1Ô$Ø×!Ñ! %¨R¸Ö?äÐ>À×AUÑAUÕUÓVÐVr%   c                ó(   € V P                  R 4       R# )ÚshowpageN©r4   ©rF   s   &r#   ÚclearÚPSCanvas.clear}   s   € Ø×Ñ˜Ö$r%   c                óš  € V P                   '       g   R # . pV P                    FO  p\        V4      pVP                  '       d   K"  VP                  R8X  g   K5  VP	                  RV: RV: R24       KQ  	  V'       dN   VP                  ^ \        4       V P                  P                  ^V P                  P                  V4      4       R # R # )NÚWinAnsiEncodingzWinAnsiEncoding /z /z RE)
r>   r   Ú_dynamicFontÚencNamer   ÚinsertÚPS_WinAnsiEncodingr3   r5   r   )rF   ÚCr*   ÚfontObjs   &   r#   Ú_t1_re_encodeÚPSCanvas._t1_re_encode€   s�   € Ø��ˆ¡àˆØŸœˆHÜ˜hÓ'ˆGØ×'×'Ò'¨G¯O©OÐ=NÖ,NØ—’»Ã8ÐLÖMñ (÷ Ø�H‰H�QÔ)Ô*Ø�I‰I×Ñ˜Q §	¡	§¡¨qÓ 1Ö2ñ r%   c                óô  € \        VR 4      '       g   \        VR4      pMTpV P                  R	,          R8w  d   V P                  4        V P                  P	                  ^ RV P
                  V P                  3,          4       V P                  4        VP                  \        V P                  P                  V P                  4      4      4       W!Jd$   TP                  4        ^ RIHp V! VRRR7       R# R# )
ÚwriteÚwbr[   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ÚfiletypeNéÿÿÿÿ)ÚhasattrÚopenr3   r^   rd   r-   r.   rh   rk   r	   r5   r   ÚcloseÚreportlab.lib.utilsrm   )rF   ÚfÚ_frm   s   &&  r#   ÚsaveÚPSCanvas.saveŒ   s¹   € Ü�q˜×!Ò!Ü�a˜“‰BàˆBØ�9‰9�R�=˜*Ô$ d§j¡j¤lØ�	‰	×Ñ˜ð ð ‡z�z�$—+‘+Ðõô 	 ð 	×ÑÔØ
�‰”˜$Ÿ)™)Ÿ.™.¨¯©Ó3Ó4Ô5Ø‹;Ø�H‰HŒJÝ8Ù˜ v°v×>ñ r%   c                ó`   € V P                  V P                  34       V P                  R 4       R# )ÚgsaveN)r/   Ú_fontCodeLocr4   r]   s   &r#   Ú	saveStateÚPSCanvas.saveState¢   s'   € Ø×Ñ˜d×/Ñ/Ð1Ô2Ø×Ñ˜Ö!r%   c                óV   € V P                  R 4       V P                  4       w  V n        R# )ÚgrestoreN)r4   r1   r}   r]   s   &r#   ÚrestoreStateÚPSCanvas.restoreState¦   s$   € Ø×Ñ˜Ô$Ø!×0Ñ0Ó2ÑˆÖr%   c                ór   € T;'       g    V P                   pT;'       g    V P                  p\        WV4      # )zdReturn the logical width of the string if it were drawn
in the current font (defaults to self.font).)r9   r:   r   )rF   r   Úfontr+   s   &&&&r#   r   ÚPSCanvas.stringWidthª   s3   € ð ×!Ð!�t—z‘zˆØ×-Ð-˜tŸ~™~ˆÜ˜1 HÓ-Ð-r%   c                óh   € V P                   V8w  d!   Wn         V P                  R V,          4       R# R# )z%d setlinecapN)r;   r4   ©rF   Úvs   &&r#   rA   ÚPSCanvas.setLineCap±   s+   € Ø�=‰=˜!ÔØŒMØ×Ñ˜_¨QÕ.Ö/ñ r%   c                óh   € V P                   V8w  d!   Wn         V P                  R V,          4       R# R# )z%d setlinejoinN)r<   r4   rˆ   s   &&r#   rB   ÚPSCanvas.setLineJoin¶   s,   € Ø�>‰>˜1ÔØŒNØ×ÑÐ-¨aÕ/Ö0ñ r%   c                óP  € Rp\        V\        \        34      '       d    V P                  RV: RV: RV: 24       R# \        V\        \
        34      '       dM   V^ 8¼  g   Q R4       hRP                  \        \        V4      4      pV P                  RV: RV: RV: 24       R# R# )z7Two notations.  pass two numbers, or an array and phaseÚsetdashÚ[Ú z] 0 zphase is a length in user spacez] N)	Ú
isinstanceÚfloatÚintr4   ÚtupleÚlistr   ÚmapÚstr)rF   ÚarrayÚphaseÚpsoperationÚ	textarrays   &&&  r#   ÚsetDashÚPSCanvas.setDash»   s€   € ð  ˆÜ�eœU¤3˜K×(Ò(Ø×Ò«u³eº[ÐIÖJÜ˜œu¤T˜l×+Ò+Ø˜A”:Ð@Ð@Ó@�:ØŸ™¤¤S¨%£Ó1ˆIØ×Ò«Y»º{ÐKÖLñ ,r%   c                ó4   € Wn         V P                  V4       R # ©N)r6   ÚsetColor©rF   Úcolors   &&r#   r@   ÚPSCanvas.setStrokeColorÆ   s   € Ø!ÔØ�‰�eÖr%   c           	     óŽ  € V P                   V8w  d´   Wn         V'       d¤   \        VR 4      '       dO   V P                  R\        VP                  VP
                  VP                  VP                  4      ,          4       R# V P                  R\        VP                  VP                  VP                  4      ,          4       R# R# R# )Úcyanz%s setcmykcolorz%s setrgbcolorN)r=   rs   r4   r   r¥   ÚmagentaÚyellowÚblackÚredÚgreenÚbluer¡   s   &&r#   r    ÚPSCanvas.setColorÊ   sŽ   € Ø�;‰;˜ÔØŒKßÜ˜5 &×)Ò)Ø×$Ñ$Ð%6¼ÀÇ
Á
ÈEÏMÉMÐ[`×[gÑ[gÐin×itÑitÓ9uÕ%uÖvà×$Ñ$Ð%5¼¸u¿y¹yÈ%Ï+É+ÐW\×WaÑWaÓ8bÕ%bÖcñ	 ñ r%   c                ó4   € Wn         V P                  V4       R # rŸ   )r7   r    r¡   s   &&r#   ÚsetFillColorÚPSCanvas.setFillColorÓ   s   € ØŒØ�‰�eÖr%   c                ó   € Wn         R # rŸ   )rE   rˆ   s   &&r#   ÚsetFillModeÚPSCanvas.setFillMode×   s   € ØŽr%   c                óf   € WP                   8w  d!   Wn         V P                  R V,          4       R# R# )z%s setlinewidthN)r8   r4   )rF   r-   s   &&r#   rC   ÚPSCanvas.setLineWidthÚ   s*   € Ø—O‘OÔ#Ø#ŒOØ×ÑÐ.°Õ6Ö7ñ $r%   c                ó¼   € V P                   V8w  g   V P                  V8w  d:   \        V P                  4      V n        Wn         W n        V P                  R 4       R# R# )r   N)r9   r:   r   r3   r}   r4   )rF   r…   r+   Úleadings   &&&&r#   r?   ÚPSCanvas.setFontß   sF   € Ø�:‰:�tÔ˜tŸ~™~¨xÔ7Ü # D§I¡I£ˆDÔØŒJØ%ŒNØ×Ñ˜RÖ ñ	  8r%   c                ó¸   € V P                   R 8w  dI   V P                  V P                   4       V P                  \        W4      : R\        W44      : R24       R # R # )Nz m z	 l stroke)r6   r    r4   r   ©rF   rV   rW   Úx2Úy2s   &&&&&r#   ÚlineÚPSCanvas.lineæ   sB   € Ø×Ñ Ô$Ø�M‰M˜$×+Ñ+Ô,Ø×Ñ´6¸"¶>Ä6È"Æ>ÐRÖSñ %r%   c                óZ   €  \        V4      #    \        R\        T4      ,          4      h; i)zc
return a copy of string s with special characters in postscript strings
escaped with backslashes.
zcannot escape %s)r$   rT   Úascii)rF   r   s   &&r#   Ú_escapeÚPSCanvas._escapeë   s.   € ð
	<Ü$ QÓ'Ð'øð	<ÜÐ/´%¸³(Õ:Ó;Ð;ús   ‚
 �*c                ó>  € V^8X  d   R# \        W4      pV P                  V4      pV^ 8X  d7   V P                  V P                  4       V P	                  V: RV: R24       R# V^ 8H  ;'       g     V^8H  ;'       g    V^8H  ;'       g    V^8H  pV^8H  ;'       g     V^8H  ;'       g    V^8H  ;'       g    V^8H  pV^8¬  pV'       d¢   V'       dš   V P                  f   Rp	MRp	V P                  V P                  4       V P	                  V: RV: RV	: 24       V P	                  R4       V P
                  e/   V P                  V P
                  4       V P	                  R4       R# R# V P                  V P
                  4       V P	                  V: RV: R	24       R# )
é   Nz m (z) show r   zfill z) true charpath gsave z	grestore zstroke z) true charpath stroke )r   rÀ   r    r7   r4   r6   )
rF   ÚxÚyr   ÚtextRenderModeÚxyÚfillÚstrokeÚ	addToClipÚops
   &&&&&     r#   Ú_textOutÚPSCanvas._textOutõ   sc  € Ø˜1Ô™fÜ�A‹[ˆØ�L‰L˜‹Oˆà˜1ÔØ�M‰M˜$Ÿ/™/Ô*Ø×Ñ³"³QÐ7Ô8Ùà˜qÑ ×_Ð_ N°AÑ$5×_Ð_¸ÈÑ9J×_Ð_ÈnÐ^_ÑN_ˆØ Ñ"×aÐa n°aÑ&7×aÐa¸>È1Ñ;L×aÐaÐP^Ð`aÑPaˆØ" AÑ%ˆ	ß—FØ�‰Ò&Ø‘à�Ø—‘˜dŸo™oÔ.Ø×ÑÃ2ÃaÊÐKÔLØ×Ñ˜[Ô)Ø× Ñ Ò,Ø—‘˜d×/Ñ/Ô0Ø× Ñ  Ö+ñ -ð �M‰M˜$×+Ñ+Ô,Ø×ÑÃ"ÃQÐGÖHr%   c                óš  € TpV P                   pV P                  pV P                  p	V P                  p
\	        V4      '       g    VP                  R 4      p\        WA.VP                  ,           4       F¡  w  rïWæ8w  dT   \        VP                  P                  4      pV! RV: R\        V4      : R	24       VV	9  d   V	P                  V4       TpV P                  W#Wõ4       W.P!                  VP                  VP"                  4      V4      ,          pK£  	  W8w  d0   RV n        V P'                  VP                  P                  V4       R# R#   \         dq   pTP                  R,          w  rÍ\        TP                  R,          TP                  ^,          : RYL^
,
          T : RYLT : RYMT^
,            : 23,           !  hRp?ii ; i)
Úutf8:é   é   N:NrÑ   Nr)   z-->z<--Nr   ú) findfont ú scalefont setfont)r4   r:   r>   rÀ   r   ÚdecodeÚUnicodeDecodeErrorÚargsr   ÚsubstitutionFontsr
   ÚfaceÚnamer   r   rÌ   r   rc   r9   r?   )rF   rg   rÄ   rÅ   r   rÆ   Úfcr4   r+   Ú	fontsUsedÚescapeÚeÚiÚjrw   ÚtÚpsNames   &&&&&&           r#   Ú_issueT1StringÚPSCanvas._issueT1String  s|  € ØˆØ×&Ñ&ˆØ—>‘>ˆØ—O‘Oˆ	Ø—‘ˆÜ˜�|Š|ðwØ—H‘H˜VÓ$�ô
 ˜q ¨7×+DÑ+DÕ!DÖE‰DˆAØŒuÜ! !§&¡&§+¡+Ó.�ÚÃFÌ6ÐRZÖK[Ð\Ô]Ø Ô*Ø×$Ñ$ VÔ,Ø�Ø�M‰M˜!˜aÔ/Ø—‘˜qŸx™x¨¯	©	Ó2°8Ó<Õ<ŠAñ Fð Œ;ØˆDŒJØ�L‰L˜Ÿ™×*Ñ*¨8Ö4ñ øô &ô wØ—f‘f˜S•k‘�Ü(¨1¯6©6°"­:ÈQÏVÉVÐTUÏYÈYÐWXÐ[]ÕY]Ð^_ÓW`ÐabÐefÓagÐhiÐlmÐnpÕlpÒhqÐ7rÐ6tÕ+tÑvÐvûðwús   ÁE ÅG
ÅA+GÇG
c                óö  € VR9   pVR9   pV'       g
   V'       EdÞ   VR8w  dw   \        W0P                  V P                  4      p	VR8X  d
   W,          pMFVR8X  d   WR,          ,          pM/VR8X  d)   V\        WSW�P                  V P                  4      ,          p\	        V P                  4      p
V P
                  V P                  ,          '       g€   \        V
P                  P                  4      pRV: R\        V P                  4      : R2V P
                  V P                  &   W°P                  9  d   V P                  P                  V4       V^ 8w  d0   V P                  R	\        W4      : R
\        V4      : R24       ^ ;rV P                  pV
P                  '       d   V P!                  WW6R7       MV P#                  W¡W#VR7       V P%                  V4       V^ 8w  d   V P                  R4       R# R# R# )r   ÚleftÚendÚmiddleç       @Únumericr   rÒ   rÓ   zgsave z translate z rotate©rÆ   r�   N)r   rÐ   rÑ   é   )rQ   rÐ   é   rë   )r   r9   r:   ÚnumericXShiftr   r3   r}   r
   rØ   rÙ   r   r>   r   r4   r=   rb   rÌ   râ   r    )rF   rÄ   rÅ   r   ÚangleÚtext_anchorrÆ   ÚneedFillÚ
needStrokeÚtextLenrg   rá   ÚoldColors   &&&&&&&      r#   Ú
drawStringÚPSCanvas.drawString+  s†  € Ø! YÑ.ˆØ# yÑ0ˆ
ß—z�zØ˜FÔ"Ü% a¯©°D·N±NÓC�Ø Ô%Ø•L‘AØ  (Ô*Ø �•O‘AØ  )Ô+Øœ {°W¿Z¹ZÈÏÉÓWÕW�AÜ˜dŸj™jÓ)ˆGØ—9‘9˜T×.Ñ.×/Ô/Ü! '§,¡,×"3Ñ"3Ó4‘ÛU[Ô\bÐcg×cqÑcqÖ\rÐ-s�—	‘	˜$×+Ñ+Ñ,Ø§¡Ô0Ø—O‘O×*Ñ*¨6Ô2Ø�aŒxØ× Ò Ä6È!Æ;ÌvÐV[Î}Ð!]Ô^Ø�	�Ø—{‘{ˆHØ×#×#Ð#Ø—‘˜a A�ÕEà×#Ñ# G¨aÀ.Ð#ÔQØ�M‰M˜(Ô#Ø�aŒxØ× Ñ  Ö,ñ ñ1 "r%   c                ó.   € V P                  WW4VR 7       R# ©)rï   rÆ   N©rô   )rF   rÄ   rÅ   Útextrï   rÆ   s   &&&&&&r#   ÚdrawCentredStringÚPSCanvas.drawCentredStringI  s   € Ø�O‰O˜A ÈnˆOÖ]r%   c                ó.   € V P                  WW4VR 7       R# r÷   rø   )rF   rù   rÄ   rÅ   rï   rÆ   s   &&&&&&r#   ÚdrawRightStringÚPSCanvas.drawRightStringL  s   € Ø�‰˜˜qÈˆÖXr%   c
           	     óœ  € R p
\        W4      \        W4WVWx4      3pV P                  R8w  d:   V P                  V P                  4       V P                  W«,          R,           4       V P                  R8w  dW   V P                  V P                  4       T P                  W«,          T	;'       d    R;'       g    R,           R,           4       R# R# )z%s m %s curvetoNz eofillz
 closepathr   z stroke)r   r7   r    r4   r6   )rF   rV   rW   rº   r»   Úx3Úy3Úx4Úy4ÚclosedÚcodelineÚdatas   &&&&&&&&&&  r#   Ú	drawCurveÚPSCanvas.drawCurveO  s§   € Ø$ˆÜ�r“¤ r¨r°rÓ >Ð?ˆØ�?‰?˜dÔ"Ø�M‰M˜$Ÿ/™/Ô*Ø×Ñ˜h�o°Õ:Ô;Ø×Ñ Ô$Ø�M‰M˜$×+Ñ+Ô,Ø×Ñ˜h�oØ &× 7Ð 7¨<×>Ð>¸Bõ@à'õ(ö )ñ %r%   c                ó’   € \        W4      \        W4      r1\        W$4      \        W$4      rBV P                  W3W23W43W33^WVR7       R# )z)Draw a rectangle between x1,y1, and x2,y2)r  rÉ   rÈ   N)ÚminÚmaxÚpolygon)rF   rV   rW   rº   r»   rÉ   rÈ   s   &&&&&&&r#   ÚrectÚPSCanvas.rect]  sE   € ô �R“œS ›[ˆBÜ�R“œS ›[ˆBØ�‰�r�g˜r˜g r g¨r¨gÐ6¸qÈˆÖ]r%   c           	     ó¶  € \        W4      \        W4      r1\        W$4      \        W$4      rBRpR.pVP                  p	V	! WqV,           W&,           WV) ^Z^´3,          4       V	! WqV,           WF,
          WV) ^´R3,          4       V	! WsV,
          WF,
          WV) RR3,          4       V	! WsV,
          W&,           WV) ^ ^Z3,          4       V	! R4       V P                  V4       R# )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Únewpathi  éh  Ú	closepathN)r
  r  r   Ú_fillAndStroke)
rF   rV   rW   rº   r»   ÚrxÚryÚellipsePathÚrrÚas
   &&&&&&&   r#   Ú	roundRectÚPSCanvas.roundRecte  sÉ   € ô �R“œS ›[ˆBÜ�R“œS ›[ˆBð cˆð ˆ[ˆØ�I‰Iˆá	ˆ+˜B� ¥ r¨3°°CÐ8Õ
8Ô9Ù	ˆ+˜B� ¥ r¨3°°SÐ9Õ
9Ô:Ù	ˆ+˜B� ¥ r¨3°°SÐ9Õ
9Ô:Ù	ˆ+˜B� ¥ r¨3°°BÐ7Õ
7Ô9Ù	ˆ+Œà×Ñ˜BÖr%   c                ó*   € V P                  WW44       R# )ziDraw an orthogonal ellipse inscribed within the rectangle x1,y1,x2,y2.
These should have x1<x2 and y1<y2.N)ÚdrawArcr¹   s   &&&&&r#   ÚellipseÚPSCanvas.ellipse�  s   € ð 	�‰�R˜BÖ"r%   c                ó^   € V P                  W,
          W#,
          W,           W#,           4       R # rŸ   )r  )rF   ÚxcÚycÚrs   &&&&r#   ÚcircleÚPSCanvas.circle‡  s   € Ø�‰�R•T˜"�$ ¥ R¥TÖ*r%   c                ó*  € W,           R,          W$,           R,          r˜W1,
          R,          WB,
          R,          rºV P                  WW4WV4      p\        P                  V,          R,          p\        P                  V,          R,          pWÞ,           p^ pV P                  R8w  d•   V P	                  V P                  4       V P                  V4       ^pV P                  R8w  d   V P                  R4       V P                  W‰4       V P                  R4       V P                  R8w  d   V P                  R4       V P                  R8w  dÊ   V P	                  V P                  4       WŠ\        P                  ! V4      ,          ,           W›\        P                  ! V4      ,          ,           ppV'       g   V P                  V4       V'       d5   V P                  W‰4       V P                  VV4       V P                  R4       V P                  R4       R# R# )	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@Nr|   Úeofillr�   r  rÉ   )
Ú_genArcCodeÚmathÚpir7   r    r4   r6   ÚlineToÚcosÚsin)rF   rV   rW   rº   r»   ÚstartAngÚextentÚ
fromcenterÚcxÚcyr  r  r  ÚstartAngleRadiansÚextentRadiansÚendAngleRadiansÚcodelineAppendedÚstartxÚstartys   &&&&&&&&           r#   r  ÚPSCanvas.drawArcŠ  s’  € ð •%˜•˜r�u c�kˆBØ•%˜•˜r�u c�kˆBà×#Ñ# B¨B°HÓEˆä ŸG™G HÕ,¨UÕ2ÐÜŸ™ � uÕ,ˆØ+Õ;ˆàÐð �?‰?˜dÔ"Ø�M‰M˜$Ÿ/™/Ô*Ø×Ñ˜XÔ&Ø ÐØ× Ñ  $Ô&¨×(8Ñ(8¸Ô(AØ�K‰K˜ÔØ×Ñ˜XÔ&Ø× Ñ  $Ô&¨×(8Ñ(8¸Ô(Dð ×Ñ Ô$à�M‰M˜$×+Ñ+Ô,Ø "¤d§h¢hÐ/@Ó&AÕ#AÕ AÀ2ÌÏÊÐRcÓIdÕFdÕCd�VˆVß#Ø× Ñ  Ô*ßà—‘˜BÔ"Ø—‘˜F FÔ+Ø× Ñ  Ô-Ø×Ñ˜XÖ&ñ %r%   c                óâ   € \        W1,
          R,          4      p\        WB,
          R,          4      pW,           R,          W$,           R,          r©RpV^ 8¼  d   RpMRpWšWxWUV,           V3pW½,          # )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 setmatrixÚarcÚarcn)Úabs)rF   rV   rW   rº   r»   r-  r.  ÚxScaleÚyScalerÄ   rÅ   r  r:  r  s   &&&&&&&       r#   r'  ÚPSCanvas._genArcCodeµ  sg   € ô �b•e˜S•[Ó!ˆÜ�b•e˜S•[Ó!ˆà•�s�{˜R�U C�Kˆ1à^ˆà�QŒ;Ø‰CàˆCØ�V X¸­ÀÐDˆà�Ðr%   c                ó,  € \        V4      ^8¼  g   Q R4       hV^ ,          pVR,          p. pVP                  pV! R\        V4      ,          4       V F  pV! R\        V4      ,          4       K  	  V'       d	   V! R4       V P                  WcVR7       R# )rÐ   z"Polygon must have 2 or more pointsºrQ   NNú%s mú%s lr  )rÉ   rÈ   N)r   r   r   r  )	rF   Úpr  rÉ   rÈ   ÚstartÚpolyr  Úpoints	   &&&&&    r#   r  ÚPSCanvas.polygonÇ  s�   € Ü�1‹v˜Œ{Ð@Ð@Ó@ˆ{à�!•ˆØˆb�EˆàˆØ�K‰KˆÙ	ˆ&”6˜%“=Õ
 Ô!ÛˆEÙˆf”v˜e“}Õ$Ö%ñ çÙˆkŒNà×Ñ˜D°DÐÖ9r%   c           	     óì   € V P                   R 8w  dc   V P                  V P                   4       RpV F=  pV P                  V\        V^ ,          4      \        V^,          4      3,          4       K?  	  R # R # )Nz%s m %s l stroke)r6   Ú	_setColorr4   r   )rF   ÚlineListr¢   r-   r  r¼   s   &&&&  r#   ÚlinesÚPSCanvas.lines×  s^   € Ø×Ñ Ô$Ø�N‰N˜4×,Ñ,Ô-Ø)ˆHÛ �Ø× Ñ  ¬V°D¸µG«_¼VÀDÈÅG»_Ð,MÕ!MÖNó !ñ %r%   c                óH   € V P                  R \        W4      ,          4       R# )rB  N©r4   r   ©rF   rÄ   rÅ   s   &&&r#   ÚmoveToÚPSCanvas.moveToÞ  ó   € Ø×Ñ˜¤&¨£,Õ.Ö/r%   c                óH   € V P                  R \        W4      ,          4       R# )rC  NrO  rP  s   &&&r#   r*  ÚPSCanvas.lineToá  rS  r%   c                óL   € V P                  R \        WW4WV4      ,          4       R# )z%s cNrO  )rF   rV   rW   rº   r»   r   r  s   &&&&&&&r#   ÚcurveToÚPSCanvas.curveToä  s   € Ø×Ñ˜¤&¨¨r°RÓ";Õ;Ö<r%   c                ó(   € V P                  R 4       R# )r  Nr\   r]   s   &r#   Ú	closePathÚPSCanvas.closePathç  s   € Ø×Ñ˜Ö%r%   c                ón  € \        V4      ^8¼  g   Q R4       hV P                  R8w  d�   V P                  V P                  4       V P                  V^ ,          ^ ,          V^ ,          ^,          4       VR,           F#  pV P	                  V^ ,          V^,          4       K%  	  V P                  R4       R# R# )rQ   z#Polyline must have 1 or more pointsNrA  rÉ   )r   r6   r    rQ  r*  r4   )rF   rD  rà   s   && r#   ÚpolyLineÚPSCanvas.polyLineê  s�   € Ü�1‹v˜Œ{ÐAÐAÓAˆ{Ø×Ñ Ô$Ø�M‰M˜$×+Ñ+Ô,Ø�K‰K˜˜!�˜Q�  1¥ a¥Ô)Ø�r—U�U�Ø—‘˜A˜a�D ! A¥$Ö'ñ à×Ñ˜XÖ&ñ %r%   c                ó  € . pVP                   p^pV EFN  pV^ ,          p\        VR,          4      pV\        8X  dk   V'       d#   ^ pV! R\        VR,          4      ,          4       MV! R\        VR,          4      ,          4       V! R\        VR,          4      ,          4       K”  V\        8X  d+   ^ pVR,          w  ršr¼rÞV! V P                  WšW¼WÞ4      4       KÉ  V\        8X  dl   V'       d#   ^ pV! R\        VR,          4      ,          4       MV! R\        VR,          4      ,          4       V! R\        VR,          4      ,          4       EK?  \        RV,           4      h	  V'       d	   V! R	4       V P                  V4       R
# )rQ   rA  rB  :NrÐ   NrC  :rÐ   NN:Nrë   Nz
%s curvetozunknown figure operator: r  N)	r   r•   Ú
figureLiner   Ú	figureArcr'  ÚfigureCurveÚ	TypeErrorr  )rF   ÚpartListr  Ú
figureCoder  ÚfirstÚpartrË   rÖ   rV   rW   rº   r»   Ú
startAngler.  s   &&&            r#   Ú
drawFigureÚPSCanvas.drawFigureó  s9  € Øˆ
Ø×ÑˆØˆäˆDØ�a•ˆBÜ˜˜R�“>ˆDà”ZÔßØ�EÙ�fœv d¨2¥hÓ/Õ/Õ0á�fœv d¨2¥hÓ/Õ/Ô0Ù�&œ6 $ r¥(Ó+Õ+Ö,à”y”Ø�Ø04°RµÑ-��b˜JÙ�$×"Ñ" 2¨¨zÓAÖBà”{Ô"ßØ�EÙ�fœv d¨2¥hÓ/Õ/Õ0á�fœv d¨2¥hÓ/Õ/Ô0Ù�,¤¨¨R­Ó!1Õ1×2äÐ ;¸BÕ >Ó?Ð?ñ3 ÷6 ÙˆkŒNØ×Ñ˜JÖ'r%   c                ó  € V P                   ;'       d    TpV P                  ;'       d    TpV'       g   V'       g
   V'       EdC   V P                  P                  V4       V'       dŒ   Vf   V P                  pV'       g	   V'       d   V P                  R4       V P                  V P                   4       T P                  V\        8X  d   RMR4       V'       g	   V'       d   V P                  R4       V'       d_   V'       d   V P                  R4       V P                  V P                  4       V P                  R4       V'       d   V P                  R4       V'       d%   V P                  R4       V P                  R4       R # R # R # )Nr|   r&  rÈ   r�   rÉ   Úclipr  )r7   r6   r3   ÚextendrE   r4   r    r   )rF   r3   rl  rÈ   rÉ   ÚfillModes   &&&&&&r#   r  ÚPSCanvas._fillAndStroke  s
  € Ø�‰×'Ð' 4ˆØ×"Ñ"×-Ð- vˆß—6ŸT˜TØ�I‰I×Ñ˜TÔ"ßØÒ#Ø#Ÿ~™~�HßŸT 4×#3Ñ#3°GÔ#<Ø—‘˜dŸo™oÔ.Ø× Ñ ¨X´}Ô-D¡È&ÔQßŸT 4×#3Ñ#3°JÔ#?ßß˜×)Ñ)¨'Ô2Ø—‘˜d×/Ñ/Ô0Ø× Ñ  Ô*ß˜×)Ñ)¨*Ô5ßØ× Ñ  Ô(Ø× Ñ  Ö+ñ ñ "r%   c                óH   € V P                  R \        W4      ,          4       R# )z%s translateNrO  rP  s   &&&r#   Ú	translateÚPSCanvas.translate,  s   € Ø×Ñ˜¬&°«+Õ5Ö6r%   c                óH   € V P                  R \        W4      ,          4       R# )z%s scaleNrO  rP  s   &&&r#   ÚscaleÚPSCanvas.scale/  s   € Ø×Ñ˜¤f¨Q£kÕ1Ö2r%   c                óL   € V P                  R \        WW4WV4      ,          4       R# )z[%s] concatNrO  )rF   r  Úbr"   ÚdrÝ   rw   s   &&&&&&&r#   Ú	transformÚPSCanvas.transform2  s   € Ø×Ñ˜¬°°A¸Ó)<Õ<Ö=r%   c                ó"   € WuV n         V n        R# )z1if this is used we're probably in the wrong worldN)r-   r.   )rF   ÚwÚhs   &&&r#   Ú_drawTimeResizeÚPSCanvas._drawTimeResize5  s   € à"#ÐˆŒ
�D–Kr%   c                ó¶  € ^pVP                  R4      pVP                  w  r‰V'       g   TpV'       g   T	pV P                  P                  RV: RV: R2V: RV: R2RV,          .4       V P                  P                  V: RV	: RV: 2RV: R^ : R^ : RV	) : R^ : RV	: R2R	R
.4       \	        VR4      '       d   VP
                  MVP                  ! 4       p
V P                  V
4      p\        V4      pVP                  ^N4      pVR8w  d%   V P                  V4       VP                  ^N4      pK+  V P                  R4       V P                  R4       R# )é   ÚRGBr|   r�   ú
 translateú scalez/scanline %d 3 mul string defr�   Ú]z2{ currentfile scanline readhexstring pop } false 3zcolorimage Útobytesr   z% end of image datar�   N)ÚconvertrG   r3   rm  rs   r†  ÚtostringÚ_AsciiHexEncoder   Úreadr4   )rF   rU   rV   rW   r-   r.   Úcomponent_depthÚmyimageÚimgwidthÚ	imgheightÚrawimageÚhex_encodedÚ	outstreamÚdatalines   &&&&&&        r#   rR   ÚPSCanvas._drawImageLevel19  s1  € ð ˆØ—-‘- Ó&ˆØ%Ÿl™lÑˆßØˆEßØˆFð& 	�	‰	×ÑØÛ!#£BÐ'Û"£6Ð*Ø+¨hÕ6ð	ô 	ð 	�	‰	×ÑÛ"£IªÑ?Û%-«q³!°i³ZÃÃIÐNØ@Øð	ô 	ô (/¨w°y×'AÒ'A�G—O’OÀw×GWÑGWÐWÓZˆØ×*Ñ*¨8Ó4ˆô ˜[Ó)ˆ	à—>‘> "Ó%ˆØ˜"ŒnØ×Ñ˜XÔ&Ø—n‘n RÓ(ŠHØ×ÑÐ.Ô/Ø×Ñ˜Ö$r%   c                óœ   € \        4       p\        V4       F$  pVP                  R\        V4      ,          4       K&  	  VP	                  4       # )zHelper function used by imagesz%02x)r   r   rk   r   Úgetvalue)rF   ÚinputÚoutputÚchars   &&  r#   r‰  ÚPSCanvas._AsciiHexEncodew  s9   € ä“ˆÜ˜E–NˆDØ�L‰L˜¤(¨4£.Õ0Ö1ñ #à�‰Ó Ð r%   c           	     óð  € VP                   R8X  d   ^p^pTpM<VP                   R8X  d   VP                  R4      p^pTpMVP                  R4      p^p^pVP                  w  ršV'       g   T	pV'       g   T
pV P                  P	                  RV: RV: R2V: RV: R2.4       V^8X  d   V P                  R4       MV^8X  d   V P                  R	4       V P                  R
WšX3,          4       V^8X  d   V P                  R4       V^8X  d   V P                  R4       V P                  P	                  RV	: RV
) : RV
: R2RRR.4       \        VR4      '       d   VP                  MVP                  ! 4       pV P                  V4      p\        V4      pVP                  ^N4      pVR8w  d%   V P                  V4       VP                  ^N4      pK+  V P                  R4       V P                  R4       R# )z"At present we're handling only PILÚLÚ1r‚  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 dictionaryrU   r†  r   z> % end of image datar�   N)Úmoder‡  rG   r3   rm  r4   rs   r†  rˆ  r‰  r   rŠ  )rF   rU   rV   rW   r-   r.   ÚimBitsPerComponentÚimNumComponentsrŒ  ÚimwidthÚimheightr�  r�  r‘  r’  s   &&&&&&         r#   rS   ÚPSCanvas._drawImageLevel2~  sá  € ð �:‰:�sŒ?Ø!"ÐØˆOØ‰GØ�Z‰Z˜3ÔØ—m‘m CÓ(ˆGØˆOØ‰Gà—m‘m EÓ*ˆGØˆOØ!"Ðà#ŸL™LÑˆßØˆEßØˆFØ�	‰	×ÑØÛ!#£BÐ'Û"£6Ð*ð,ô 	-ð
 ˜aÔØ×ÑÐ7Õ8Ø Ô!Ø×ÑÐ8Ô9à×Ñð ð #Ð.@ÐAõ	Bô 	Dð ˜aÔØ×Ñ˜_Ô-Ø˜aÔØ×ÑÐUÔVà�	‰	×Ò»wÈË	ÓS[Ð\ØLØ7Ø#ð%ô 	&ô
 (/¨w°y×'AÒ'A�G—O’OÀw×GWÑGWÐWÓZˆØ×*Ñ*¨8Ó4ˆô ˜[Ó)ˆ	à—>‘> "Ó%ˆØ˜"ŒnØ×Ñ˜XÔ&Ø—n‘n RÓ(ŠHØ×ÑÐ0Ô1Ø×Ñ˜Ö$r%   )rD   r=   r7   rE   r9   r}   r:   r>   r;   r<   r8   r5   r6   r1   r/   r3   r4   r2   r.   r-   ))é,  r£  rÐ   )NNrŸ   )r   )r   rå   r   )rç   r   )ræ   r   )rQ   rQ   )r�  r�  )r   r  r   )r   rQ   rQ   )r   rQ   rQ   N)6Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rI   rN   rX   r^   rh   ry   r~   r‚   r   rA   rB   rœ   r@   r    r®   r±   rC   r?   r¼   rÀ   rÌ   râ   rô   rú   rý   r  r  r  r  r#  r  r'  r  rL  rQ  r*  rW  rZ  r]  ri  r  rq  rt  ry  r~  rR   r‰  rS   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r#   r'   r'   Z   s  ø‡ € ô'ò,4ôWò%ò
3ô?ò,"ò3ô.ò0ò
1ð
  aô 	Mòòdòòò8ô
!òTò
<ôIô85ô4-ô<^ôYô
)ô^ô ò8#ò+ô)'òVô$:ô Oò0ò0ò=ò&ò'ô"(ôH,ò*7ò3ò>ò'ô;%ò|!÷:%ò :%r%   r'   )Ú*c                óT   € \        4       pVP                  \        V 4      WW4R7       R# )z
As it says©ÚshowBoundaryN)Ú_PSRendererÚdrawr   )ÚdrawingÚcanvasrÄ   rÅ   r¯  r   s   &&&&& r#   r±  r±  Å  s!   € ä‹€AØ‡F�FÔ˜wÓ'¨°A€FÖQr%   c                ó–   € . pVP                   p\        ^ \        V 4      ^4       F   pV! W,          W^,           ,          34       K"  	  V# )zc
given a list of coordinates [x0, y0, x1, y1....]
produce a list of points [(x0,y0), (y1,y0),....]
)r   Úranger   )r›  ÚPr  rÞ   s   &   r#   Ú_pointsFromListr·  Ê  sB   € ð
 	€AØ	�‰€AÜ�1”S˜“V˜AÖˆÙ	ˆ1�4��A•#•ˆ-Öñ à€Hr%   c                   ó�   a € ] tR tRt o RtR tRRRRRR	R
RRRRRRR/tR tR tR t	R t
R tR tR tR tRR ltR tR tRtV tR# ) r°  iÕ  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                óN  € V P                   P                  RV,          4       V P                   P                  p\        V\        4      '       d   VP
                  '       g   V P                   P                  4        \        V4      pV P                  P                  V4       V P                  V/ 4       V P                  V4       V P                  P                  4       p\        V\        4      '       d   VP
                  '       g   V P                   P                  4        V P                   P                  RV,          4       W P                   n        VP                  4        F?  w  rVWPP                  9   g   K  \!        V P                   V P                  V,          V4       KA  	  R# )z=This is the recursive method called for each node
in the treezbegin node %rzend node %rN)Ú_canvasrN   r=   r‘   ÚPathÚ
isClipPathr~   r   Ú_trackerÚpushÚapplyStateChangesÚdrawNodeDispatcherr0   r‚   ÚitemsÚ	_restoresÚsetattr)rF   Únoder¢   ÚdeltasÚrDeltasÚkr‰   s   &&     r#   ÚdrawNodeÚ_PSRenderer.drawNodeÚ  s  € ð 	�‰×Ñ˜_¨TÕ1Ô2Ø—‘×#Ñ#ˆÜ˜4¤×&Ò&¨4¯?¯?¨?Ø�L‰L×"Ñ"Ô$ô ˜tÓ$ˆØ�‰×Ñ˜6Ô"Ø×Ñ˜v rÔ*ð 	×Ñ Ô%à—-‘-×#Ñ#Ó%ˆÜ˜4¤×&Ò&¨4¯?¯?¨?Ø�L‰L×%Ñ%Ô'Ø�‰×Ñ˜]¨4Õ/Ô0Ø#�‰Ôð —M‘M–O‰DˆAØ—N‘NÖ"Ü˜Ÿ™ T§^¡^°AÕ%6°qÖ9ó $r%   r,   r6   ÚstrokeWidthr8   ÚstrokeLineCapr;   ÚstrokeLineJoinr<   Ú	fillColorr7   r*   r9   r+   r:   c                ó"  € VP                   VP                  u;8X  d   ^ 8X  dn   M MjV P                  P                  VP                  VP
                  VP                  VP                  ,           VP
                  VP                  ,           4       R# V P                  P                  VP                  VP
                  VP                  VP                  ,           VP
                  VP                  ,           VP                   VP                  4       R# )r   N)	r  r  rº  r  rÄ   rÅ   r-   r.   r  )rF   r  s   &&r#   ÚdrawRectÚ_PSRenderer.drawRectü  s¡   € Ø�7‰7�d—g‘gÖ" ×"à�L‰L×ÑØ—F‘F˜DŸF™FØ—F‘F˜4Ÿ:™:Õ% t§v¡v¨d¯k©kÕ'9ö;ð �L‰L×"Ñ"Ø—F‘F˜DŸF™FØ—F‘F˜4Ÿ:™:Õ% t§v¡v¨d¯k©kÕ'9¸4¿7¹7ÀDÇGÁGör%   c                óÎ   € V P                   P                  '       dI   V P                   P                  VP                  VP                  VP
                  VP                  4       R # R # rŸ   )rº  r6   r¼   rV   rW   rº   r»   )rF   r¼   s   &&r#   ÚdrawLineÚ_PSRenderer.drawLine
  s?   € Ø�<‰<×$×$Ð$Ø�L‰L×Ñ˜dŸg™g t§w¡w°·±¸¿¹ÖAñ %r%   c                ó|   € V P                   P                  VP                  VP                  VP                  4       R # rŸ   )rº  r#  r0  r1  r"  )rF   r#  s   &&r#   Ú
drawCircleÚ_PSRenderer.drawCircle  s$   € Ø�‰×Ñ˜VŸY™Y¨¯	©	°6·8±8Ö<r%   c           
     ó  € VP                  4       w  r#pV^ 8X  g   Vf�   V^ 8X  g   Vf’   VP                  '       g€   VP                  pVP                  pVP                  pVP
                  pVP                  p	We,
          p
V P                  P                  Wy,
          W‚,
          Wy,           W‚,           WZ^R7       R# VP                  4       p\        V\        4      '       d   V P                  V4       R# V P                  V4       R# )r   N)r/  )Ú
_xtraRadiiÚannularÚstartangledegreesÚendangledegreesÚcenterxÚcenteryÚradiusrº  r  Ú	asPolygonr‘   r»  ÚdrawPathÚdrawPolygon)rF   ÚwedgeÚyradiusÚradius1Úyradius1rÚ  rÛ  rÜ  rÝ  rÞ  r.  r¶  s   &&          r#   Ú	drawWedgeÚ_PSRenderer.drawWedge  sÔ   € Ø%*×%5Ñ%5Ó%7Ñ"ˆ˜(Ø�QŒJ˜'š/°¸!´¸xÒ?OÐY^×Yf×YfÐYfØ %× 7Ñ 7ÐØ#×3Ñ3ˆOØ—]‘]ˆGØ—m‘mˆGØ—\‘\ˆFØ$Õ8ˆFØ�L‰L× Ñ  ¥°µÀ'Å.ÐRYÕRaØ!°að !ö 9ð —‘Ó!ˆAÜ˜!œD×!Ò!Ø—‘˜aÖ à× Ñ  Ö#r%   c                óž   € V P                   P                  '       d1   V P                   P                  \        VP                  4      4       R # R # rŸ   )rº  r6   r]  r·  Úpoints©rF   rD  s   &&r#   ÚdrawPolyLineÚ_PSRenderer.drawPolyLine#  s2   € Ø�<‰<×$×$Ð$Ø�L‰L×!Ñ!¤/°!·(±(Ó";Ö<ñ %r%   c                ó&  € VP                   VP                  ,
          pVP                   VP                  ,           pVP                  VP                  ,
          pVP                  VP                  ,           pV P                  P                  W$W54       R # rŸ   )r0  r  r1  r  rº  r  )rF   r  rV   rº   rW   r»   s   &&    r#   ÚdrawEllipseÚ_PSRenderer.drawEllipse'  s^   € à�Z‰Z˜'Ÿ*™*Õ$ˆØ�Z‰Z˜'Ÿ*™*Õ$ˆØ�Z‰Z˜'Ÿ*™*Õ$ˆØ�Z‰Z˜'Ÿ*™*Õ$ˆØ�‰×Ñ˜R 2Ö)r%   c                óf   € V P                   P                  \        VP                  4      ^R7       R# )rQ   )r  N)rº  r  r·  ré  rê  s   &&r#   rá  Ú_PSRenderer.drawPolygon/  s"   € Ø�‰×Ñœ_¨Q¯X©XÓ6¸qÐÖAr%   c           
     ó>  € \        VR ^ 4      pV P                  P                  '       g	   V'       dì   V P                  P	                  4       pVR,          VP
                  VP                  VP                  3w  rErgVR9   g~   VR,          VR,          r˜\        WxV	4      p
VR8X  d
   WZ,          pMPVR8X  d   WZ^,          ,          pM9VR8X  d   V\        WGW¨V	RR7      ,          pM\        R	\        V4      ,           4      hV P                  P                  WVWrR
7       R# R# )rÆ   Ú
textAnchorr*   r+   ræ   rç   ré   Úwinansi)Úencodingzbad value for text_anchor rê   N)rE  Ú	inherited)Úgetattrrº  r7   r½  ÚgetStaterÄ   rÅ   rù   r   rí   rT   r—   rô   )rF   Ú	stringObjrÆ   ÚSrï   rÄ   rÅ   rù   r…   r+   rò   s   &&         r#   rô   Ú_PSRenderer.drawString2  sî   € Ü  Ð+;¸AÓ>ˆØ�<‰<×"×"Ð"§nØ—‘×&Ñ&Ó(ˆAØ&'¨¥o°y·{±{À9Ç;Á;ÈyÏ~É~Ð&]Ñ#ˆK˜AØÐ"7Ô7Ø!" :¥°°*µ�hÜ% d°Ó:�Ø Ô%Ø•L‘AØ  (Ô*Ø �•N‘AØ  )Ô+Øœ {¸ÀXÐW`ÔaÕa‘Aä$Ð%AÄ#ÀkÓBRÕ%RÓSÐSØ�L‰L×#Ñ# A¨Ð#ÖLñ '5r%   Nc                ó¸  aaaaa€ ^ RI Ho V P                  oSP                  SP                  SP
                  SP                  3o\        SRR4      pVVV3R lpSf   \        SRSP                  4      oSP                  RJpSP                  RJpSP                  pVV3R lpVV3R lp	V3R	 lp
VR
8X  d   V! 4        V! WeVR7       R# VR8X  dD   V'       d   V! RR7       V! WeVR7       R# V'       g	   V'       d   V! 4        V! V^ VR7       R# R# V'       d   V! RR7      '       d
   V! 4        R# V'       g	   V'       d   V! 4        V! V^ VR7       R# R# )r   )Ú_renderPathÚ	autocloser   c                  ó   <€ S! SS3/ V B # rŸ   © )Úkwdsrý  Ú	drawFuncsÚpaths   ,€€€r#   ÚrPÚ _PSRenderer.drawPath.<locals>.rPI  s   ø€ Ù˜t YÑ7°$Ñ7Ð7r%   Nrn  c                  ó.   <€ SP                   ! . 3R S/V B # )rn  ©r  )r  r"   rn  s   ,€€r#   Ú<lambda>Ú&_PSRenderer.drawPath.<locals>.<lambda>P  s   ø€ ˜Q×-Ò-¨bÑL¸8ÐLÀtÒLr%   c                  ó,   <€ S P                  . ^ SR7      # )r   )rÉ   rn  r  )r"   rn  s   €€r#   r  r	  Q  s   ø€ ˜A×,Ñ,¨R¸ÀHÐ,ÔMr%   c                  ó*   <€ S P                  . ^ R7      # )r   )rÈ   r  )r"   s   €r#   r  r	  R  s   ø€ ˜a×.Ñ.¨r¸Ð.Ô:r%   Úsvg)rÉ   rÈ   rl  ÚpdfT)Ú
forceClose)Ú	countOnly)Úreportlab.graphics.shapesrý  rº  rQ  r*  rW  rZ  r÷  rE   r7   r6   r¼  )rF   r  rn  rþ  r  rÈ   rÉ   rl  ÚfasÚpathFillÚ
pathStrokerý  r"   r  s   &ff        @@@r#   rà  Ú_PSRenderer.drawPathD  s
  ü€ Ý9Ø�L‰LˆØ—X‘X˜qŸx™x¨¯©°A·K±KÐ@ˆ	Ü˜D ¨RÓ0ˆ	÷	8àÒÜ˜t J¨q¯{©{Ó;ˆHØ�|‰| 4Ð'ˆØ—‘ tÐ+ˆØ�‰ˆÝLˆÝMˆÜ:ˆ
Ø�eÔÙŒDÙ�v¨T×2Ø˜ÔßÙ˜dÕ#Ù˜6°×6ßŸ4Ù”Ù˜6 q¨d×3ñ  ÷ ™ T×*Ó*Ù–ßŸ4Ù”Ù˜6 q¨d×3ñ  r%   c           
     óŠ  € VP                  4        EF-  w  r4VR8X  dM   V P                  P                  V^ ,          V^,          V^,          V^,          V^,          V^,          4       KY  VR8X  d   V P                  P                  V4       K}  VR8X  d   V P                  P	                  V4       K¡  VR8X  d   V P                  P                  V4       KÅ  VR8X  d   V P                  P                  V4       Ké  VR8X  d¨   V'       dƒ   \        V\        \        34      '       dG   \        V4      ^8X  d7   \        V^,          \        \        34      '       d   V^ ,          pV^,          pM^ pV P                  P                  WE4       EKz  V P                  P                  4        EK—  VR8X  d   V P                  P                  V4       EK¼  VR9   g   EKÆ  VP                  R	V P                  P                  4      pVP                  RV P                  P                  4      pV P                  P!                  Wg4       EK0  	  R
# )zTThis takes a set of states, and outputs the operators
needed to set those propertiesry  r,   rÊ  rË  rÌ  ÚstrokeDashArrayrÍ  r+   r*   N)r+   r*   )rÁ  rº  ry  r@   rC   rA   rB   r‘   r•   r”   r   rœ   r®   Úgetr9   r:   r?   )rF   ÚdeltaÚnewStateÚkeyÚvaluer™   ÚfontnameÚfontsizes   &&&     r#   r¿  Ú_PSRenderer.applyStateChangesd  s¬  € ð  Ÿ+™+Ÿ-‰JˆCØ�kÔ!Ø—‘×&Ñ& u¨Q¥x°°qµ¸5À½8Ø!& q¥¨5°­8°U¸1µXö?à˜Ô%ð —‘×+Ñ+¨EÖ2Ø˜Ô%Ø—‘×)Ñ)¨%Ö0Ø˜Ô'Ø—‘×'Ñ'¨Ö.ØÐ(Ô(Ø—‘×(Ñ(¨Ö/ØÐ)Ô)ßÜ! %¬¬e¨×5Ò5¼#¸e»*Àa¼-ÌJÐW\Ð]^ÕW_ÔafÔgkÐ`l×LmÒLmØ % a¥˜Ø % a¥™à !˜Ø—L‘L×(Ñ(¨×5à—L‘L×(Ñ(×*ð ˜Ô#ð —‘×)Ñ)¨%×0ð
 Ð0×0ð !Ÿ9™9 Z°·±×1CÑ1CÓD�Ø Ÿ9™9 Z°·±×1GÑ1GÓH�Ø—‘×$Ñ$ X×8óU (r%   c                óØ   € ^ RI Hp V! VP                  4      pV P                  P	                  VP
                  VP                  VP                  VP                  VP                  4       R# )r   )ÚImageReaderN)
rv   r   r  rº  rX   Ú_imagerÄ   rÅ   r-   r.   )rF   rU   r   Úims   &&  r#   rX   Ú_PSRenderer.drawImage“  sA   € Ý3Ù˜Ÿ™Ó$ˆØ�‰×Ñ˜rŸy™y¨¯©°·±¸¿¹ÀUÇ\Á\ÖRr%   r   rŸ   )r¤  r¥  r¦  r§  Ú__doc__rÈ  rÂ  rÏ  rÒ  rÕ  ræ  rë  rî  rá  rô   rà  r¿  rX   r¨  r©  rª  s   @r#   r°  r°  Õ  s|   ø‡ € ñ:ò:ð< ˜~¨m¸\È/ÐZdØ  ¨[¸ÀjÐQXØ˜;ð(€IòòBò=ò$ò$=ò*òBòMô$4ò@-9÷^Sð Sr%   r°  c                 óž   € \        V 4      p \        V P                  V P                  34      p\	        W^ ^ VR7       VP                  V4       R# )r   r®  N)r   r'   r-   r.   r±  ry   )rx  Úfnr¯  Úkwdr"   s   &&&, r#   Ú
drawToFiler(  ˜  s<   € Ü˜AÓ€AÜ�!—'‘'˜!Ÿ(™(Ð#Ó$€AÜˆˆq�! ,Õ/Ø‡F�Fˆ2†Jr%   c                óP   € \        4       p\        WVR7       VP                  4       # )z=Returns a PS as a string in memory, without touching the diskr®  )r   r(  r•  )rx  r¯  r   s   && r#   ÚdrawToStringr*  ž  s   € ä‹	€AÜˆq ,Õ/Ø�:‰:‹<Ðr%   Úepsoutc                 ó–  € ^ RI Hp ^ RIHp VP                  R,          p. ROVP                  R&    ^ RIpVP                  P                  V 4      '       g   VP                  V 4       . p\        V4       FD  pVR,          R8X  g   K  \        W'4      pV! 4       p	\        VRR4      p
VP                  Wš34       KF  	  ^ pV Fc  w  rÊWP                  ,           R	V,          ,           p\        WÍ4       V'       g   V^8”  d   \        R
\        V4      ,          4       V^,          pKe  	  WBP                  R&   R#   YBP                  R&   i ; i)r   )Ú
testshapes)Úverbose:NNNN:r   é
   NÚ
getDrawingr$  r   zrenderPS_%d.epszrenderPS test saved %s)zTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicÚCourier)Úreportlab.graphicsr-  Úreportlab.rl_configr.  Ú_FONTSÚosr  ÚisdirÚmkdirÚdirr÷  r   Úsepr(  Úprintr¿   )ÚoutDirÚshoutr-  r.  ÚOLDFONTSr5  ÚdrawingsÚfuncnameÚfuncr²  Ú	docstringrÞ   rx  Úfilenames   &&            r#   ÚtestrC  ª  s  € Ý-Ý+Ø× Ñ  Õ#€HÚd€J×Ñ�aÑð(Ûà�w‰w�}‰}˜V×$Ò$Ø�H‰H�VÔàˆä˜JžˆHØ˜�~ Ö-Ü˜zÓ3�Ù›&�Ü# D¨°2Ó6�	Ø—‘ Ð 4Ö5ñ (ð ˆÛ&‰NˆQØ§¡•Ð):¸1Õ)<Õ<ˆHÜ�qÔ"ß˜ œ	¤5Ð)AÄEÈ(ÃOÕ)SÔ#TØ��FŠAñ	 'ð  (×Ñ˜!Óø˜x×Ñ˜!Òús   ²AD8 ÂB D8 Ä8EÚ__main__T)r<  )r+  F)0Ú__version__r$  r(  Úior   r   Úreportlab.pdfbase.pdfmetricsr   r   r   rv   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$   re   r'   r¯  r±  r·  r°  r(  r*  rC  r¤  Úsysr   ÚargvÚoutdirr   r%   r#   Ú<module>rQ     sR  ðð €Ø2€ã ß  ß IÑ Iß PÕ PÝ )ß VÑ VÝ 4Ý Ý 1à€Ù	ˆsŽ€AØˆ„tˆq�#ŒvØ  1�ˆ�A‹Ø	
‰s�4‹y™˜S›¡# c£(Ð+Ô	+Ø™c !›f�ˆ�A‹á˜Q›ˆ�A‹ñ 
ð òð -Ð ÷^^	%ñ ^	%ðB1ô (ð  °×1GÑ1Gô Rò
	ôAS�(ô ASðF #,×"8Ñ"8ô ð "+×!7Ñ!7ô ô(ð: ˆZÔÛÙ
ˆ3�8‰8ƒ}�Q„Ø—‘˜!•‰àˆÙˆ�d×ñ r%   