§
    £”j]  ã                   óì  — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ ddlT ddlmZmZ ddlmZmZmZmZm Z m!Z! dd	l"m#Z#m$Z$ dd
lm%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/  e0e-e.e/¬¦  «        Z1ddl2m3Z4 ddddddddddœ	ddddddddddœ	dœZ5	 ddl6m7Z7 n# e8$ r dZ7Y nw xY wdddddddddd œ	Z9 G d!„ d"e#¦  «        Z: G d#„ d$¦  «        Z; e
d%d&d'd(¦  «        Z< G d)„ d*e$¦  «        Z= e ee=¦  «        ¦  «        Z> G d+„ d,e:¦  «        Z? G d-„ d.e?¦  «        Z@ G d/„ d0e@¦  «        ZA e eeA¦  «        ¦  «        ZBdd1lCmDZD  G d2„ d3eD¦  «        ZE G d4„ d5e:¦  «        ZFdS )6z3.3.0é    )Úcolors)ÚsimpleSplit)ÚnormalizeTRBL)ÚisNumberÚisNumberOrNoneÚOneOfÚisColorOrNoneÚisStringÚisTextAnchorÚisBoxAnchorÚ	isBooleanÚNoneOrÚisInstanceOfÚisNoneOrStringÚisNoneOrCallableÚisSubclassOfÚEitherOrÚisListOfNumbers)Ú*)ÚstringWidthÚgetAscentDescent)ÚDrawingÚGroupÚCircleÚRectÚStringÚSTATE_DEFAULTS)ÚWidgetÚ
PropHolder)Ú
DirectDraw)ÚXPreformattedÚFlowable)ÚParagraphStyleÚPropertySet)ÚTA_LEFTÚTA_RIGHTÚ	TA_CENTER)ÚstartÚendÚmiddleé   )Ú	text2PathÚnÚneÚeÚseÚsÚswÚwÚnw)	r   é-   éZ   é‡   é´   éá   i  i;  éÓÿÿÿ©ÚxÚy)ÚDirectDrawFlowableNr(   r)   r*   )	r3   r4   r2   r/   r.   r0   r-   r1   Úcc                   ó  — e Zd ZdZ edZi d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed	¬¦  «        “d
 eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d e e	dddd¦  «        d¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d  eed!¬¦  «        “d" eed#¬¦  «        “d$ ee
d%¬¦  «        “d& ee
d'¬¦  «        “d( eed)¬¦  «        “d* eed¬¦  «        “d+ eed,¬¦  «        “d- eed.¬¦  «        “d/ eed0¬¦  «        “d1 eed2¬¦  «        “d3 eed4¬¦  «        “d5 eed6¬¦  «        “d7 eed8¬¦  «        “d9 eed:¬¦  «        “d; eed<¬¦  «        “d= e eeef¦  «        d>¦  «        “d? eed@¬¦  «        “dA eedBdC¬D¦  «        “dE e e ee¦  «        dF¦  «        dGdC¬D¦  «        “dH e e ee¦  «        dF¦  «        dIdC¬D¦  «        “dJ e e ee¦  «         ee¦  «        f¦  «        dKdC¬D¦  «        “ŽZdL„ ZedM„ ¦   «         Zej        dN„ ¦   «         ZdO„ ZdP„ ZdQ„ ZdR„ ZdS„ Z dT„ Z!dU„ Z"dV„ Z#dW„ Z$dX„ Z%dYS )[ÚLabelzïA text label to attach to something else, such as a chart axis.

    This allows you to specify an offset, angle and many anchor
    properties relative to the label's origin.  It allows, for example,
    angled multiline axis labels.
    r<   Ú ©Údescr=   Údxzdelta x - offsetÚdyzdelta y - offsetÚanglezDangle of label: default (0), 90 is vertical, 180 is upside down, etcÚ	boxAnchorzanchoring point of the labelÚboxStrokeColorzborder color of the boxÚboxStrokeWidthzborder widthÚboxFillColorzthe filling color of the boxÚ	boxTargetÚnormalÚantiÚloÚhiz"one of ('normal','anti','lo','hi')ÚboxRxzbox corner x radiusÚboxRyzbox corner y radiusÚ	fillColorzlabel text colorÚstrokeColorzlabel text border colorÚstrokeWidthzlabel text border widthÚtextzthe actual text to displayÚfontNamezthe name of the font usedÚfontSizezthe size of the fontÚleadingÚwidthzthe width of the labelÚmaxWidthz#maximum width the label can grow toÚheightzthe height of the textÚ
textAnchorz0the anchoring point of the text inside the labelÚvisibleú True if the label is to be drawnÚ
topPaddingzpadding at top of boxÚleftPaddingzpadding at left of boxÚrightPaddingzpadding at right of boxÚbottomPaddingzpadding at bottom of boxÚpaddingzTRBL css like paddingÚuseAscentDescentz^If True then the font's Ascent & Descent will be used to compute default heights and baseline.ÚcustomDrawChangerzDAn instance of CustomDrawChanger to modify the behavior at draw timeé   )rD   Ú_advancedUsageÚddfÚNoneOrDirectDrawzA DirectDrawFlowable instanceÚddfKlassz=A Flowable class for direct drawing (default is XPreformattedÚddfStylez-A style or style class for a ddfKlass or Nonec           
      ó’  —  | j         d*i |¤Ž  | j         d*i dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd “dd“dd“dd“dd “dd “dd “dd “dd “dd “dt          d         “dt          d         “dt          d         “dd “d!d"“d#d$“d%d&“d't          “d(t          | j        d(d ¦  «        “d)t          | j        d)d ¦  «        “Ž d S )+NÚ_textzMulti-Line
StringrH   r?   rG   r   r<   r=   rE   rF   r`   ra   rb   rc   rJ   ç      à?rI   rL   rM   rQ   rR   rT   rK   rY   rZ   r[   r\   rS   rW   rX   rU   gš™™™™™¹?r]   r(   r^   rg   re   Fri   rk   rl   © )Ú_setKeywordsr   r>   ÚgetattrÚ	__class__)ÚselfÚkws     ús/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/charts/textlabels.pyÚ__init__zLabel.__init__Q   sñ  € ØˆÔÐÐ˜BÐÐÐØˆÔð !	ð !	ð !	Ø,Ð,ð!	à˜Cð!	ð ˜ð!	ð �Að	!	ð
 �Að!	ð �Qð!	ð �Qð!	ð ˜Qð!	ð  ˜að!	ð  !˜qð!	ð !" ð!	ð "% ð!	ð "& ð!	ð %˜Hð!	ð ˜ð!	ð  ˜ð!!	ð" #˜dð#!	ð$  $˜tð%!	ð& ˜$ð'!	ð( ˜ð)!	ð*  ˜4ð+!	ð, ˜ð-!	õ. +¨;Ô7Ð7ð/!	õ0 *¨*Ô5Ð5ð1!	õ2 *¨*Ô5Ð5ð3!	ð4 "˜cð5!	ð6 %˜Wð7!	ð8 ˜!ð9!	ð: $) 5ð;!	õ< )Ð(ð=!	õ> # 4¤>°*¸TÑBÔBÐBð?!	õ@ # 4¤>°*¸TÑBÔBÐBðA!	ð !	ð !	ð !	ó    c                 ó:  — | j         | j        | j        | j        f}t	          t          |¦  «        ¦  «        }|dk    r|d         S |dk    r.|d         |d         k    r|d         |d         k    r
|d d…         S |dk    r|d         |d         k    r
|d d…         S |S )Nrg   r   r+   é   )r`   rb   rc   ra   ÚlenÚset)rt   Úpr-   s      rv   rd   zLabel.paddingv   sœ   € àŒO˜TÔ.°Ô0BÀDÔDTÐTˆÝ•�A‘”‰KŒKˆØˆaŠ4ˆ4˜˜!œ�Ø�ŠTˆT�a˜”d˜A˜aœD’j�j Q q¤T¨1¨Q¬4¢Z Z¸¸"¸1¸"¼°Ø�ŠTˆT�a˜”d˜A˜aœD’j�j¨¨2¨A¨2¬ ,Øˆrx   c                 óV   — t          |¦  «        \  | _        | _        | _        | _        d S ©N)r   r`   rb   rc   ra   )rt   r}   s     rv   rd   zLabel.padding   s*   € åS`ÐabÑScÔScÑPˆŒ˜Ô*¨DÔ,>ÀÔ@PÐ@PÐ@Prx   c                 ó   — || _         dS )zpSet the text property.  May contain embedded newline characters.
        Called by the containing chart or axis.N)rn   )rt   rV   s     rv   ÚsetTextzLabel.setTextƒ   s   € ð ˆŒ
ˆ
ˆ
rx   c                 ó"   — || _         || _        dS )z‰Set the origin.  This would be the tick mark or bar top relative to
        which it is defined.  Called by the containing chart or axis.Nr;   )rt   r<   r=   s      rv   Ú	setOriginzLabel.setOrigin‰   s   € ð ˆŒØˆŒˆˆrx   c                 ó|  — t          dd¦  «        }|                     t          dddt          j        ¬¦  «        ¦  «         t          ¦   «         }|                     dd¦  «         d|_        d|_        d|_	        d	|_
        t          j        |_        |                     d
¦  «         |                     |¦  «         |S )zyThis shows a label positioned with its top right corner
        at the top centre of the drawing, and rotated 45 degrees.éÈ   éd   r6   é   )rS   r.   r5   r   iìÿÿÿzAnother
Multi-Line
String)r   Úaddr   r   ÚgreenrA   rƒ   rH   rG   rE   rF   rI   r�   )rt   ÚdÚlabs      rv   Údemoz
Label.demo�   s¤   € õ �C˜ÑÔˆð 	
�Š�f�S˜˜Q­&¬,Ð7Ñ7Ô7Ñ8Ô8Ð8å‰gŒgˆØ�Š�c˜"ÑÔÐØˆŒØˆŒ	ØˆŒØˆŒÝ#œ\ˆÔØ�ŠÐ1Ñ2Ô2Ð2Ø	�Šˆc‰
Œ
ˆ
àˆrx   c                 óì   — | j         }|dv rh| j        }t          |dz  dz  ¦  «        dz  dz  }|dz  s(||z
  dz  }t          |¦  «        dk    r||dk    rdpdz   }t          |d	                  |         }|S )
z,hook for allowing special box anchor effects)ÚautoxÚautoyih  g     €F@r5   r6   r‡   r   r:   éÿÿÿÿ)rH   rG   ÚintÚabsÚ_A2BA)rt   ÚbarG   ÚnaÚdas        rv   Ú_getBoxAnchorzLabel._getBoxAnchor¥   s’   € àŒ^ˆØÐ#Ð#Ð#Ø”JˆEÝ�u˜S‘y #‘oÑ&Ô& rÑ)¨3Ñ.ˆBØ˜‘Gð 3Ø˜b‘j CÑ'�Ý�r‘7”7˜1’9�9Ø˜r !št˜{¨Ð1¨cÑ2�BÝ�r˜"”v”˜rÔ"ˆBØˆ	rx   c                 ó¬   — | j         rEt          | j        | j        ¦  «        \  | _        | _        | j        | j        | j        z
  z  | _        d S d| _        d S )Ng«ªªªªªê?)re   r   rW   rX   Ú_ascentÚ_descentÚ_baselineRatio©rt   s    rv   Ú_getBaseLineRatiozLabel._getBaseLineRatio²   sU   € ØÔ ð 	(Ý*:¸4¼=ÈÌÑ*WÔ*WÑ'ˆDŒL˜$œ-Ø"&¤,°´¸T¼]Ñ0JÑ"KˆDÔÐÐà"'ˆDÔÐÐrx   c                 ó  — | j         p|| j        z   | j        z   | _        | j        | j        z
  | j        z
  | _        | j        | j        z
  | j        z
  | _        |  	                    ¦   «         }|dv r| j         | _
        n(|dv r| j        | j        z
  | _
        nd| j        z  | _
        | j
        | j        z
  | _        |dv r| j        | j        z
  | _        n!|dv r| j        | _        n| j         dz  | _        | j        | j        z   | _        d S )N)r-   r.   r4   )r1   r2   r0   ro   )r.   r/   r0   )r4   r3   r2   )r\   r`   rc   Ú_heightÚ_widthra   rb   Ú_ewidthÚ_eheightr—   Ú_topÚ_bottomÚ_leftÚ_right)rt   ÚobjHrH   s      rv   Ú_computeSizeEndzLabel._computeSizeEnd¹   s  € Ø”{ÐS t¨d¬oÑ'=ÀÔ@RÑ'RˆŒØœ DÔ$4Ñ4°TÔ5FÑFˆŒØœ d¤oÑ5°dÔ6HÑHˆŒØ×&Ò&Ñ(Ô(ˆ	Ø˜Ð'Ð'ØœÐ(ˆDŒIˆIØ˜/Ð)Ð)Øœ T¤_Ñ4ˆDŒIˆIà˜DœMÑ)ˆDŒIØ”y 4¤=Ñ0ˆŒà˜Ð'Ð'ØÔ)¨D¬KÑ7ˆDŒJˆJØ˜/Ð)Ð)ØÔ)ˆDŒJˆJàœ,˜ sÑ*ˆDŒJØ”j ¤Ñ-ˆŒˆˆrx   c                 óÜ  ‡ — t          ‰ dd ¦  «        }|�sg ‰ _        t          ‰ j        ‰ j        ‰ j        ‰ j        ¦  «        ‰ _        ‰ j        sV‰ j	        ‰ j
        z   ‰ _        ‰ j        r:ˆ fd„‰ j        D ¦   «         ‰ _        ‰ xj        t          ‰ j        ¦  «        z  c_        n‰ j        ‰ _        ‰                      ¦   «          ‰ j        r‰ j        ‰ _        n+‰ j        r‰ j        ‰ j        z
  ‰ _        n‰ j        dz  ‰ _        ‰ j        t'          ‰ j        ¦  «        z  }�n5‰ j        €t+          d¦  «        ‚t-          d‰ j        ‰ j        ‰ j        ‰ j        ¬¦  «        }‰ j        st5          di |¤Ž}n“t7          ‰ j        t8          ¦  «        r ‰ j        j        di |¤Ž}nft7          ‰ j        t<          ¦  «        r(t?          ‰ j        t8          ¦  «        r ‰ j        di |¤Ž}n$tA          dt=          ‰ j        ¦  «        › �¦  «        ‚|‰ _!        ‰                      ¦   «          ‰ j        rd|_"        ‰ j        ‰ j        z
  |_        n‰ j        r‰ j        n	‰ j        dz  |_        |j        ‰ _        ‰  #                    ¦   «         }‰ j        pd	}|d
k    rEtH          |_%         |‰ j        |¬¦  «        }| &                    |d	¦  «        \  }}‰ j        p|j'        }tP          |         |_%         |‰ j        |¬¦  «        x‰ _)        }| &                    |d	¦  «        \  }}‰ j        s*‰ j	        ‰ j
        z   ‰ _        ‰ xj        |j'        z  c_        n‰ j        ‰ _        ‰  *                    |¦  «         d S )Nrk   c                 óF   •— g | ]}t          |‰j        ‰j        ¦  «        ‘ŒS rp   )r   rW   rX   )Ú.0Úlinert   s     €rv   ú
<listcomp>z%Label.computeSize.<locals>.<listcomp>×   s*   ø€ Ð'nÐ'nÐ'nÐZ^­°D¸¼ÀtÄ}Ñ(UÔ(UÐ'nÐ'nÐ'nrx   ç333333ó?ú[DirectDrawFlowable class is not available you need the rlextra package as well as reportlabúxlabel-generated)ÚnamerW   rX   rS   rT   zddfStyle has invalid type Téÿÿÿr(   ©Ústylerp   )+rr   Ú_lineWidthsr   rn   rW   rX   r[   Ú_linesrZ   ra   rb   r    Úmaxr�   rY   Ú_leadingre   r™   rš   r{   ri   ÚRuntimeErrorÚdictrS   rT   rl   r#   Ú
isinstancer$   ÚcloneÚtypeÚ
issubclassÚ
ValueErrorÚ_styleÚautoLeadingÚ_getTextAnchorr%   Ú	alignmentÚwrapÚ
_width_maxÚ_ta2alÚ_ddfObjr¨   )rt   rk   r§   ÚstyÚtaÚaWÚobjÚ_s   `       rv   ÚcomputeSizezLabel.computeSizeÎ   sw  ø€ å˜4 
¨4Ñ0Ô0ˆØñ >	)Ø!ˆDÔÝ% d¤j°´¸t¼}ÈTÌ]Ñ[Ô[ˆDŒKØ”:ð )Ø"Ô.¨tÔ/@Ñ@�”Ø”;ð 9Ø'nÐ'nÐ'nÐ'nÐbfÔbmÐ'nÑ'nÔ'n�DÔ$Ø�K”K¥3 tÔ'7Ñ#8Ô#8Ñ8�K”Køà"œj�”Ø×"Ò"Ñ$Ô$Ð$ØŒ|ð 2Ø $¤�”�ØÔ&ð 2Ø $¤¨t¬}Ñ <�”�à $¤¨cÑ 1�”Ø”=¥ T¤[Ñ!1Ô!1Ñ1ˆD‰DàŒxÐÝ"ð  $Añ  Bô  Bð  BÝØ+Ø!œ]Ø!œ]Ø"œnØ $Ô 0ðñ ô ˆCð ”=ð UÝ$Ð+Ð+ sÐ+Ð+��Ý˜DœM­+Ñ6Ô6ð UØ)�d”mÔ)Ð0Ð0¨CÐ0Ð0��Ý˜DœM­$Ñ/Ô/ð UµJ¸t¼}Í[Ñ4YÔ4Yð UØ#�d”mÐ*Ð* cÐ*Ð*��å Ð!S½dÀ4Ä=Ñ>QÔ>QÐ!SÐ!SÑTÔTÐTàˆDŒKØ×"Ò"Ñ$Ô$Ð$ØÔ$ð RØ"&�”Ø"œl¨T¬]Ñ:�”�à.2¬lÐQ˜dœl˜lÀÄÈcÑ@Q�”ØœKˆDŒMØ×$Ò$Ñ&Ô&ˆBà”Ð, *ˆBØ�7Š{ˆ{Ý '�”Ø�h˜tœz°Ð4Ñ4Ô4�ØŸ(š( 2 jÑ1Ô1‘��4Ø”]Ð4 c¤n�Ý" 2œJˆCŒMØ!) ¨$¬*¸3Ð!?Ñ!?Ô!?Ð?ˆDŒL˜3Ø—h’h˜r *Ñ-Ô-‰GˆAˆtà”:ð )Ø"Ô.¨tÔ/@Ñ@�”Ø�”˜sœ~Ñ-�”�à"œj�”Ø×Ò˜TÑ"Ô"Ð"Ð"Ð"rx   c                 ó^   — | j         }|dk    rt          |                      ¦   «                  }|S )z/This can be overridden to allow special effectsÚboxauto)r]   Ú_BA2TAr—   )rt   rÉ   s     rv   rÂ   zLabel._getTextAnchor  s,   € àŒ_ˆØˆyŠ=ˆ=�v d×&8Ò&8Ñ&:Ô&:Ô;˜"Øˆ	rx   c                 ó–  — | j         }|pd| _         |                      ¦   «          || _         t          ¦   «         }|                     | j        | j        z   | j        | j        z   ¦  «         |                     | j	        ¦  «         t          | dd ¦  «        }|r| j        }nY| j        | j        | j        z  z
  }|                      ¦   «         }|dk    r| j        }n |dk    r| j        | j        dz  z   }n| j        }| j        s| j        ro| j        rh|                     t-          | j        | j        z
  | j        | j        z
  | j        | j        | j        | j        | j        | j        | j        ¬¦	  «	        ¦  «         |rtt          ¦   «         }|                     || j        | j        z
  ¦  «         |                     |                      | j         ¦  «        ¦  «         |                     |¦  «         nÞ| j!        | j"        | j#        }
}	}| j$        | j%        | j        }}}t          | di ¦  «        }|rN| j&        D ]E}tO          ||||	|
|¦  «        }||_!        ||_$        ||_%        |                     |¦  «         ||z  }ŒFnS| j&        D ]K}tQ          ||||¬¦  «        }||_)        |	|_"        |
|_#        ||_!        |                     |¦  «         ||z  }ŒL|S )	NrB   rk   r(   r*   ro   )rT   rU   rS   ÚrxÚryÚ	_svgAttrs)rÔ   )*rn   rÍ   r   Ú	translater<   rE   r=   rF   ÚrotaterG   rr   r¥   r£   r¸   r›   rÂ   r¡   r¦   rK   rI   rJ   rˆ   r   ra   r¤   rc   r    rŸ   rQ   rR   r¢   ri   rÇ   rS   rW   rX   rT   rU   r¶   Ú
_text2Pathr   r]   )rt   rn   Úgrk   r<   r=   r]   Úg1rS   rW   rX   rT   rU   rY   ÚsvgAttrsr¬   r1   s                    rv   Ú_rawDrawzLabel._rawDraw  sß  € Ø”
ˆØ�[˜bˆŒ
Ø×ÒÑÔÐØˆŒ
Ý‰GŒGˆØ	�Š�D”F˜TœWÑ$ d¤f¨t¬wÑ&6Ñ7Ô7Ð7Ø	�Š�”ÑÔÐå˜4 
¨4Ñ0Ô0ˆØð 
	 Ø”
ˆAˆAà”	˜DœM¨$Ô*=Ñ=Ñ=ˆAØ×,Ò,Ñ.Ô.ˆJØ˜WÒ$Ð$Ø”J��Ø˜xÒ'Ð'Ø”J ¤¨cÑ!1Ñ1��à”K�ð Ôð 
	 Ô!4ð 
	¸Ô9Lð 
	Ø�EŠE•$˜œ
 4Ô#3Ñ3Øœ TÔ%7Ñ7ØœØœØ$(Ô$7Ø$(Ô$7Ø"&Ô"3Øœ:Øœ:ð	ñ 	ô 	ñ 	ô 	ð 	ð ð 	!Ý‘”ˆBØ�LŠL˜˜4œ9 T¤]Ñ2Ñ3Ô3Ð3Ø�FŠF�4—8’8˜DœLÑ)Ô)Ñ*Ô*Ð*Ø�EŠE�"‰IŒIˆIˆIà,0¬N¸D¼MÈ4Ì= �xˆIØ04Ô0@À$ÔBRÐTXÔTa g˜ˆKÝ˜T +¨bÑ1Ô1ˆHØð !Ø œKð !ð !�DÝ" 4¨¨A¨x¸À:ÑNÔN�AØ"+�A”KØ$/�A”MØ$/�A”MØ—E’E˜!‘H”H�HØ˜‘L�A�Að!ð !œKð !ð !�DÝ˜q ! T°XÐ>Ñ>Ô>�AØ#-�A”LØ!)�A”JØ!)�A”JØ"+�A”KØ—E’E˜!‘H”H�HØ˜‘L�A�Aàˆrx   c                 óÌ   — t          | dd ¦  «        }|r> |d| ¦  «         	 |                      ¦   «          |d| ¦  «         S #  |d| ¦  «         w xY w|                      ¦   «         S )Nrf   TF)rr   rÛ   )rt   rf   s     rv   Údrawz
Label.drawY  s~   € Ý# DÐ)<¸TÑBÔBÐØð 	#ØÐ˜d 4Ñ(Ô(Ð(ð.Ø—}’}‘”à!Ð! %¨Ñ-Ô-Ð-Ð-øÐ!Ð! %¨Ñ-Ô-Ð-Ð-øøøà—=’=‘?”?Ð"s   ¡A ÁANrp   )&Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAttrMapÚAttrMapValuer   r   r	   r   r
   r   r   r   r   r   r   r   r   r    r"   r$   r   Ú_attrMaprw   Úpropertyrd   Úsetterr�   rƒ   rŒ   r—   r�   r¨   rÍ   rÂ   rÛ   rÝ   rp   rx   rv   rA   rA   "   sÊ  € € € € € ðð ð ˆwð #
ð #
ð #
ØˆL˜ rÐ*Ñ*Ô*Ð*ð#
àˆL˜ rÐ*Ñ*Ô*Ð*ð#
ð ˆ\˜(Ð(:Ð;Ñ;Ô;Ð;ð#
ð ˆ\˜(Ð(:Ð;Ñ;Ô;Ð;ð	#
ð
 �˜XÐ+qÐrÑrÔrÐrð#
ð !�L Ð2PÐQÑQÔQÐQð#
ð &˜ mÐ9RÐSÑSÔSÐSð#
ð &˜ h°NÐCÑCÔCÐCð#
ð $�| MÐ7UÐVÑVÔVÐVð#
ð !�L   x°°t¸DÑ!AÔ!AÐGkÐlÑlÔlÐlð#
ð �˜XÐ+@ÐAÑAÔAÐAð#
ð �˜XÐ+@ÐAÑAÔAÐAð#
ð !�L Ð4FÐGÑGÔGÐGð#
ð #�l =Ð6OÐPÑPÔPÐPð#
ð #�l 8Ð1JÐKÑKÔKÐKð#
ð  ˆ|˜HÐ*FÐGÑGÔGÐGð!#
ð"  �< Ð.IÐJÑJÔJÐJð##
ð$  �< Ð.DÐEÑEÔEÐEð%#
ð& �,˜~°2Ð6Ñ6Ô6Ð6ð'#
ð( �˜^Ð1IÐJÑJÔJÐJð)#
ð*  �< Ð4YÐZÑZÔZÐZð+#
ð, �˜nÐ2JÐKÑKÔKÐKð-#
ð. "�\ ,Ð4fÐgÑgÔgÐgð/#
ð0 �,˜yÐ.PÐQÑQÔQÐQð1#
ð2 "�\ (Ð0GÐHÑHÔHÐHð3#
ð4 #�l 8Ð1IÐJÑJÔJÐJð5#
ð6 $�| HÐ2KÐLÑLÔLÐLð7#
ð8 %˜ XÐ3MÐNÑNÔNÐNð9#
ð: �,˜x˜x¨¸Ð(HÑIÔIÐJaÑbÔbÐbð;#
ð< (˜<¨	ð  8Xð  Yñ  Yô  Yð  Yð=#
ð> )˜LÐ)9ð  @Fð  WXð  Yñ  Yô  Yð  Yð?#
ð@ ˆl˜6˜6 , ,¨zÑ":Ô":Ð;MÑNÔNÐTsð  EFð  Gñ  Gô  Gð  GðA#
ðB  �<   | |°HÑ'=Ô'=Ð>PÑ QÔ Qð  XWð  hið  jñ  jô  jð  jðC#
ðD  �<  ¨¨°[Ñ(AÔ(AÀ,À,È{ÑB[ÔB[Ð'\Ñ ]Ô ]ð  dSð  deð  fñ  fô  fð  fðE#
€HðJ#ð #ð #ðJ ðð ñ „Xðð „^ðdð dñ „^ðdðð ð ðð ð ðð ð ð*ð ð ð(ð (ð (ð.ð .ð .ð*B#ð B#ð B#ðHð ð ð?ð ?ð ?ðB	#ð 	#ð 	#ð 	#ð 	#rx   rA   c            	       ó^  — e Zd Z edi d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d	 eed¬¦  «        “d
 eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d ee¦  «        “dd“d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d ee	d¬¦  «        “d ee
d¬¦  «        “ŽZd„ Zd„ Zd„ ZdS )ÚLabelDecoratorr<   rB   rC   r=   rE   rF   rG   rH   rI   rJ   rK   rS   rT   rU   rD   rW   rX   rY   rZ   r[   r\   r]   r^   r_   c                 óœ   — d| _         d| _        | j                             ¦   «         D ]#}t	          | |¦  «        st          | |d ¦  «         Œ$d S )Nr(   r3   )r]   rH   rä   ÚkeysÚhasattrÚsetattr©rt   Úas     rv   rw   zLabelDecorator.__init__|  sW   € Ø!ˆŒØˆŒØ”×#Ò#Ñ%Ô%ð 	9ð 	9ˆAÝ˜4 ‘?”?Ð8¥G¨D°°4Ñ$8Ô$8Ð$8øð	9ð 	9rx   c                 ó¢   — |j         \  }}}}}}}	}
}}}}|                     |j        j        |         ¦  «         |                     |¦  «         d S r   )Ú_callOutInfor�   ÚcategoryAxisÚcategoryNamesrˆ   )rt   ÚlÚLÚchartrØ   ÚrowNoÚcolNor<   r=   rZ   r\   Úx00Úy00Úx0Úy0s                  rv   ÚdecoratezLabelDecorator.decorate‚  sR   € Ø=>¼^Ñ:ˆˆa��e˜A˜a  f¨S°°R¸Ø	�	Š	�%Ô$Ô2°5Ô9Ñ:Ô:Ð:Ø	�Šˆa‰Œˆˆˆrx   c                 óÔ   — t          ¦   «         }| j                             ¦   «         D ])\  }}|€t          ||d ¦  «        }t	          |||¦  «         Œ*|                      ||¦  «         d S r   )rA   Ú__dict__Úitemsrr   rì   rü   )rt   ró   rô   rî   Úvs        rv   Ú__call__zLabelDecorator.__call__‡  sl   € Ý‰GŒGˆØ”=×&Ò&Ñ(Ô(ð 	ð 	‰CˆAˆaØˆy�g a¨¨$Ñ/Ô/˜!Ý�A�a˜‰NŒNˆNˆNØ�Š�a˜ÑÔÐÐÐrx   Nrp   )rÞ   rß   rà   râ   rã   r   r   r	   r   r   r   rä   rw   rü   r  rp   rx   rv   rè   rè   d  s‹  € € € € € Øˆwð 
ð 
ð 
ØˆL˜¨RÐ0Ñ0Ô0Ð0ð
àˆL˜¨RÐ0Ñ0Ô0Ð0ð
ð ˆ\˜.¨bÐ1Ñ1Ô1Ð1ð
ð ˆ\˜.¨bÐ1Ñ1Ô1Ð1ð	
ð
 �˜^°Ð4Ñ4Ô4Ð4ð
ð !�L °"Ð5Ñ5Ô5Ð5ð
ð &˜ m¸Ð<Ñ<Ô<Ð<ð
ð &˜ n¸"Ð=Ñ=Ô=Ð=ð
ð $�| M°rÐ:Ñ:Ô:Ð:ð
ð !�L °BÐ7Ñ7Ô7Ð7ð
ð #�l =°bÐ9Ñ9Ô9Ð9ð
ð #�l >Ñ2Ô2Ð2ð
ð 9;¸ð
ð  �< °BÐ7Ñ7Ô7Ð7ð
ð  �< °BÐ7Ñ7Ô7Ð7ð
ð �,˜~°2Ð6Ñ6Ô6Ð6ð
ð  �˜^°Ð4Ñ4Ô4Ð4ð!
ð"  �< °BÐ7Ñ7Ô7Ð7ð#
ð$ �˜n°"Ð5Ñ5Ô5Ð5ð%
ð& "�\ ,°BÐ7Ñ7Ô7Ð7ð'
ð( �,˜yÐ.PÐQÑQÔQÐQð)
€Hð.9ð 9ð 9ðð ð ð
ð ð ð ð rx   rè   ÚhighÚlowÚbarÚaxisc            	       ó�   — e Zd Z e eed¬¦  «         eed¬¦  «         eed¬¦  «         eed¬¦  «        ¬¦  «        Zd„ Zd„ Z	d	S )
ÚLabelOffsetzWhere to base +ve offsetrC   zValue for positive elementszWhere to base -ve offsetzValue for negative elements)ÚposModeÚposÚnegModeÚnegc                 ó>   — dx| _         | _        dx| _        | _        d S )Nr  r   )r  r
  r	  r  rœ   s    rv   rw   zLabelOffset.__init__–  s"   € Ø"(Ð(ˆŒ�T”\ØÐˆŒ�4”8�8�8rx   c                 ó  — |j         }|j        }|j        }|dk    r| j        }| j        }n| j        }| j        }|r|j        }n|j        }|r6|r|j        }	n|j        }	|dk    r|	|j	        z   }n|dk    r|	}n|dk    r|	|z   }||z   S )Nr   r  r  r  )
Ú_flipXYrñ   ÚjoinAxisr  r	  r
  r  Ú_xÚ_yÚ_length)
rt   rõ   ÚvalÚflipXYÚAÚjAÚmodeÚdeltar   Ú_vs
             rv   Ú	_getValuezLabelOffset._getValueš  s¸   € Ø”ˆØÔˆØŒZˆØ�Š6ˆ6Ø”<ˆDØ”HˆEˆEà”<ˆDØ”HˆEØð 	Ø”ˆAˆAà”ˆAØð 
	Øð Ø”U��à”U�Ø�VŠ|ˆ|Ø˜œ‘O��Ø�u’�Ø��Ø�u’�Ø�s‘F�Ø�‰wˆrx   N)
rÞ   rß   rà   râ   rã   ÚisOffsetModer   rä   rw   r  rp   rx   rv   r  r  �  s”   € € € € € ØˆwØ&˜, |Ð9SÐTÑTÔTØ"�l 8Ð1NÐOÑOÔOØ&˜, |Ð9SÐTÑTÔTØ"�l 8Ð1NÐOÑOÔOð	ñ ô €Hð ð  ð  ðð ð ð ð rx   r  c                   ó8   — e Zd Z ee¬¦  «        Zd„ Zd„ Zd„ ZdS )ÚPMVLabel©ÚBASEc                 ó8   — t          j        | fi |¤Ž d| _        d S ©Nr   )rA   rw   Ú_pmv©rt   Úkwdss     rv   rw   zPMVLabel.__init__¼  s%   € ÝŒ�tÐ$Ð$˜tÐ$Ð$Ð$ØˆŒ	ˆ	ˆ	rx   c           
      ót   — t                                | ¦  «        }| j        dk     rdddddddd	d
dœ	|         }|S )Nr   r0   r1   r2   r/   r?   r3   r.   r-   r4   )	r4   r-   r.   r3   r?   r/   r2   r1   r0   )rA   r—   r"  rí   s     rv   r—   zPMVLabel._getBoxAnchorÀ  sH   € Ý×Ò Ñ%Ô%ˆØŒ9�QŠ;ˆ; $¨3°D¸SÀSÈSÐVZÐ_bÐhlÐmÐmÐnoÔp˜Øˆrx   c                 óh   — t                                | ¦  «        }| j        dk     rddddœ|         }|S )Nr   r)   r*   r(   )r(   r*   r)   )rA   rÂ   r"  rí   s     rv   rÂ   zPMVLabel._getTextAnchorÅ  s8   € Ý× Ò  Ñ&Ô&ˆØŒ9�QŠ;ˆ; U°XÀWÐMÐMÈaÔP˜Øˆrx   N)	rÞ   rß   rà   râ   rA   rä   rw   r—   rÂ   rp   rx   rv   r  r  ·  sZ   € € € € € ØˆwØð
ñ 
ô 
€Hðð ð ðð ð ð
ð ð ð ð rx   r  c                   óÚ   — e Zd ZdZ ee eed¬¦  «         eed¬¦  «         ee	d¬¦  «         ee	d¬¦  «         ee
d¬¦  «         e edd	d
dd¦  «        d¬¦  «        ¬¦  «        Zd„ ZdS )ÚBarChartLabelúF
    An extended Label allowing for nudging, lines visibility etc
    zNon-zero for a drawn linerC   zColor for a drawn linezNone or fixed draw ends +/-zNone or fixed draw starts +/-zNon-zero sign dependent nudgerM   rN   rO   rP   Úmidz(one of ('normal','anti','lo','hi','mid'))r  ÚlineStrokeWidthÚlineStrokeColorÚfixedEndÚ
fixedStartÚnudgerL   c                 óp   — t          j        | fi |¤Ž d| _        d | _        d x| _        | _        d| _        d S r!  )r  rw   r+  r,  r.  r-  r/  r#  s     rv   rw   zBarChartLabel.__init__Ø  sD   € ÝÔ˜$Ð'Ð' $Ð'Ð'Ð'Ø ˆÔØ#ˆÔØ*.Ð.ˆŒ˜$œ-ØˆŒ
ˆ
ˆ
rx   N)rÞ   rß   rà   rá   râ   r  rã   r   r	   ÚNoneOrInstanceOfLabelOffsetr   r   rä   rw   rp   rx   rv   r(  r(  Ê  sÎ   € € € € € ðð ð ˆwØØ&˜, ~Ð<WÐXÑXÔXØ&˜, }Ð;SÐTÑTÔTØ�<Ð ;ÐB_Ð`Ñ`Ô`Ø!�\Ð"=ÐDcÐdÑdÔdØ�˜XÐ,KÐLÑLÔLØ �L   x°°t¸DÀÑ!GÔ!GÐMwÐxÑxÔxð
ñ 
ô 
€Hðð ð ð ð rx   r(  c                   óH   — e Zd ZdZ ee eed¬¦  «        ¬¦  «        Zd„ Z	dS )ÚNA_Labelr)  zText to be used for N/A valuesrC   )r  rV   c                 óH   — t                                | ¦  «         d| _        d S )Nzn/a)r(  rw   rV   rœ   s    rv   rw   zNA_Label.__init__ç  s!   € Ý×Ò˜tÑ$Ô$Ð$ØˆŒ	ˆ	ˆ	rx   N)
rÞ   rß   rà   rá   râ   r(  rã   r   rä   rw   rp   rx   rv   r3  r3  ß  s[   € € € € € ðð ð ˆwØØˆ|˜NÐ1QÐRÑRÔRð
ñ 
ô 
€Hðð ð ð ð rx   r3  )ÚCustomDrawChangerc                   ó(   — e Zd Zej        fd„Zd„ ZdS )ÚRedNegativeChangerc                 ó<   — t          j        | ¦  «         || _        d S r   )r5  rw   rS   )rt   rS   s     rv   rw   zRedNegativeChanger.__init__î  s   € ÝÔ" 4Ñ(Ô(Ð(Ø"ˆŒˆˆrx   c                 ój   — i }|j                              d¦  «        r|j        |d<   | j        |_        |S )Nú-rS   )rn   Ú
startswithrS   )rt   rË   ÚRs      rv   Ú_changerzRedNegativeChanger._changerñ  s8   € ØˆØŒ9×Ò Ñ$Ô$ð 	+Ø œ]ˆAˆk‰NØ œNˆCŒMØˆrx   N)rÞ   rß   rà   r   Úredrw   r=  rp   rx   rv   r7  r7  í  s<   € € € € € Ø &¤
ð #ð #ð #ð #ðð ð ð ð rx   r7  c                   ó0   — e Zd ZdZ ee¬¦  «        Zd„ ZdS )	ÚXLabelz=like label but uses XPreFormatted/Paragraph to draw the _textr  c                 ó°   — t          j        | g|¢R i |¤Ž |                     dt          ¦  «        | _        |                     d| j        ¦  «        | _        d S )Nrk   ÚdirectDrawClass)rA   rw   Úpopr!   rk   ri   )rt   Úargsr$  s      rv   rw   zXLabel.__init__ü  sS   € ÝŒ�tÐ)˜TÐ)Ð)Ð) DÐ)Ð)Ð)ØŸš ­MÑ:Ô:ˆŒØ—8’8Ð-¨d¬hÑ7Ô7ˆŒˆˆrx   Fc                 óÖ   — |                      dt          ¦  «        | _        |                      dt          ¦  «        }|€t	          d¦  «        ‚|| _        t          j        | g|¢R i |¤Ž d S )NÚflowableClassrB  r¯   )rC  r!   Ú_flowableClassr>   r¹   Ú_ddfrA   rw   )rt   rD  r$  ri   s       rv   rw   zXLabel.__init__  sz   € Ø"&§(¢(¨?½=Ñ"IÔ"IˆDÔØ—(’(Ð,Õ-?Ñ@Ô@ˆCØˆ{Ý"ð  $Añ  Bô  Bð  BØˆDŒIÝŒN˜4Ð- Ð-Ð-Ð-¨Ð-Ð-Ð-Ð-Ð-rx   c                 ó`  — g | _         t          d| j        | j        | j        | j        ¬¦  «        x}| _        |                      ¦   «          | j        rd|_	        | j
        | j        z
  |_        n| j        r| j        n	| j        dz  |_        |j        | _        |                      ¦   «         }| j        pd}|dk    rOt           |_        |                      | j        |¬¦  «        }|                     |d¦  «        \  }}| j        p|j        }t,          |         |_        |                      | j        |¬¦  «        x| _        }|                     |d¦  «        \  }}| j        s/| j        | j        z   | _        | xj        | j        j        z  c_        n| j        | _        |                      |¦  «         d S )Nr°   )rW   rX   rS   rT   Tr®   r²   r(   r³   )rµ   r#   rW   rX   rS   rT   rÀ   r�   re   rÁ   r™   rš   rY   r¸   rÂ   r[   r%   rÃ   rG  rn   rÄ   rÅ   rÆ   Ú_objrZ   ra   rb   r    r¨   )rt   rÈ   rÉ   rÊ   rË   rÌ   r§   s          rv   rÍ   zXLabel.computeSize	  s¡  € à!ˆDÔÝ .Ð/AØ!œ]Ø!œ]Ø"œnØ $Ô 0ð	!ñ !ô !ð ˆC�$”+ð ×"Ò"Ñ$Ô$Ð$ØÔ$ð RØ"&�”Ø"œl¨T¬]Ñ:�”�à.2¬lÐQ˜dœl˜lÀÄÈcÑ@Q�”ØœKˆDŒMØ×$Ò$Ñ&Ô&ˆBØ”Ð, *ˆBØ�7Š{ˆ{Ý '�”Ø×)Ò)¨$¬*¸3Ð)Ñ?Ô?�ØŸ(š( 2 jÑ1Ô1‘��4Ø”]Ð4 c¤n�Ý" 2œJˆCŒMØ"×1Ò1°$´*À3Ð1ÑGÔGÐGˆDŒI˜Ø—h’h˜r *Ñ-Ô-‰GˆAˆtà”:ð )Ø"Ô.¨tÔ/@Ñ@�”Ø�”˜tœyÔ3Ñ3�”�à"œj�”Ø× Ò  Ñ&Ô&Ð&Ð&Ð&rx   c                 óâ  — | j         }|pd| _         |                      ¦   «          || _         t          ¦   «         }|                     | j        | j        z   | j        | j        z   ¦  «         |                     | j	        ¦  «         | j
        }| j        s| j        rc| j        r\|                     t          | j
        | j        z
  | j        | j        z
  | j        | j        | j        | j        | j        ¬¦  «        ¦  «         t          ¦   «         }|                     || j        | j        z
  ¦  «         |                     |                      | j        ¦  «        ¦  «         |                     |¦  «         |S )NrB   )rT   rU   rS   )rn   rÍ   r   rÕ   r<   rE   r=   rF   rÖ   rG   r¥   rK   rI   rJ   rˆ   r   ra   r¤   rc   r    rŸ   r£   r¢   rH  rJ  )rt   rn   rØ   r<   rÙ   s        rv   rÛ   zXLabel._rawDraw+  sP  € Ø”JˆEØ˜ "ˆDŒJØ×ÒÑÔÐØˆDŒJÝ‘”ˆAØ�KŠK˜œ ¤Ñ(¨$¬&°4´7Ñ*:Ñ;Ô;Ð;Ø�HŠH�T”ZÑ Ô Ð à”
ˆAð Ô ð  TÔ%8ð ¸TÔ=Pð Ø—’•d˜DœJ tÔ'7Ñ7Ø œL¨Ô);Ñ;Ø œKØ œLØ(,Ô(;Ø(,Ô(;Ø&*Ô&7ð9ñ 9ô 9ñ ô ð õ ‘”ˆBØ�LŠL˜˜4œ9 T¤]Ñ2Ñ3Ô3Ð3Ø�FŠF�4—9’9˜TœYÑ'Ô'Ñ(Ô(Ð(Ø�EŠE�"‰IŒIˆIØˆHrx   N)
rÞ   rß   rà   rá   râ   rA   rä   rw   rÍ   rÛ   rp   rx   rv   r@  r@  ø  sC   € € € € € ØGÐGØˆw˜Eð ñ ô €Hð8ð 8ð 8ð
Dð Drx   r@  )GÚ__version__Úreportlab.libr   Úreportlab.lib.utilsr   Úreportlab.lib.geomutilsr   Úreportlab.lib.validatorsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Úreportlab.lib.attrmapÚreportlab.pdfbase.pdfmetricsr   r   Úreportlab.graphics.shapesr   r   r   r   r   r   Úreportlab.graphics.widgetbaser   r   r    Úreportlab.platypusr!   r"   Úreportlab.lib.stylesr#   r$   Úreportlab.lib.enumsr%   r&   r'   rº   rÆ   Úutilsr,   r×   r“   Úrlextra.graphics.canvasadapterr>   ÚImportErrorrÐ   rA   rè   r  r  r1  r  r(  r3  ÚNoneOrInstanceOfNA_LabelÚreportlab.graphics.charts.utilsr5  r7  r@  rp   rx   rv   ú<module>r]     sV  ðð €à  Ð  Ð  Ð  Ð  Ð  Ø +Ð +Ð +Ð +Ð +Ð +Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð $Ð #Ð #Ð #Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø	ˆ�G °	Ð	:Ñ	:Ô	:€Ø +Ð +Ð +Ð +Ð +Ð +ð ˜ ¨$°C¸TÀsÐQUÐ\`ÐaÐaØ˜ ¨$°C¸TÀsÐQUÐ\`ÐaÐað	
ð 	
€ð
ØAÐAÐAÐAÐAÐAÐAøØð ð ð ØÐÐÐðøøøð ˜ g°%¸uÈ5ÐV^ÐckÐpxÐyÐy€ð@#ð @#ð @#ð @#ð @#ˆFñ @#ô @#ð @#ðD
(ð (ð (ð (ð (ñ (ô (ð (ðT ˆU�6˜%  fÑ-Ô-€ð$ð $ð $ð $ð $�*ñ $ô $ð $ðL #˜F < <°Ñ#<Ô#<Ñ=Ô=Ð ðð ð ð ð ˆuñ ô ð ð&ð ð ð ð �Hñ ô ð ð*
ð 
ð 
ð 
ð 
ˆ}ñ 
ô 
ð 
ð  ˜  ¨XÑ 6Ô 6Ñ7Ô7Ð à =Ð =Ð =Ð =Ð =Ð =ð	ð 	ð 	ð 	ð 	Ð*ñ 	ô 	ð 	ðMð Mð Mð Mð MˆUñ Mô Mð Mð Mð Ms   Â)B0 Â0B:Â9B: