§
    £”jWd  ã                   óè  — d Z dZddl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 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(m)Z)m*Z*m+Z+ ddlm,Z, d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2 G d„ de¦  «        Z3 G d„ d¦  «        Z4 G d„ de4¦  «        Z5 G d„ de4¦  «        Z6 G d„ de¦  «        Z7 G d„ de6¦  «        Z8 G d„ d e¦  «        Z9 G d!„ d"e7¦  «        Z:dS )#z3.3.0z<This will be a collection of legends to be used with charts.é    N)Úcolors)ÚisNumberÚOneOfÚisStringÚisColorOrNoneÚisNumberOrNoneÚisListOfNumbersOrNoneÚ	isBooleanÚEitherOrÚNoneOrÚAutoOrÚisAutoÚAutoÚisBoxAnchorÚ
SequenceOfÚisInstanceOf)Ú*)ÚstringWidthÚgetFont)ÚWidgetÚTypedPropertyCollectionÚ
PropHolder)ÚDrawingÚGroupÚStringÚRectÚLineÚSTATE_DEFAULTS)ÚuSymbol2SymbolÚisSymbol)ÚisSeqÚfind_localsÚisStrÚasNative)Ú_baseGFontNamec                 ó(  — | dgz  }d}|D ]M}t          |t          |¦  «        ¦  «        }t          |¦  «        D ]\  }}t          ||         |¦  «        ||<   ŒŒNdg|d |…         z   }t          |¦  «        D ]}||dz   xx         ||         z  cc<   Œ|S )Nr   é   )ÚmaxÚlenÚ	enumerateÚrange)ÚnÚAÚXÚmÚaÚiÚxs          úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/charts/legends.pyÚ	_transMaxr4      sµ   € Ø	ˆ1ˆ#‰€AØ	€AØð ð ˆÝ�•#�a‘&”&‰MŒMˆÝ˜Q‘<”<ð 	ð 	‰CˆAˆaÝ�q˜”t˜A‘;”;ˆAˆa‰DˆDð	à	
ˆˆa���Œe‰€AÝ�1‰XŒXð ð ˆØ	ˆ!ˆA‰#ˆˆŒ�!�A”$‰ˆˆ‰ˆØ€Hó    c                 ó\   — t          | ¦  «        rt          | ¦  «        S t          | ¦  «        S ©N)r#   r$   Ústr©Úss    r3   Ú_objStrr;   "   s'   € ÝˆQ�x„xð Ý˜‰{Œ{Ðå�1‰vŒvˆr5   c                 ó‚   — t          | ¦  «        r"t          t          t          | ¦  «        ¦  «        S t	          | ¦  «        S r7   )r!   ÚlistÚmapÚ_getStrr;   r9   s    r3   r?   r?   (   s2   € ÝˆQ�x„xð Ý•C� ‘N”NÑ#Ô#Ð#å�q‰zŒzÐr5   c                 ó€   — t          | ¦  «        rt          d„ | D ¦   «         ¦  «        S | pd                     d¦  «        S )Nc                 ó<   — g | ]}|pd                       d¦  «        ‘ŒS )Ú ú
)Úsplit©Ú.0r2   s     r3   ú
<listcomp>z_getLines.<locals>.<listcomp>0   s(   € Ð7Ð7Ð7°�q�w˜B—o’o dÑ+Ô+Ð7Ð7Ð7r5   rB   rC   )r!   ÚtuplerD   r9   s    r3   Ú	_getLinesrI   .   sC   € ÝˆQ�x„xð %ÝÐ7Ð7°QÐ7Ñ7Ô7Ñ8Ô8Ð8à��R�Š˜tÑ$Ô$Ð$r5   c                 óŽ   — t          | ¦  «        }t          | ¦  «        rt          d„ |D ¦   «         ¦  «        S t          |¦  «        S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©r)   rE   s     r3   rG   z!_getLineCount.<locals>.<listcomp>7   s   € Ð&Ð&Ð&˜q•C˜‘F”FÐ&Ð&Ð&r5   )rI   r!   r(   r)   )r:   ÚTs     r3   Ú_getLineCountrO   4   sC   € Ý�!‰Œ€AÝˆQ�x„xð ÝÐ&Ð& AÐ&Ñ&Ô&Ñ'Ô'Ð'å�1‰vŒvˆr5   c                 ó„  ‡‡— g }|j         }t          |¦  «        r¨t          |¦  «        D ]”\  }}||| f         }	t          |	d|¦  «        Št          |	d|¦  «        Šˆˆfd„|                     d¦  «        D ¦   «         }
t          |	j        |
rt          |
¦  «        pd¦  «        }
 ||
¦  «          ||	j        ¦  «         Œ•|d= n}|d| f         }	t          |	d|¦  «        Št          |	d|¦  «        Šˆˆfd„|                     d¦  «        D ¦   «         }
 |t          |	j        |
rt          |
¦  «        pd¦  «        ¦  «         |S )NÚfontNameÚfontSizec                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS rL   ©r   ©rF   r2   ÚfNÚfSs     €€r3   rG   z_getWidths.<locals>.<listcomp>C   s%   ø€ Ð?Ð?Ð?¨A•˜Q  BÑ'Ô'Ð?Ð?Ð?r5   rC   r   éÿÿÿÿc                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS rL   rT   rU   s     €€r3   rG   z_getWidths.<locals>.<listcomp>L   s%   ø€ Ð;Ð;Ð;¨�[˜˜B Ñ#Ô#Ð;Ð;Ð;r5   )Úappendr!   r*   ÚgetattrrD   r(   ÚminWidthÚrpad)r1   r:   rQ   rR   ÚsubColsÚSÚaSÚjÚtÚscr/   rV   rW   s              @@r3   Ú
_getWidthsrd   ;   sX  øø€ Ø
€AØ	
Œ€BÝˆQ�x„xð /Ý˜Q‘<”<ð 	ð 	‰CˆAˆaØ˜˜1˜”ˆBÝ˜˜J xÑ0Ô0ˆBÝ˜˜J xÑ0Ô0ˆBØ?Ð?Ð?Ð?Ð?°·²¸±´Ð?Ñ?Ô?ˆAÝ�B”K  ¥c¨!¡f¤fÐ 1°Ñ2Ô2ˆAØˆBˆq‰EŒEˆEØˆBˆrŒw‰KŒKˆKˆKØˆbˆEˆEà�Q�q�SŒ\ˆÝ�R˜
 8Ñ,Ô,ˆÝ�R˜
 8Ñ,Ô,ˆØ;Ð;Ð;Ð;Ð;¨Q¯WªW°T©]¬]Ð;Ñ;Ô;ˆØ
ˆ�3ˆrŒ{˜1˜<¥ Q¡¤Ð,¨1Ñ-Ô-Ñ.Ô.Ð.Ø€Hr5   c                   óD  — e Zd ZdZ e eed¬¦  «         eed¬¦  «         e eddddd	¦  «        d
¬¦  «         eed¬¦  «         eed¬¦  «         ee	d¬¦  «         ee
d¬¦  «         e e e ee¦  «        ¦  «         e ee¦  «        ddd¬¦  «        f¦  «        d¬¦  «         e e e ee¦  «        ¦  «         e ee¦  «        ddd¬¦  «        f¦  «        d¬¦  «         eed¬¦  «         eed¬¦  «         e eddd¦  «        d¬¦  «        ¬¦  «        ZdS )ÚSubColPropertyr   zminimum width for this subcol©Údesczright padding for this subcolÚleftÚrightÚcenterÚcentreÚnumericzalignment in subColúFont name of the stringsúFont size of the stringszleading for the stringsÚ	fontColoriÿÿÿ©ÚemptyOKÚloÚhizunderline definitionszoverline definitionszx offset from default positionzy offset from default positionÚtopÚbottomÚmiddlezvertical alignment in the row)r\   r]   ÚalignrQ   rR   ÚleadingÚ	fillColorÚ
underlinesÚ	overlinesÚdxÚdyÚvAlignN)Ú__name__Ú
__module__Ú__qualname__ÚdividerLinesÚAttrMapÚAttrMapValuer   r   r   r   r   r   r   r   r   r   Ú_attrMaprL   r5   r3   rf   rf   P   s  € € € € € Ø€LØˆwØ�< Ð.MÐNÑNÔNØˆ|˜HÐ*IÐJÑJÔJØ�˜U˜U 6¨'°(¸8ÀIÑNÔNÐTiÐjÑjÔjØ�< Ð/IÐJÑJÔJØ�< Ð/IÐJÑJÔJØ�,˜~Ð4MÐNÑNÔNØ �L °[ÐAÑAÔAØ!�\ ( (¨F¨F°<°<ÀÑ3EÔ3EÑ,FÔ,FÀzÀzÐR^ÐR^Ð_cÑRdÔRdÐmnÐrsð  xBð  HCñ  HCô  HCð  ,Dñ  #Eô  #Eð  Lcð  dñ  dô  dØ �L  ¨6¨6°,°,¸tÑ2DÔ2DÑ+EÔ+EÀjÀjÐQ]ÐQ]Ð^bÑQcÔQcÐlmÐqrð  wAð  GBñ  GBô  GBð  +Cñ  "Dô  "Dð  Kað  bñ  bô  bØˆ\˜(Ð)IÐJÑJÔJØˆ\˜(Ð)IÐJÑJÔJØ�˜e˜e E¨(°8Ñ<Ô<ÐBaÐbÑbÔbð
ñ 
ô 
€H€H€Hr5   rf   c                   ó6   — e Zd Zd„ Z ee¦  «        Zd„ Zd„ ZdS )ÚLegendCalloutc                 ó`   ‡ ‡— t          ˆ fd„¦  «        Št          ˆfd„|D ¦   «         ¦  «        S )zZreturn a tuple of values from the first function up the stack with isinstance(self,legend)c                 ó<   •— |                       dd ¦  «        ‰u r| pd S ©NÚself©Úget©ÚLÚlegends    €r3   ú<lambda>z-LegendCallout._legendValues.<locals>.<lambda>d   ó$   ø€  !§%¢%¨¨tÑ"4Ô"4¸Ð">Ð"DÀ1Ð"LÈ€ r5   c                 ó    •— g | ]
}‰|         ‘ŒS rL   rL   )rF   r0   r�   s     €r3   rG   z/LegendCallout._legendValues.<locals>.<listcomp>e   s   ø€ Ð)Ð)Ð)˜q�a˜”dÐ)Ð)Ð)r5   ©r"   rH   )r‘   Úargsr�   s   ` @r3   Ú_legendValueszLegendCallout._legendValuesb   s>   øø€ åÐLÐLÐLÐLÑMÔMˆÝÐ)Ð)Ð)Ð) DÐ)Ñ)Ô)Ñ*Ô*Ð*r5   c                 ód   ‡ ‡‡— t          ˆfd„¦  «        Št          ˆˆ fd„|D ¦   «         ¦  «        S )Nc                 ó<   •— |                       dd ¦  «        ‰u r| pd S r‹   r�   r�   s    €r3   r’   z3LegendCallout._selfOrLegendValues.<locals>.<lambda>i   r“   r5   c                 ó>   •— g | ]}t          ‰|‰|         ¦  «        ‘ŒS rL   )r[   )rF   r0   r�   rŒ   s     €€r3   rG   z5LegendCallout._selfOrLegendValues.<locals>.<listcomp>j   s)   ø€ Ð9Ð9Ð9¨q•g˜d 1 Q q¤TÑ*Ô*Ð9Ð9Ð9r5   r•   )rŒ   r‘   r–   r�   s   `` @r3   Ú_selfOrLegendValuesz!LegendCallout._selfOrLegendValuesh   sB   øøø€ ÝÐLÐLÐLÐLÑMÔMˆÝÐ9Ð9Ð9Ð9Ð9°DÐ9Ñ9Ô9Ñ:Ô:Ð:r5   c                 ó   — |\  }}d S r7   rL   )rŒ   r‘   ÚgÚthisxÚyÚcolNameÚcolÚnames           r3   Ú__call__zLegendCallout.__call__l   ó   € Ø‰	ˆˆTˆTˆTr5   N)r€   r�   r‚   r—   Ústaticmethodr›   r£   rL   r5   r3   rˆ   rˆ   a   sR   € € € € € ð+ð +ð +ð !�L Ñ/Ô/€Mð;ð ;ð ;ðð ð ð ð r5   rˆ   c                   ó   — e Zd Zd„ ZdS )ÚLegendSwatchCalloutc                 ó   — |\  }}	d S r7   rL   )
rŒ   r‘   r�   rž   rŸ   r1   r    Úswatchr¡   r¢   s
             r3   r£   zLegendSwatchCallout.__call__p   r¤   r5   N©r€   r�   r‚   r£   rL   r5   r3   r§   r§   o   s#   € € € € € ðð ð ð ð r5   r§   c                   ó   — e Zd Zd„ ZdS )ÚLegendColEndCalloutc                 ó   — d S r7   rL   )rŒ   r‘   r�   r2   ÚxtrŸ   ÚwidthÚlWidths           r3   r£   zLegendColEndCallout.__call__t   s   € Øˆr5   Nrª   rL   r5   r3   r¬   r¬   s   s#   € € € € € ðð ð ð ð r5   r¬   c                   óž  — e Zd 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¬¦  «        “d eedd¬¦  «        “d eedd¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d e edd¦  «        d¬¦  «        “d 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 ee¦  «        ¦  «        d/d¬¦  «        “d0 ed d1d¬¦  «        “d2 eed3¦  «        “d4 eed5d¬6¦  «        “d7 e ed8dd9d:d;d<d=d>¦  «        d?d¬6¦  «        “d@ eedAd¬¦  «        “dB ee
dCd¬¦  «        “dD eedEd¬¦  «        “dF e eed8d9d9¬G¦  «        dHd¬¦  «        “dI eedJd¬¦  «        “dK ed dLd¬¦  «        “dM ed dN¬¦  «        “dO ed dPd¬¦  «        “dQ eedR¬¦  «        “dS eedT¬¦  «        “ŽZdU„ ZdV„ ZdW„ ZdX„ ZdY„ ZdZ„ Zd[„ Zd\„ Zd]„ Zd^„ Zd S )`ÚLegenda%  A simple legend containing rectangular swatches and strings.

    The swatches are filled rectangles whenever the respective
    color object in 'colorNamePairs' is a subclass of Color in
    reportlab.lib.colors. Otherwise the object passed instead is
    assumed to have 'x', 'y', 'width' and 'height' attributes.
    A legend then tries to set them or catches any error. This
    lets you plug-in any widget you like as a replacement for
    the default rectangular swatches.

    Strings can be nicely aligned left or right to the swatches.
    r2   z*x-coordinate of upper-left reference pointrg   rŸ   z*y-coordinate of upper-left reference pointÚdeltaxz(x-distance between neighbouring swatchesÚdeltayz(y-distance between neighbouring swatchesÚdxTextSpacez*Distance between swatch rectangle and textÚautoXPaddingz(x Padding between columns if deltax=Noner'   )rh   ÚadvancedUsageÚautoYPaddingz%y Padding between rows if deltay=NoneÚyGapzAdditional gap between rowsr}   zWidth of swatch rectangler~   zHeight of swatch rectangleÚcolumnMaximumzMax. number of items per columnÚ	alignmentri   rj   z*Alignment of text with respect to swatchesÚcolorNamePairsNz4List of color/name tuples (color can also be widget)rQ   rn   rR   ro   ry   ztext leadingrz   zswatches filling colorÚstrokeColorzBorder color of the swatchesÚstrokeWidthz)Width of the border color of the swatchesÚswatchMarkerz)None, Auto() or makeMarker('Diamond') ...Úcalloutz'a user callout(self,g,x,y,(color,text))Ú	boxAnchorz Anchor point for the legend areaÚ
variColumnz1If true column widths may vary (default is false))r·   rƒ   r   é   é   é   é   é   é   zGIf 1 we have dividers between the rows | 2 for extra top | 4 for bottomÚdividerWidthzdividerLines widthÚdividerColorzdividerLines colorÚdividerDashArrayzDash array for dividerLines.ÚdividerOffsXrq   zdivider lines X offsetsÚdividerOffsYzdividerLines Y offsetÚcolEndCalloutz.a user callout(self,g, x, xt, y,width, lWidth)r^   zsubColumn propertiesÚswatchCalloutz5a user swatch callout(self,g,x,y,i,(col,name),swatch)Úswdxz$x position adjustment for the swatchÚswdyz$y position adjustment for the swatchc                 óä  — d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        t          j        d	ft          j        d
ft          j        dft          j        dft          j        dfg| _        t(          d         | _        t(          d         | _        d | _        t(          d         | _        t(          d         | _        t(          d         | _        d | _        d| _        d| _        d| _        d| _        d| _         d | _!        t          j"        | _#        d| _$        d| _%        d | _&        |  '                    ¦   «          d S )Nr   ri   éK   é   rÆ   rÃ   é
   rÄ   ÚredÚblueÚgreenÚpinkÚyellowrQ   rR   rz   r½   r¾   Únwç      à?©r   r   )(r2   rŸ   r»   r³   r´   r¶   r¸   r}   r~   rÐ   rÑ   rµ   rº   r   rÖ   r×   rØ   rÙ   rÚ   r¼   r   rQ   rR   ry   rz   r½   r¾   r¿   rÁ   r¹   rÂ   rƒ   rÉ   rË   ÚblackrÊ   rÌ   rÍ   rÎ   Ú_init_subCols©rŒ   s    r3   Ú__init__zLegend.__init__ª   s_  € àˆŒØˆŒð  ˆŒð ˆŒØˆŒØˆÔØˆÔð ˆŒØˆŒàˆŒ	ØˆŒ	ð ˆÔð ˆÔõ "(¤¨UÐ 3Ý!'¤¨fÐ 5Ý!'¤¨wÐ 7Ý!'¤¨fÐ 5Ý!'¤°Ð 9ð	<ˆÔõ ' zÔ2ˆŒÝ& zÔ2ˆŒØˆŒÝ'¨Ô4ˆŒÝ)¨-Ô8ˆÔÝ)¨-Ô8ˆÔØ ˆÔØˆŒØˆŒ	ØˆŒØˆÔØˆÔØ $ˆÔÝ"œLˆÔØ!ˆÔØˆÔØ!ˆÔØ×ÒÑÔÐÐÐr5   c                 ó¸   — t          t          ¦  «        x}| _        d|_        dx|_        x|_        |_        d|_        d|d         _        d|_        d |_	        d S )Nr'   r   rj   ri   ru   )
r   rf   r^   r]   r}   r~   r\   rx   r   ry   )rŒ   rc   s     r3   rß   zLegend._init_subColsà   sV   € Ý3µNÑCÔCÐCˆˆTŒ\ØˆŒØ&'Ð'ˆŒÐ'�”˜œØˆŒØˆˆ1ŒŒØˆŒ	ØˆŒ
ˆ
ˆ
r5   c                 ó8   — dD ]}t          ||¦  «        r|c S Œd S )N)ÚlinesÚbarsÚslicesÚstrands)Úhasattr)rŒ   Úchartr0   s      r3   Ú_getChartStyleNamezLegend._getChartStyleNameé   s1   € Ø5ð 	*ð 	*ˆAÝ�u˜QÑÔÐ)¨   Ð)Øˆtr5   c                 óJ   — t          ||                      |¦  «        d ¦  «        S r7   )r[   rê   )rŒ   ré   s     r3   Ú_getChartStylezLegend._getChartStyleî   s"   € Ý�u˜T×4Ò4°UÑ;Ô;¸DÑAÔAÐAr5   c           	      óÀ   ‡— t          |¦  «        sd„ |D ¦   «         }n@t          |dt          |dd ¦  «        ¦  «        Šˆfd„t          ‰j        ¦  «        D ¦   «         }|S )Nc                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS )r'   )r?   )rF   Úps     r3   rG   z$Legend._getTexts.<locals>.<listcomp>ó   s"   € Ð;Ð;Ð; q•W˜Q˜qœT‘]”]Ð;Ð;Ð;r5   ré   Úobjc                 óB   •— g | ]}‰                      |d |z  ¦  «        ‘ŒS )ú	series %d)ÚgetSeriesName)rF   r1   ré   s     €r3   rG   z$Legend._getTexts.<locals>.<listcomp>ö   s-   ø€ Ð_Ð_Ð_À�U×(Ò(¨¨;¸©?Ñ;Ô;Ð_Ð_Ð_r5   )r   r[   r+   Ú_seriesCount)rŒ   r¼   Útextsré   s      @r3   Ú	_getTextszLegend._getTextsñ   sp   ø€ Ý�nÑ%Ô%ð 	`Ø;Ð;¨NÐ;Ñ;Ô;ˆEˆEå˜N¨7µ7¸>È%ÐPTÑ3UÔ3UÑVÔVˆEØ_Ð_Ð_Ð_ÅUÈ5ÔK]ÑE^ÔE^Ð_Ñ_Ô_ˆEØˆr5   c                 ót  ‡‡‡‡‡‡— | j         Š| j        Š| j        Šˆˆˆfd„t          |                      |¦  «        ¦  «        D ¦   «         Š‰sddgS t          d„ ‰D ¦   «         ¦  «        Š| j        r8| j        Šˆˆˆfd„t          dt          ‰¦  «        | j        ¦  «        D ¦   «         S t          ‰‰¦  «        S )z2Calculate the maximum width of some given strings.c           	      ó<   •— g | ]\  }}t          ||‰‰‰¦  «        ‘ŒS rL   )rd   )rF   r1   r/   rQ   rR   r^   s      €€€r3   rG   z2Legend._calculateMaxBoundaries.<locals>.<listcomp>ÿ   s-   ø€ ÐpÐpÐp¹s¸qÀ�Z˜˜1˜h¨°'Ñ:Ô:ÐpÐpÐpr5   r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rL   rM   ©rF   r/   s     r3   rG   z2Legend._calculateMaxBoundaries.<locals>.<listcomp>  s   € Ð#Ð#Ð#˜A•�Q‘”Ð#Ð#Ð#r5   c           	      óF   •— g | ]}t          ‰‰||‰z   …         ¦  «        ‘ŒS rL   )r4   )rF   ÚrÚMrº   r,   s     €€€r3   rG   z2Legend._calculateMaxBoundaries.<locals>.<listcomp>  s1   ø€ ÐbÐbÐb¸!•I˜a  ! A m¡OÐ"3Ô 4Ñ5Ô5ÐbÐbÐbr5   )rQ   rR   r^   r*   rö   r(   rÂ   rº   r+   r)   r4   )rŒ   r¼   rý   rº   rQ   rR   r,   r^   s     @@@@@@r3   Ú_calculateMaxBoundarieszLegend._calculateMaxBoundariesù   sÖ   øøøøøø€ à”=ˆØ”=ˆØ”,ˆàpÐpÐpÐpÐpÐpÅiÐPT×P^ÒP^Ð_mÑPnÔPnÑFoÔFoÐpÑpÔpˆØð 	Ø�a�5ˆLÝÐ#Ð# Ð#Ñ#Ô#Ñ$Ô$ˆØŒ?ð 	"Ø Ô.ˆMØbÐbÐbÐbÐbÐb½uÀQÅsÈ1ÁvÄvÈdÔN`Ñ?aÔ?aÐbÑbÔbÐbå˜Q˜q‘>”>Ð!r5   c                 ó&  — | j         }| j        }| j        |z
  x}}| j        }| j        }t          |¦  «        j        j        dz  }|dk    rd}||z  }|dz  }| j        }	|	st          ||¦  «        | j
        z   }	d}
d}|}| j        dz
  }|                      | j        ¦  «        D ]k}|||z
  dz  z   }|t          |¦  «        |z  z
  }d|z  |z
  |z
  }|t          |	|¦  «        z
  |z
  }t          |||¦  «        }||k    r
d}|}|
dz  }
Œd|}|dz   }Œl||z
  S )Nç     @�@r   ç`åÐ"Ûùæ?ç333333ó?r'   rÜ   rÃ   )r~   r¹   rŸ   rR   rQ   r   ÚfaceÚascentr´   r(   r¸   rº   rö   r¼   rO   Úmin)rŒ   r~   r¹   ÚthisyÚ
upperleftyrR   rQ   r  ry   r´   ÚcolumnCountÚcountÚlowyÚlimr¢   Úy0rŸ   ÚleadingMoveÚnewys                      r3   Ú_calcHeightzLegend._calcHeight	  s_  € ØŒWˆØŒyˆØ!œV b™[Ð(ˆ�
Ø”=ˆØ”=ˆÝ�xÑ Ô Ô%Ô,¨UÑ2ˆØ�1Š9ˆ9˜U�fØ�(ÑˆØ˜3‘,ˆØ”ˆØÐA¥ B w¡¤°Ô0AÑ A�vØˆØˆØˆØÔ  1Ñ$ˆØ—N’N 4Ô#6Ñ7Ô7ð 	 ð 	 ˆDØ˜˜6™	 3‘Ñ&ˆBØ•] 4Ñ(Ô(¨Ñ0Ñ0ˆAØ˜B™$˜q™& ™,ˆKØ�˜V KÑ0Ô0Ñ0°Ñ5ˆDÝ�q˜˜dÑ#Ô#ˆDØ�cŠzˆzØ�Ø"�Ø˜qÑ ��à�Ø˜a™��Ø˜DÑ Ð r5   c           	      ó.   — t          |||||||¬¦  «        S )N)rz   r½   r¾   )r   )rŒ   r2   r  r}   r~   rz   r¾   r½   s           r3   Ú_defaultSwatchzLegend._defaultSwatch(  s*   € Ý�A�u˜b "Ø )Ø"-Ø"-ðñ ô ð 	r5   c                 ó4  — | j         }t          |¦  «        }|rOt          |dt          |dd ¦  «        ¦  «        }d }t          |¬¦  «        }|j        }|                      |¦  «        }n_t          | dd ¦  «        }t          |¦  «        r0t          |dt          |dd ¦  «        ¦  «        }t          |¬¦  «        }t          |¦  «        }| j        }| j        }| j	        }	| j
        }
| j        }| j        }| j        }| j        }| j        }| j        }| j        }| j        }| j        }|dz  }| j        }|st+          ||¦  «        | j        z   }| j        }|                      |¦  «        }t3          ||
z   dz
  |
dz  z  ¦  «        }||z   | j        z   }| j        }|r t9          d„ |D ¦   «         ¦  «        ||z  z   }n$t+          |d	         |z   |¦  «        }||z  }||gz  }| j        }| j        | j        z
  }|d
vr&|                      ¦   «         }|dv r	||dz  z  }n||z  }|dvr|dv r	||dz  z  }n||z  }|}tA          ¦   «         } tC          |¦  «        j"        j#        dz  }!|!dk    rd}!|!|z  }!|
dz
  }"t          | dd ¦  «        }#t          | dd ¦  «        }$| j$        }%|%r#| j%        }&| j&        }'| j'        }(| j(        })| j)        }*tU          |¦  «        D �]L}+|r|},|+|,_+        ||+         }-ni||+         \  },}-t          |¦  «        r	|},|+|,_+        t          |-¦  «        r7t          |dt          |dd ¦  «        ¦  «         ,                    |+d|+z  ¦  «        }-t[          |-¦  «        }.g }/|/j.        }0t3          |+|
dz  z  ¦  «        }1||1         }2|||!z
  dz  z   x}3}4|#r |#| | ||3|,|-f¦  «         |	dk    r|}5||2d	         z   |z   }6n |	dk    r||z   |z   }5|}6nt_          d¦  «        ‚ta          |-¦  «        s|.g}.tc          |-¦  «        }7|3}8te          |.¦  «        D �]\  }9}:|4}3|9dz  };|5|2|;         z   }<|5|2|;dz            z   }=||9|+f         }>|>j3        }?|>j        }@|>j        }At          |>d|¦  «        }Bt          |>d|¦  «        }Ct          |>d|¦  «        }D|>j4        pd|z  }E|B|k    r	|!|Cz  |z  }Fn)tC          |¦  «        j"        j#        dz  }F|Fdk    rd}F|F|Cz  }F|>j5        }G|Gdk    rd}Hn!|E |7t          |:¦  «        z
  z  }H|Gdk    r|Hdz  }H|?dk    rd}?|<}In|?dk    rd }?|=}In|?d!k    r|=}In
d}?d|<|=z   z  }I|:D ]/}J |0tm          |I|@z   |3|Az   |Hz   |J|B|C|D|?¬"¦  «        ¦  «         |3|Ez  }3Œ0to          |8|3¦  «        }8|3|Ez  }3|3t+          |E|Fz
  d¦  «        z
  d#f|3|Fz   d$ffD ]›\  }K}Lt          |>|Ld ¦  «        }M|Mrƒtq          |Mtr          tt          f¦  «        s|Mf}M|MD ]a}Ntw          j;        |N¦  «        }N|Nxj<        |Kz  c_<        |Nxj=        |Kz  c_=        |Nxj>        |<z  c_>        |Nxj?        |=z  c_?         |0|N¦  «         ŒbŒœ�Œ|6}5|8}3d|4z  |3z
  |z
  }O|%rÊ||z   |z   |2d	         z   |)d         z   }P||dz  z   |*z   }8|%dz  r|+|
z  s
|%dz  r7|+|
z  s2|  @                    tƒ          ||)d         z   |8|P|8|'|&|(¬%¦  «        ¦  «         |%d&z  rZ|+|
z  |"k    s	|+|dz
  k    rH|8t+          ||O¦  «        |z   z  }8|  @                    tƒ          ||)d         z   |8|P|8|'|&|(¬%¦  «        ¦  «         |5t          | d'd¦  «        z   }Q|t          | d(d¦  «        z   }Rt          |,¦  «        rIt          |,dt          |,dd ¦  «        ¦  «        }| B                    t          |,d)|+¦  «        |Q|R||¦  «        }Sn¤tq          |,t†          jD        ¦  «        rKt‹          |¦  «        rt�          ||Q|dz  z   |R|dz  z   |,¦  «        }Sn\|  G                    |Q|R|||,||¬*¦  «        }Sn?|,�;	 tw          jH        |,¦  «        }S|Q|S_        |R|S_        ||S_I        ||S_J        n#  d }SY nxY wd }S|Sr*|  @                    |S¦  «         |$r |$| | ||4|+|,|-f|S¦  «         |/D ]}T|  @                    |T¦  «         Œ| jK        ro|+|
z  |"k    s	|+|dz
  k    r]|	dk    r|}Un||z   |z   }U||dz  z   |*z   t+          ||O¦  «        |z   z
  }8|  K                    | | ||U|8|2d	         |2d	         |z   |z   ¦  «         |+|
z  |"k    r|r||2d	         |z   z  }n||z   }|}�Œ6|t+          ||O¦  «        z
  |z
  }�ŒN| S )+Nré   rð   )rð   r¿   r  r'   g      ð?c                 ó   — g | ]
}|d          ‘ŒS )rX   rL   rú   s     r3   rG   zLegend.draw.<locals>.<listcomp>U  s   € Ð1Ð1Ð1 1˜˜2œÐ1Ð1Ð1r5   rX   )Úner,   rÛ   Úautoy)ÚeÚcÚwg       @)rÛ   r  ÚswÚautox)r,   r  r:   rÃ   r   r   r  rÀ   rÏ   rò   rÜ   ri   rj   zbad alignmentrQ   rR   rz   ru   rw   ÚstartÚendrm   ©rQ   rR   rz   Ú
textAnchorr{   r|   ©r½   r¾   ÚstrokeDashArrayrÅ   rÐ   rÑ   Úindex)rz   r¾   r½   )Lr¼   r   r[   r   rô   rö   r)   r}   r~   r»   rº   r³   r´   rµ   rQ   rR   rz   r¾   r½   r^   r¹   r(   r¸   rÁ   rþ   Úintr¶   rÂ   Úsumr2   rŸ   r  r   r   r  r  rƒ   rÉ   rÊ   rË   rÌ   rÍ   r+   r!  ró   rI   rZ   Ú
ValueErrorr!   rO   r*   rx   ry   r   r   r  Ú
isinstancerH   r=   ÚcopyÚy1Úy2Úx1Úx2Úaddr   ÚmakeSwatchSampler   ÚColorr    r   r  Údeepcopyr¯   ÚheightrÎ   )VrŒ   r¼   ÚautoCPré   r¿   r,   Ú
chartTextsr}   r~   r»   rº   r³   r´   rµ   rQ   rR   rz   r¾   r½   r^   ry   r¹   ÚbaÚmaxWidthÚnColsÚxWrÂ   r¯   rž   r  r/  r  r�   r  r  rÀ   Úscalloutrƒ   rÉ   rÊ   rË   rÌ   rÍ   r1   r¡   r¢   rN   r_   r`   ra   ÚjOffsrŸ   r  r2   ÚxnÚ	lineCountÚydÚkrä   Úkkr)  r*  rc   ÚanchorÚscdxÚscdyrV   rW   ÚfCÚfLÚfAÚvAÚvAdyÚxoffsrb   Úiyr0   ÚilÚlr  ÚxdÚswatchXÚswatchYr  r:   r®   sV                                                                                         r3   ÚdrawzLegend.draw/  sb  € ØÔ,ˆÝ˜Ñ'Ô'ˆØð 	$Ý˜N¨7µ7¸>È%ÐPTÑ3UÔ3UÑVÔVˆEØˆLÝ˜e�_‘_”_ˆFØÔ"ˆAØŸš¨Ñ7Ô7ˆJˆJå" 4¨°tÑ<Ô<ˆLÝ�lÑ#Ô#ð /Ý ¨WµW¸\È%ÐPTÑ5UÔ5UÑVÔV�Ý#¨˜™œ�Ý�NÑ#Ô#ˆAØŒWˆØŒWˆØ”Nˆ	ØÔ*ˆØ”ˆØ”ˆØÔ&ˆØ”=ˆØ”=ˆØ”Nˆ	ØÔ&ˆØÔ&ˆØ”,ˆØ˜3‘,ˆØŒyˆØð 	7Ý˜˜G‘_”_ TÔ%6Ñ6ˆFØŒ^ˆØ×/Ò/°Ñ?Ô?ˆÝ�Q�}‘_ QÑ&¨°sÑ):Ñ;Ñ<Ô<ˆØ�‰^˜DÔ-Ñ-ˆØ”_ˆ
Øð 	(ÝÐ1Ð1¨Ð1Ñ1Ô1Ñ2Ô2°2°e±8Ñ;ˆEˆEå˜ "œ b™¨Ñ0Ô0ˆFØ˜&‘LˆEØ˜h˜ZÑ'ˆHà”ˆØ”˜œÑ ˆØÐ,Ð,Ð,Ø×%Ò%Ñ'Ô'ˆFØ�]Ð"Ð"Ø˜ ™Ñ"��à˜‘�ØÐ,Ð,Ð,Ø�]Ð"Ð"Ø˜˜q™Ñ ��à˜‘�Øˆ
å‰GŒGˆå�xÑ Ô Ô%Ô,¨UÑ2ˆØ�1Š9ˆ9˜U�fØ�(Ñˆà˜aÑˆÝ˜$˜y¨Ñ.Ô.ˆÝ˜4 °Ñ5Ô5ˆØÔ(ˆØð 	-ØÔ,ˆLØÔ,ˆLØ#Ô4ÐØÔ,ˆLØÔ,ˆLå�q‘”ð T	;ñ T	;ˆAØð 
{Ø�Ø�”	Ø! !”}��à*¨1Ô-‘	��TÝ˜,Ñ'Ô'ð "Ø&�CØ !�C”IÝ˜$‘<”<ð {Ý" <°½ÀÈUÐSWÑ8XÔ8XÑYÔY×gÒgÐhiÐjuÐxyÑjyÑzÔz�DÝ˜$‘”ˆAØˆAØ”ˆBÝ�A�} SÑ(Ñ)Ñ*Ô*ˆAØ˜Q”KˆEð ˜B˜v™I s™?Ñ*Ð*ˆA�àÐ:˜˜  Q u¨Q°°D¨zÑ:Ô:Ð:Ø˜FÒ"Ð"Ø�Ø˜5 œ9‘_ [Ñ0��Ø˜gÒ%Ð%Ø˜"‘H˜[Ñ(�Ø��å  Ñ1Ô1Ð1Ý˜‘;”;ð Ø�C�Ý% dÑ+Ô+ˆIØˆBÝ$ Q™<œ<ð 5"ñ 5"‘��%Ø�Ø�q‘S�Ø�u˜R”y‘[�Ø�u˜R ™T”{‘]�Ø˜Q˜q˜S”\�Øœ�Ø”u�Ø”u�Ý˜R 
¨8Ñ4Ô4�Ý˜R 
¨8Ñ4Ô4�Ý˜R ¨IÑ6Ô6�Ø”ZÐ/ 3 x¡<�Ø�x’<�<Ø  ™) XÑ-�B�Bå  Ñ*Ô*Ô/Ô6°uÑ<�BØ˜1’u�u ˜bØ˜"‘H�Bà”Y�Ø�u’9�9Ø�D�Dà˜3 )­c°%©j¬jÑ"8Ñ9�DØ˜8’|�| T¨S¡[ Tà˜6’>�>Ø$�FØ�E�EØ˜W’_�_Ø"�FØ�E�EØ˜YÒ&Ð&Ø�E�Eà%�FØ  B¡™K�EØð ð �AØ�B•v˜e D™j¨¨4©°©°QÀÈBÐY[ÐjpÐqÑqÔqÑrÔrÐrØ˜‘G�A�AÝ˜˜A‘Y”Y�Ø�R‘�Ø ¥ R¨¡U¨1¡¤™~¨lÐ;¸Q¸r¹TÀ+Ð<NÐOð 
"ð 
"‘E�B˜Ý   A dÑ+Ô+�BØð "Ý)¨"­eµD¨\Ñ:Ô:ÐFÀ"À¸BØ!#ð "ð "˜AÝ $¤	¨!¡¤˜AØ˜DœD B™J˜DœDØ˜DœD B™J˜DœDØ˜DœD B™J˜DœDØ˜DœD B™J˜DœDØ˜B˜q™EœE˜E˜Eøñ
"ð ˆAØˆAØ˜B™$˜q™& ™,ˆKàð 
oØ˜2‘X˜kÑ)¨%°¬)Ñ3°LÀ´OÑC�Ø˜2˜c™6‘\ ,Ñ.�Ø! !‘^ð o¨¨=©ð o¸|ÈA¹~ð oÐWXÐYfÑWfð oØ—E’E�$˜u \°!¤_Ñ4°R¸¸2Ø$0¸lÐ\lðnñ nô nñ oô oð oð ! ‘Nð o¨¨=©¸#Ò)=Ð)=ÀÀQÀqÁSÂÀØ�#˜f [Ñ1Ô1°$Ñ6Ñ6�BØ—E’E�$˜u \°!¤_Ñ4°R¸¸2Ø$0¸lÐ\lðnñ nô nñ oô oð oð �' $ v¨aÑ0Ô0Ñ0ˆGØ�g d¨6°!Ñ4Ô4Ñ4ˆGå�c‰{Œ{ð Ý  G­G°C¸¸dÑ,CÔ,CÑDÔD�Ø×*Ò*­7°3°w¸qÑ+AÔ+AÀ'È'ÐRTÐUWÑXÔX��Ý˜C¥¤Ñ.Ô.ð Ý˜LÑ)Ô)ð AÝ& |°G¸B¸r¹E±MÀ'È"ÈRÉ%Á-ÐPSÑTÔT�A�Aà×+Ò+¨G°G¸B¸rÈCÐ\gÐtÐ+ñ  Aô  A�A�AØ�ðÝœ cÑ*Ô*�AØ!�A”CØ!�A”CØ �A”GØ!�A”H�HøðØ�A�A�Aøøøà�àð FØ—’�a‘”�ØÐE˜X˜X d¨1¨U°2°a¸¸T¸
À1ÑEÔEÐEàÐ Ð �˜Ÿš˜a™œ˜˜ØÔ!ð ` q¨¡¸Ò';Ð';¸qÀ1ÀQÁ3ºx¸xØ Ò&Ð&Ø�B�Bà˜r™ +Ñ-�BØ˜2˜c™6‘\ ,Ñ.µ#°f¸[Ñ2IÔ2IÈ$Ñ2NÑO�Ø×"Ò" 4¨¨E°2°r¸5À¼9ÀeÈBÄiÐPRÁlÐS^ÑF^Ñ_Ô_Ð_à�‰ Ò#Ð#Øð )Ø˜U 2œY r™\Ñ)�E�Eà! &™L�EØ"�‘à�c &¨Ñ5Ô5Ñ5°dÑ:�‘àˆs   ß%0`à`c                 óô   — t          dd¦  «        }t          ¦   «         }d|_        d|_        d|_        d|_        d                     ¦   «         }d„ |D ¦   «         }||_        |                     |d¦  «         |S )	zMake sample legend.éÈ   éd   ri   r   rÆ   z&red green blue yellow pink black whitec                 ó<   — g | ]}t          t          |¦  «        |f‘ŒS rL   )r[   r   )rF   r1   s     r3   rG   zLegend.demo.<locals>.<listcomp>  s'   € Ð8Ð8Ð8¨Q•'�& !Ñ$Ô$ aÐ(Ð8Ð8Ð8r5   r‘   )	r   r²   r»   r2   rŸ   rµ   rD   r¼   r+  )rŒ   Údr‘   Úitemss       r3   ÚdemozLegend.demo  s   € õ �C˜ÑÔˆå‘”ˆØ!ˆÔØˆŒØˆŒØˆÔØ8×>Ò>Ñ@Ô@ˆØ8Ð8°%Ð8Ñ8Ô8ˆØ %ˆÔà	�Šˆf�hÑÔÐàˆr5   rL   )r€   r�   r‚   Ú__doc__r„   r…   r   r   r   r   r   r   r   r    r   r
   r	   r   r†   rá   rß   rê   rì   rö   rþ   r  r  rL  rS  rL   r5   r3   r²   r²   w   s6  € € € € € ðð ð ˆwð #
ð #
ð #
ØˆL˜Ð(TÐUÑUÔUÐUð#
àˆL˜Ð(TÐUÑUÔUÐUð#
ð �˜nÐ3]Ð^Ñ^Ô^Ð^ð#
ð �˜nÐ3]Ð^Ñ^Ô^Ð^ð	#
ð
 #�l 8Ð2^Ð_Ñ_Ô_Ð_ð#
ð $�| HÐ3]ÐlmÐnÑnÔnÐnð#
ð $�| HÐ3ZÐijÐkÑkÔkÐkð#
ð ˆ|˜HÐ+HÐWXÐYÑYÔYÐYð#
ð ˆ\˜(Ð)DÐEÑEÔEÐEð#
ð ˆ\˜(Ð)EÐFÑFÔFÐFð#
ð %˜ XÐ4UÐVÑVÔVÐVð#
ð !�L   v¨wÑ!7Ô!7Ð>jÐkÑkÔkÐkð#
ð &˜ dÐ1gÐhÑhÔhÐhð#
ð  �< Ð/IÐJÑJÔJÐJð#
ð  �< Ð/IÐJÑJÔJÐJð#
ð  �,˜~°NÐCÑCÔCÐCð!#
ð" !�L Ð5MÐNÑNÔNÐNð##
ð$ #�l =Ð7UÐVÑVÔVÐVð%#
ð& #�l 8Ð2]Ð^Ñ^Ô^Ð^ð'#
ð( $�| F F¨6¨6°(Ñ+;Ô+;Ñ$<Ô$<ÐCnÐ}~ÐÑÔÐð)#
ð* �,˜tÐ*SÐbcÐdÑdÔdÐdð+#
ð, !�L Ð-OÑPÔPÐPð-#
ð. "�\ )Ð,_ÐnoÐpÑpÔpÐpð/#
ð0 $�| E E¨!¨A¨a°°!°A°a¸Ñ$:Ô$:ð  <Eð  TUð  Vñ  Vô  Vð  Vð1#
ð2 $�| HÐ3GÐVWÐXÑXÔXÐXð3#
ð4 $�| MÐ8LÐ[\Ð]Ñ]Ô]Ð]ð5#
ð6 (˜<Ð(=ÐDbÐqrÐsÑsÔsÐsð7#
ð8 $�| J J¨xÀÀQÈ!Ð$LÑ$LÔ$LÐSlÐ{|Ð}Ñ}Ô}Ð}ð9#
ð: $�| HÐ3JÐYZÐ[Ñ[Ô[Ð[ð;#
ð< %˜ TÐ0`ÐopÐqÑqÔqÐqð=#
ð> �,˜tÐ)?Ð@Ñ@Ô@Ð@ð?#
ð@ %˜ TÐ0gÐvwÐxÑxÔxÐxðA#
ðB ˆ|˜HÐ+QÐRÑRÔRÐRðC#
ðD ˆ|˜HÐ+QÐRÑRÔRÐRðE#
€HðJ4ð 4ð 4ðlð ð ðð ð ð
Bð Bð Bðð ð ð"ð "ð "ð !ð !ð !ð>ð ð ðbð bð bðHð ð ð ð r5   r²   c                   óH   — e Zd Zddedej        dej        dddddfd„Zd	„ ZdS )
ÚTotalAnnotatorÚTotalz0.0rÕ   rÜ   Nr   rÝ   c                 ó®   — || _         || _        || _        || _        || _        |
| _        |	| _        || _        || _        || _	        || _
        || _        d S r7   )ÚlTextÚrTextrQ   rR   rz   r~   r}   ÚdlyÚdlxr¾   r½   r   )rŒ   rY  rZ  rQ   rR   rz   r¾   r½   r   r}   r~   r[  r\  s                r3   rá   zTotalAnnotator.__init__&  sa   € ð ˆŒ
ØˆŒ
Ø ˆŒØ ˆŒØ"ˆŒØˆŒØˆŒØˆŒØˆŒØ&ˆÔØ&ˆÔØ.ˆÔÐÐr5   c                 ób  — ddl m}m}	 | j        }
| j        }| j        }| j        }| j        }t          |¦  «        j	        j
        dz  }|dk    rd}||
z  }|
dz  }|| j        z   |dz  z
  }| j        r,|r*|                      |||| j        ||
|d¬¦  «        ¦  «         | j        r-|                      |||z   || j        ||
|d	¬¦  «        ¦  «         |rZ|rZ|| j        z   |z
  }|                      |	|| j        d         z   ||| j        d
         z   |z   |||| j        ¬¦  «        ¦  «         d S d S d S )Nr   )r   r   r   r  r  gÍÌÌÌÌÌô?r  r  r  r'   r  )Úreportlab.graphics.shapesr   r   rR   rQ   rz   r½   r¾   r   r  r  r~   rY  r+  rZ  r[  r\  r   )rŒ   r‘   r�   r2   r®   rŸ   r¯   r°   r   r   rR   rQ   rz   r½   r¾   r  ry   ÚytÚyLs                      r3   r£   zTotalAnnotator.__call__6  sº  € Ø:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø”=ˆØ”=ˆØ”Nˆ	ØÔ&ˆØÔ&ˆÝ�xÑ Ô Ô%Ô,¨UÑ2ˆØ�1Š9ˆ9˜U�fØ�(ÑˆØ˜3‘,ˆØˆtŒw‰Y�v˜c‘zÑ!ˆØŒ:ð 	'˜)ð 	'Ø�EŠE�&�&˜˜B˜tœzØ!Ø!Ø#Ø$ð	&ñ &ô &ñ 'ô 'ð 'ð
 Œ:ð 	%Ø�EŠE�&�&˜˜E™ " T¤ZØ!Ø!Ø#Ø"ð	$ñ $ô $ñ %ô %ð %ð
 ð 	;˜;ð 	;Ø�4”8‘˜GÑ#ˆBØ�EŠE�$�$�q˜œ !œ‘} R¨¨$¬(°1¬+©°fÑ(<¸RØ +¸Ø$(Ô$8ð:ñ :ô :ñ ;ô ;ð ;ð ;ð ;ð	;ð 	;ð 	;ð 	;r5   )r€   r�   r‚   r%   r   rÞ   rá   r£   rL   r5   r3   rV  rV  %  sX   € € € € € Ø$¨E¸NÐUWØ”l°ÀÄÐ_cØ�Q˜A 5ð/ð /ð /ð /ð ;ð ;ð ;ð ;ð ;r5   rV  c                   óÜ   — e Zd ZdZ e eed¬¦  «         eed¬¦  «         eed¬¦  «         eed¬¦  «         eed¬¦  «         eed¬¦  «         ee	d	¬¦  «        ¬
¦  «        Z
d„ Zd„ ZdS )Ú
LineSwatchzHbasically a Line with properties added so it can be used in a LineLegendz(x-coordinate for swatch line start pointrg   z(y-coordinate for swatch line start pointzlength of swatch linezused for line strokeWidthzcolor of swatch linezthickness of the swatchzdash array for swatch line)r2   rŸ   r¯   r/  r½   r¾   r   c                 ót   — ddl m} d| _        d| _        d| _        d| _        || _        d | _        d| _        d S )Nr   )rÖ   rÔ   r'   )	Úreportlab.lib.colorsrÖ   r2   rŸ   r¯   r/  r½   r   r¾   )rŒ   rÖ   s     r3   rá   zLineSwatch.__init__`  sN   € Ø,Ð,Ð,Ð,Ð,Ð,ØˆŒØˆŒØˆŒ
ØˆŒØˆÔØ#ˆÔØˆÔÐÐr5   c                 óª   — t          | j        | j        | j        | j        z   | j        ¦  «        }| j        |_        | j        |_        | j        |_        |S r7   )r   r2   rŸ   r¯   r½   r   r¾   )rŒ   rH  s     r3   rL  zLineSwatch.drawj  sH   € Ý�”˜œ˜tœv d¤jÑ0°´Ñ8Ô8ˆØÔ(ˆŒØ!Ô1ˆÔØÔ(ˆŒØˆr5   N)r€   r�   r‚   rT  r„   r…   r   r   r   r	   r†   rá   rL  rL   r5   r3   rb  rb  T  sÔ   € € € € € ØRÐRØˆwØˆL˜Ð(RÐSÑSÔSØˆL˜Ð(RÐSÑSÔSØ�˜XÐ,CÐDÑDÔDØ�˜hÐ-HÐIÑIÔIØ"�l =Ð7MÐNÑNÔNØ"�l >Ð8QÐRÑRÔRØ&˜,Ð'<ÐC_Ð`Ñ`Ô`ðñ ô €Hðð ð ðð ð ð ð r5   rb  c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
LineLegendzÔA subclass of Legend for drawing legends with lines as the
    swatches rather than rectangles. Useful for lineCharts and
    linePlots. Should be similar in all other ways the the standard
    Legend class.
    c                 óV   — t                                | ¦  «         d| _        d| _        d S )NrÕ   rÃ   )r²   rá   r}   r~   rà   s    r3   rá   zLineLegend.__init__x  s(   € Ý�Š˜ÑÔÐð ˆŒØˆŒˆˆr5   c                 óv   — t          ¦   «         }||_        ||_        ||_        ||_        ||_        ||_        |S r7   )rb  r2   rŸ   r¯   r/  r½   r¾   )	rŒ   r2   r  r}   r~   rz   r¾   r½   rH  s	            r3   r  zLineLegend._defaultSwatch  s:   € Ý‰\Œ\ˆØˆŒØˆŒØˆŒØˆŒØ!ˆŒØ#ˆŒØˆr5   N)r€   r�   r‚   rT  rá   r  rL   r5   r3   rg  rg  q  s<   € € € € € ðð ðð ð ðð ð ð ð r5   rg  );Ú__version__rT  r&  Úreportlab.libr   Ú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.widgetbaser   r   r   r^  r   r   r   r   r   r   Ú"reportlab.graphics.widgets.markersr   r    Úreportlab.lib.utilsr!   r"   r#   r$   r%   r4   r;   r?   rI   rO   rd   rf   rˆ   r§   r¬   r²   rV  rb  rg  rL   r5   r3   ú<module>rr     sw  ðð
 €ØJ€à €€€à  Ð  Ð  Ð  Ð  Ð  ðVð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð $Ð #Ð #Ð #Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ð
ð 
ð 
ðð ð ðð ð ð%ð %ð %ðð ð ðð ð ð*
ð 
ð 
ð 
ð 
�Zñ 
ô 
ð 
ð"ð ð ð ð ñ ô ð ðð ð ð ð ˜-ñ ô ð ðð ð ð ð ˜-ñ ô ð ðlð lð lð lð lˆVñ lô lð lð\-;ð -;ð -;ð -;ð -;Ð(ñ -;ô -;ð -;ð^ð ð ð ð �ñ ô ð ð:ð ð ð ð �ñ ô ð ð ð r5   