§
    £”j… ã            
       ól  — d Z dZddlZddlmZmZ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mZmZmZmZ ddlmZmZ ddl T 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, dd
l-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddddddddddœ	Z8ddddddddddœ	Z9dZ:de:z
  Z; G d„ de5¦  «        Z< G d„ de/¦  «        Z=dRd„Z>d„ Z? G d „ d!e1¦  «        Z@d"„ ZAd#„ ZBdSd%„ZCdTd(„ZDd)„ ZEd*„ ZFd+„ ZG ejH        eG¦  «        ZGd,„ ZIdRd-„ZJd.„ ZK ejH        eK¦  «        ZKd/„ ZLdRd0„ZMd1„ ZN G d2„ d3eO¦  «        ZP G d4„ d5e@¦  «        ZQ G d6„ d7eQ¦  «        ZRdd8lSmTZTmUZUmVZVmWZW  G d9„ d:e/¦  «        ZX G d;„ d<¦  «        ZYd=„ ZZ ejH        eZ¦  «        ZZ eUd>¦  «        Z[ G d?„ d@eQ¦  «        Z\dA„ Z]dB„ Z^dC„ Z_dD„ Z`dE„ ZadF„ ZbdG„ ZcdH„ ZddI„ ZedJ„ ZfdK„ ZgehdLk    rj	 ddliZiddMljmkZk eijl        d$d…         pdNgZlelD ]LZmem n                    dO¦  «        remndPemz  Zo  ep¦   «         eo         ¦   «         Zq ekjr        eqdQeoz  ¦  «         ŒKdS dS )Uz3.3.0z|Basic Pie Chart class.

This permits you to customize and pop out individual wedges;
supports elliptical and circular pies.
é    N)ÚsinÚcosÚpi)Úcolors)ÚisNumberÚisListOfNumbersOrNoneÚisListOfNumbersÚisColorOrNoneÚisStringÚisListOfStringsOrNoneÚOneOfÚ	isBooleanÚisListOfColorsÚisNumberOrNoneÚisNoneOrListOfNoneOrStringsÚisTextAnchorÚisNoneOrListOfNoneOrNumbersÚisBoxAnchorÚisStringOrNoneÚNoneOrÚEitherOrÚisNumberInRangeÚ
isCallable)ÚuSymbol2SymbolÚisSymbol)Ú*)ÚGroupÚDrawingÚEllipseÚWedgeÚStringÚSTATE_DEFAULTSÚArcPathÚPolygonÚRectÚPolyLineÚLine)ÚTypedPropertyCollectionÚ
PropHolder)ÚPlotArea)Ú_objStr)ÚLabel©ÚcmpÚwÚswÚsÚseÚeÚneÚnÚnw)	r   é-   éZ   é‡   é´   éá   é  i;  éÓÿÿÿgH¯¼šò×z>g     €v@c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
WedgeLabelc                 ó   — d S ©N© ©ÚselfÚbas     úr/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/charts/piecharts.pyÚ	_checkDXYzWedgeLabel._checkDXY,   s   € Øˆó    c                 ó4  — | j         }|dv rŒt          | j        dz  dz  ¦  «        dz  dz  }|dz  s-| j        |z
  dz  }t          |¦  «        dk    r||dk    rdpdz  }t	          | d	d ¦  «        rt
          pt          |         }|                      |¦  «         |S )
N)ÚautoxÚautoyéh  g     €F@r7   r8   é   r   r=   Ú_anti)Ú	boxAnchorÚintÚ_pmvÚabsÚgetattrÚ_ANGLE2RBOXANCHORÚ_ANGLE2BOXANCHORrG   )rD   rE   ÚnaÚdas       rF   Ú_getBoxAnchorzWedgeLabel._getBoxAnchor.   s³   € ØŒ^ˆØÐ"Ð"Ð"Ý�t”y ‘} cÑ)Ñ*Ô*¨2Ñ-¨sÑ2ˆBØ˜‘Gð /Ø”i "‘n¨Ñ+�Ý�r‘7”7˜1’9�9Ø˜2˜aš4˜; BÐ-¨#Ñ.�BÝ˜$˜w tÑ,Ô,ÐBÕ1BÐVÕFVÐXZÔ[ˆBØ�NŠN˜2ÑÔÐØˆ	rH   N)Ú__name__Ú
__module__Ú__qualname__rG   rX   rB   rH   rF   r?   r?   +   s2   € € € € € ðð ð ð
ð 
ð 
ð 
ð 
rH   r?   c                   óR  — e Zd ZdZ edei d eed¬¦  «        “d eed¬¦  «        “d eed¬¦  «        “d	 eed
¬¦  «        “d e e	ddd¦  «        d¬¦  «        “d e e	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d)¬¦  «        “d* eed+¬¦  «        “d, eed-¬¦  «        “d. eed/¬¦  «        “d0 eed1¬¦  «        “d2 eed3¬¦  «        “d4 eed5¬¦  «        “d6 eed7¬¦  «        “d8 eed9¬¦  «        “d: eed;¬¦  «        “d< eed=¬¦  «        “d> eed?¦  «        “d@ eedA¦  «        “dB eedC¦  «        “dD eedE¦  «        “dF eedG¦  «        “dH eedI¬¦  «        “dJ eedK¬¦  «        “dL eedM¬¦  «        “dN eedO¬¦  «        “dP eedQ¬¦  «        “dR e ee¦  «        dSd¬T¦  «        “dU eedV¦  «        “dW eedX¬¦  «        “dY eedZ¬¦  «        “d[ e e	d\d]¦  «        d^¬¦  «        “d_ e e	d`dadb¦  «        dc¬¦  «        “ŽZdd„ Zd`S )fÚWedgePropertiesá,  This holds descriptive information about the wedges in a pie chart.

    It is not to be confused with the 'wedge itself'; this just holds
    a recipe for how to format one, and does not allow you to hack the
    angles.  It can format a genuine Wedge object for you with its
    format method.
    ÚstrokeWidthzWidth of the wedge border©ÚdescÚ	fillColorzFilling color of the wedgeÚstrokeColorzColor of the wedge borderÚstrokeDashArrayzZStyle of the wedge border, expressed as a list of lengths of alternating dashes and blanksÚstrokeLineCapr   é   é   z#Line cap 0=butt, 1=round & 2=squareÚstrokeLineJoinz$Line join 0=miter, 1=round & 2=bevelÚstrokeMiterLimitz$Miter limit control miter line joinsÚpopoutz How far of centre a wedge to popÚfontNamez"Name of the font of the label textÚfontSizez,Size of the font of the label text in pointsÚ	fontColorz#Color of the font of the label textÚlabelRadiuszpDistance between the center of the label box and the center of the pie, expressed in times the radius of the pieÚlabel_dxzX Offset of the labelÚlabel_dyzY Offset of the labelÚlabel_anglezQAngle of the label, default (0) is horizontal, 90 is vertical, 180 is upside downÚlabel_boxAnchorzAnchoring point of the labelÚlabel_boxStrokeColorzBorder color for the label boxÚlabel_boxStrokeWidthzBorder width for the label boxÚlabel_boxFillColorzFilling color of the label boxÚlabel_strokeColorzBorder color for the label textÚlabel_strokeWidthzBorder width for the label textÚ
label_textzText of the labelÚlabel_leadingÚ Úlabel_widthzWidth of the labelÚlabel_maxWidthz#Maximum width the label can grow toÚlabel_heightzHeight of the labelÚlabel_textAnchorz$Maximum height the label can grow toÚlabel_visibleú True if the label is to be drawnÚlabel_topPaddingzPadding at top of boxÚlabel_leftPaddingzPadding at left of boxÚlabel_rightPaddingzPadding at right of boxÚlabel_bottomPaddingzPadding at bottom of boxÚlabel_simple_pointerzSet to True for simple pointersÚlabel_pointer_strokeColorzColor of indicator lineÚlabel_pointer_strokeWidthzStrokeWidth of indicator lineÚlabel_pointer_elbowLengthz&Length of final indicator line segmentÚlabel_pointer_edgePadz!pad between pointer label and boxÚlabel_pointer_piePadz!pad between pointer label and pieÚswatchMarkerz!None or makeMarker('Diamond') ...©ra   ÚadvancedUsageÚvisiblezSet to false to skip displayingÚshadingAmountz"amount by which to shade fillColorÚshadingAnglez6shading changes at multiple of this angle (in degrees)ÚshadingDirectionÚnormalÚantiz2Whether shading is at start or end of wedge/sectorÚshadingKindNÚlightenÚdarkenzuse colors.Whiter or Blackerc                 óâ  — d| _         d | _        t          d         | _        t          d         | _        d| _        d| _        d| _        d| _        t          d         | _	        t          d         | _
        t          d         | _        d| _        dx| _        x| _        | _        d | _        dx| _        x| _        x| _        | _        d	| _        d | _        d
| _        d | _        d | _        d| _        d x| _        x| _        x| _        | _        d| _        d| _         d| _!        tD          j#        | _$        d
| _%        d| _&        d| _'        d| _(        d| _)        d | _*        d
| _+        d| _,        d| _-        d S )Nr   rc   rd   rf   rk   rl   rb   ç333333ó?rJ   ç      à?çš™™™™™¹?Ústarté   rg   g@¤ß¾ @r’   ).r_   rb   r"   rc   rd   rh   re   ri   rj   rk   rl   rm   rn   ro   rp   rq   rx   r�   r‚   rƒ   r„   rr   rs   rt   ru   rv   rw   ry   r{   r|   r}   r~   r…   r   r   Úblackr†   r‡   rˆ   r‰   rŠ   rŽ   r”   r�   r�   r‘   ©rD   s    rF   Ú__init__zWedgeProperties.__init__q   st  € ØˆÔØˆŒÝ)¨-Ô8ˆÔÝ-Ð.?Ô@ˆÔØˆÔØˆÔØ !ˆÔØˆŒÝ& zÔ2ˆŒÝ& zÔ2ˆŒÝ'¨Ô4ˆŒØˆÔØ;<Ð<ˆŒÐ<˜œ¨Ô(8ØˆŒØnoÐoˆÔÐo Ô 6Ðo¸Ô9PÐSWÔSkØ&ˆÔØ$(ˆÔ!Ø$'ˆÔ!Ø"&ˆÔØ!%ˆÔØ!$ˆÔØ]aÐaˆÔÐa Ô 0Ða°4Ô3FÈÔIZØ 'ˆÔØ$%ˆÔ!ØˆÔÝ)/¬ˆÔ&Ø),ˆÔ&Ø)*ˆÔ&Ø%&ˆÔ"Ø$%ˆÔ!ØˆŒØˆÔØ ˆÔØ"ˆÔØ (ˆÔÐÐrH   rB   )rY   rZ   r[   Ú__doc__ÚAttrMapÚAttrMapValuer   r
   r   r   r   r   r   r   r   r   r   r   Ú_attrMaprŸ   rB   rH   rF   r]   r]   :   s³  € € € € € ðð ð ˆwð -
ð -
ð -
Ø"�l 8Ð1LÐMÑMÔMÐMð-
à �L Ð4PÐQÑQÔQÐQð-
ð #�l =Ð6QÐRÑRÔRÐRð-
ð '˜,Ð'<ð  C_ð  `ñ  `ô  `ð  `ð	-
ð
 %˜ U U¨1¨Q¨q¡\¤\Ð7\Ð]Ñ]Ô]Ð]ð-
ð &˜ e e¨A¨a°¡l¤lÐ8^Ð_Ñ_Ô_Ð_ð-
ð (˜<¨Ð6\Ð]Ñ]Ô]Ð]ð-
ð �˜hÐ,NÐOÑOÔOÐOð-
ð  �< Ð.RÐSÑSÔSÐSð-
ð  �< Ð.\Ð]Ñ]Ô]Ð]ð-
ð !�L Ð4YÐZÑZÔZÐZð-
ð #�l 8ð  2dð  eñ  eô  eð  eð-
ð  �< Ð.EÐFÑFÔFÐFð-
ð  �< Ð.EÐFÑFÔFÐFð-
ð #�l 8ð  2Eð  Fñ  Fô  Fð  Fð-
ð  '˜, {Ð8VÐWÑWÔWÐWð!-
ð"  ,˜|¨MÐ?_Ð`Ñ`Ô`Ð`ð#-
ð$  ,˜|¨HÐ:ZÐ[Ñ[Ô[Ð[ð%-
ð& *˜\¨-Ð=]Ð^Ñ^Ô^Ð^ð'-
ð( )˜L¨Ð<]Ð^Ñ^Ô^Ð^ð)-
ð* )˜L¨Ð7XÐYÑYÔYÐYð+-
ð, "�\ .Ð6IÐJÑJÔJÐJð--
ð. %˜ ^¸Ð<Ñ<Ô<Ð<ð/-
ð0 #�l >Ð7KÐLÑLÔLÐLð1-
ð2 &˜ nÐ:_Ð`Ñ`Ô`Ð`ð3-
ð4 $�| NÐ8MÐNÑNÔNÐNð5-
ð6 (˜<¨Ð:`ÐaÑaÔaÐað7-
ð8 %˜ YÐ4VÐWÑWÔWÐWð9-
ð: (˜<¨Ð1HÑIÔIÐIð;-
ð< )˜L¨Ð2JÑKÔKÐKð=-
ð> *˜\¨(Ð3LÑMÔMÐMð?-
ð@ +˜l¨8Ð4NÑOÔOÐOðA-
ðB  ,˜|¨IÐ6WÑXÔXÐXðC-
ðD %1 L°ÐD]Ð$^Ñ$^Ô$^Ð$^ðE-
ðF %1 L°Ð?^Ð$_Ñ$_Ô$_Ð$_ðG-
ðH %1 L°Ð?gÐ$hÑ$hÔ$hÐ$hðI-
ðJ !- ¨XÐ;^Ð _Ñ _Ô _Ð _ðK-
ðL  ,˜|¨HÐ:]Ð^Ñ^Ô^Ð^ðM-
ðN $�| F F¨8Ñ$4Ô$4Ð;^ÐmnÐoÑoÔoÐoðO-
ðP �,˜yÐ)JÑKÔKÐKðQ-
ðR %˜ ^Ð9]Ð^Ñ^Ô^Ð^ðS-
ðT $�| HÐ2jÐkÑkÔkÐkðU-
ðV (˜<¨¨¨h°vÑ(>Ô(>ÐDxÐyÑyÔyÐyðW-
ðX #�l 5 5¨¨i¸Ñ#AÔ#AÐGeÐfÑfÔfÐfðY-
€Hð^#)ð #)ð #)ð #)ð #)rH   r]   c                 óª  — | j         rnt          |||¦  «        }| j        sd|_        n>t	          |¦  «        dk     s|dk    r|dk     sd|cxk     rdk     rn nd|_        nd|_        ||_        d	|_        �n¹|€t          | d
t          ¦  «        } |¦   «         }||_        ||_	        ||_
        |j        |_        | j        s|j        |_        |j        |_        nx|j        €| j        dz  }n
|j        dz  }|j        €||_        n|j        |z   |_        t	          |¦  «        dk     s|dk    r|dk     sd|cxk     rdk     rn nd|_        nd|_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        }	|	€|}	|	|_        |j         |_!        |j"        |_#        |j$        |_%        |j&        |_'        |j(        |_        |j)        |_*        |j+        |_,        |j-        |_.        |j/        |_0        |j1        |_2        |j3        |_        |j        |_        |j4        |_4        |j5        |_6        |S )NÚmiddler8   r<   éÂ  é>þÿÿéòþÿÿr›   Úendr   Ú
labelClassg      @r/   r3   )7ÚsimpleLabelsr!   Ú
sideLabelsÚ
textAnchorrR   rQ   Ú_simple_pointerrS   r?   ÚxÚyro   Údxrp   Údyrr   rO   rl   rq   Úanglers   ÚboxStrokeColorrt   ÚboxStrokeWidthru   ÚboxFillColorrv   rc   rw   r_   rx   Ú_textry   Úleadingr{   Úwidthr|   ÚmaxWidthr}   Úheightr~   r   rŽ   r�   Ú
topPaddingr‚   ÚleftPaddingrƒ   ÚrightPaddingr„   ÚbottomPaddingr…   rk   rm   rb   )
rD   Útextr³   ÚlabelXÚlabelYÚ
wedgeStylerª   ÚtheLabelÚsideLabels_dyr·   s
             rF   Ú_addWedgeLabelrÆ   –   sŒ  € àÔð 6CÝ˜& &¨$Ñ/Ô/ˆØŒð 	,Ø"*ˆHÔÐå�E‘
”
˜R’� e¨S¢j j°U¸3²Y°YÀDÈ%ÐDUÐDUÒDUÐDUÐQUÒDUÐDUÐDUÐDUÐDUØ&-�Ô#Ð#à&+�Ô#ØˆŒØ#$ˆÔ Ñ àÐÝ   lµ:Ñ>Ô>ˆJØ�:‘<”<ˆØˆŒØˆŒ
ØˆŒ
Ø Ô)ˆŒØŒð 	)Ø$Ô-ˆHŒKØ!+Ô!;ˆHÔÐàÔ"Ð*Ø $¤°Ñ 3��à *Ô 3°cÑ 9�ØÔ"Ð*Ø+�”�à(Ô1°MÑA�”Ý�E‘
”
˜R’� e¨S¢j j°U¸3²Y°YÀDÈ%ÐDUÐDUÒDUÐDUÐQUÒDUÐDUÐDUÐDUÐDUØ%(�Ô"Ð"à%(�Ô"Ø#Ô/ˆŒØ",Ô"AˆÔØ",Ô"AˆÔØ *Ô =ˆÔØ)Ô;ˆÔØ)Ô;ˆÔØÔ%ˆØˆ= $˜%ØˆŒØ%Ô3ˆÔØ#Ô/ˆŒØ&Ô5ˆÔØ$Ô1ˆŒØ(Ô9ˆÔØ%Ô3ˆÔØ(Ô9ˆÔØ)Ô;ˆÔØ *Ô =ˆÔØ!+Ô!?ˆÔØ#-Ô#BˆÔ Ø"Ô+€HÔØ"Ô+€HÔØ#Ô-€HÔØ€OrH   c                 ót   — | €dg|z  } n.|t          | ¦  «        z
  }|dk    rt          | ¦  «        dg|z  z   } | S )Nrz   r   )ÚlenÚlist)Úlabelsr5   Úis      rF   Ú
_fixLabelsrÌ   Ô   sF   € Ø€~Ø�˜‘ˆˆà�c�&‰kŒk‰MˆØˆQŠ3ˆ3�˜f™œ r d¨1¡fÑ,�Ø€MrH   c                   ó   — e Zd Zd„ Zdd„ZdS )ÚAbstractPieChartc           
      óò  — | j         }|t          |¦  «        z  }||         }t          |dt          |dd ¦  «        ¦  «        }	t          |dt          |dd ¦  «        ¦  «        }
t          |dt          |dd ¦  «        ¦  «        }t          |dt          |dd ¦  «        ¦  «        }t          |dt          |dd ¦  «        ¦  «        }|rt          |||dz  z   ||dz  z   |
¦  «        S t	          ||||||	||
¬¦  «        S )Nrc   rb   rd   r_   r‹   ç       @)r_   rc   rd   rb   )ÚslicesrÈ   rS   r   r%   )rD   ÚrowNor¯   r°   r¹   r»   Ú	baseStyleÚstyleIdxÚstylerc   rb   rd   r_   r‹   s                 rF   ÚmakeSwatchSamplez!AbstractPieChart.makeSwatchSampleÞ   s  € Ø”Kˆ	Ø�3˜y™>œ>Ñ)ˆØ˜(Ô#ˆÝ˜e ]µG¸IÀmÐTXÑ4YÔ4YÑZÔZˆÝ˜E ;µ¸	À+ÈdÑ0SÔ0SÑTÔTˆ	Ý! %Ð):½GÀIÐN_Ð`dÑ<eÔ<eÑfÔfˆÝ˜e ]µG¸IÀ}ÐUYÑ4ZÔ4ZÑ[Ô[ˆÝ˜u nµg¸iÈÐX\Ñ6]Ô6]Ñ^Ô^ˆØð 	QÝ! ,¨q°°r±©z¸!¸FÀ2¹I¹+ÀiÑPÔPÐPÝ�A�a˜˜f°ÈØ$3¸iðIñ Iô Ið 	IrH   Nc                 óž   — 	 t          | j        |         ¦  «        }n	#  |}Y nxY w| j        s t          | j        |         dd¦  «        }|�|}|S )zreturn series name i or defaultrx   rz   )r+   rÊ   r«   rS   rÑ   )rD   rË   ÚdefaultrÀ   r·   s        rF   ÚgetSeriesNamezAbstractPieChart.getSeriesNameì   s_   € ð	Ý˜4œ; qœ>Ñ*Ô*ˆDˆDøð	ØˆDˆDˆDøøøØÔ ð 	/Ý˜DœK¨œN¨<¸Ñ;Ô;ˆEØÐ ¨ $Øˆs   ‚ �#rA   )rY   rZ   r[   rÖ   rÙ   rB   rH   rF   rÎ   rÎ   Ü   s:   € € € € € ðIð Ið Ið	ð 	ð 	ð 	ð 	ð 	rH   rÎ   c                 óÜ   — | d         |d         dz
  k    pV|d         | d         dz
  k    pA| d         d|d         |d         z   z  dz
  k    p |d         d| d         | d         z   z  dz
  k     S )Nr   rg   g{®Gáz„?rf   r™   rœ   rB   )ÚPÚQs     rF   ÚboundsOverlaprÝ   ÷   sƒ   € Ø�Œt�A�a”D˜‘IŠ~Ðm  1¤ a¨¤d¨4¡i¢Ðm°1°Q´4¸¸aÀ¼dÀ1ÀQÄ4¹i¹È$Ñ8NÒ3NÐmÐRSÐTUÔRVÐX[Ð]^Ð_`Ô]aÐbcÐdeÔbfÑ]fÑXgÐimÑWmÒRmÐnÐnrH   c                 óL  — t          | ¦  «        }|g}	 |d         }|dz   |z  }||v st          | |         | |         ¦  «        sn|                     |¦  «         ŒG	 |d         }|dz
  |z  }||v st          | |         | |         ¦  «        sn|                     d|¦  «         ŒH|S )z find overlap run containing B[i]rf   éÿÿÿÿr   )rÈ   rÝ   ÚappendÚinsert)ÚBrË   Úwrapr5   ÚRÚjs         rF   Ú_findOverlapRunræ   ú   s½   € åˆA‰Œ€AØ	
ˆ€AðØˆbŒEˆØˆq‰S�!‰GˆØ�ˆ6ˆ6� q¨¤t¨A¨a¬DÑ1Ô1ˆ6°5Ø	�Š�‰Œˆð	ð
ØˆaŒDˆØˆq‰S�!‰GˆØ�ˆ6ˆ6� q¨¤t¨A¨a¬DÑ1Ô1ˆ6°5Ø	�Š��1‰Œˆð	ð
 €HrH   rf   c                 óª   — t          | ¦  «        }|dk    r=t          |dz
  ¦  «        D ]*}t          | ||¦  «        }t          |¦  «        dk    r|c S Œ+dS )z>determine a set of overlaps in bounding boxes B or return Nonerf   N)rÈ   Úrangeræ   )râ   rã   r5   rË   rä   s        rF   ÚfindOverlapRunré   
  s^   € åˆA‰Œ€AØˆ‚s€sÝ�q˜‘s‘”ð 	"ð 	"ˆAÝ  ! DÑ)Ô)ˆAÝ�1‰vŒv�aŠxˆx ˜˜˜ˆxØˆ4rH   Fç      ð?c           
      óB  ‡— t          | ¦  «        }|dk     rd S d„ | D ¦   «         }d}g }d}t          |dz   ¦  «        }|}|�sô|dk     �rët          |¦  «        Š‰sd S t          ‰¦  «        }	|	|k    rd S ˆfd„|D ¦   «         s|}d}
‰d         }‰d         }||         }t          | |         j        ¦  «        x}}‰dd …         D ]X}||         }t          |
t          |d         |d         z
  |d         |d         z
  ¦  «        ¦  «        }
|}|| |         j        z  }ŒY|t          |	¦  «        z  }t          | |         j        |z
  ¦  «        }t          |¦  «        }|
||	dz
  z  |z  z  }
‰D ]´}| |         }|j        }t          |j        |
t          |j        ¦  «        |z
  z  z   ¦  «        x}|_        |t          z  }|d         |d	         t          |¦  «        z  z   |_        |d
         |d         t          |¦  «        z  z   |_        |                     ¦   «         ||<   Œµ‰}|dz  }|dz  }|dk     �°éd S d S |dk     �rbt          |¦  «        Š‰sd S t          ‰¦  «        }	|	|k    rd S | d         }|j        }|d         }t          ‰¦  «        D �]\  }}| |         }|j        }|d         }d}d}||	dz
  k    sØ||k    s»|d         |d         k    r#|d         |d         k     r|d         |d         z
  }|d         |d         k    r#|d         |d         k     r|d         |d         z
  }||k    r#|xj        d|d         |d         z
  z  z  c_        n(||k    r"|xj        d|d         |d         z
  z  z  c_        |                     ¦   «         ||<   �Œ|dz  }|dk     �°`d S d S )Nrg   c                 ó(   — g | ]}|j         d          ‘ŒS )Úbounds)Ú	_origdata)Ú.0Úls     rF   ú
<listcomp>z$fixLabelOverlaps.<locals>.<listcomp>  s   € Ð*Ð*Ð* 1ˆŒ�XÔ	Ð*Ð*Ð*rH   rf   r   é   c                 ó   •— g | ]}|‰v ¯|‘Œ	S rB   rB   )rï   Úrrä   s     €rF   rñ   z$fixLabelOverlaps.<locals>.<listcomp>#  s   ø€ Ð,Ð,Ð,˜! Q¨! V V�A V V VrH   rß   ÚcxÚrxÚcyÚrygÍÌÌÌÌÌð?rí   rœ   r™   )rÈ   Úfloatré   Ú_360rQ   ÚmaxÚminrR   rî   Ú_180_pir   r¯   r   r°   Ú	getBoundsÚ	enumerate) ÚLr¬   Úmult0ÚnLrâ   ÚOKÚRPÚiterÚmultÚnRrW   Úr0ÚrLÚbiÚtaaÚaarô   ÚbÚutaaÚntaarð   Úorigr³   ÚradÚl1Úorig1Úbounds1rË   rí   Údiff1Údiff2rä   s                                   @rF   ÚfixLabelOverlapsr    s  ø€ Ý	ˆQ‰Œ€BØ	ˆ!‚t€tˆVˆVØ*Ð*¨Ð*Ñ*Ô*€AØ	
€BØ	€BØ€DÝ�%˜!‘)ÑÔ€EØ€Dàñ =Ø�2Šg‰gÝ˜qÑ!Ô!ˆAØˆO�e�eÝ�Q‘”ˆBØ�2Švˆv�u�uØ,Ð,Ð,Ð,˜rÐ,Ñ,Ô,ð Ø�ØˆBØ�1”ˆBØ�2”ˆBØ�2”ˆBÝ˜A˜bœEœJÑ'Ô'Ð'ˆC�"Ø�q�r�r”Uð  ð  �Ø�a”D�Ý˜�C  !¤ R¨¤U¡
¨2¨a¬5°°1´©:Ñ6Ô6Ñ7Ô7�Ø�Ø�a˜”d”i‘��Ø•E˜"‘I”I‘ˆBÝ�q˜”u”z #‘~Ñ&Ô&ˆDÝ˜‘:”:ˆDØ�$˜˜1™‘+˜dÑ"Ñ"ˆBàð %ð %�Ø�a”D�Ø”{�Ý!% a¤f¨Rµ°a´f±´¸b±Ñ-AÑ&AÑ!BÔ!BÐB�˜œØ�G‘m�Ø˜4”j 4¨¤:­c°#©h¬hÑ#6Ñ6�”Ø˜4”j 4¨¤:­c°#©h¬hÑ#6Ñ6�”Ø—{’{‘}”}��!‘�ØˆBØ�D‰LˆDØ�A‰IˆDðA �2Šg‰gˆgˆgˆgˆgðF �2Šg‰gÝ˜qÑ!Ô!ˆAØˆO�e�eÝ�Q‘”ˆBØ�RŠxˆx˜˜Ø�2”ˆBØ”LˆEØ˜H”oˆGÝ  ‘|”|ð )ñ )‘��!Ø�a”D�Ø”{�Ø˜hœ�Ø�Ø�Ø˜B˜q™D’y�yØ! WÒ,Ð,Ø! !œ9 W¨Q¤ZÒ/Ð/°G¸A´J¸vÀa¼yÒ4HÐ4HØ$*¨1¤I¨g°a¬jÑ$8˜EØ" 1œ: f¨Q¤iÒ/Ð/°F¸1´I¸gÀa¼jÒ4HÐ4HØ$+¨A¤J¨v°a¬yÑ$8˜EØ  5š=˜=Ø˜CœC # w¨q¤z°'¸!´*Ñ'<Ñ"=Ñ=˜CœC˜CØ" eš^˜^Ø˜CœC 3¨°¬
°7¸1´:Ñ(=Ñ#>Ñ>˜CœCØŸ;š;™=œ=�A�a‘DùØ�A‰IˆDð3 �2Šg‰gˆgˆgˆgˆgrH   c                 óÂ   — t          t          | ¦  «        t          |¦  «        ¦  «        t          t          | ¦  «        t          |¦  «        ¦  «        }}||k    rd S ||fS rA   )rû   rü   )ÚArâ   r¯   r°   s       rF   ÚintervalIntersectionr  \  sM   € Ý
�c�!‰fŒf•S˜‘V”VÑ
Ô
�S¥ Q¡¤­¨A©¬Ñ/Ô/€a€AØˆ!‚t€t�D�DØˆQˆ3€JrH   c                 ó<  — | dz  } d| cxk    rdk     r'n n$|dk    rdd| fddd| z   dff}nZd| dfd	dd
d| z   ff}nK| dk    rdpd}|dk    rd|dz
  | fd|dz
  |dz
  fdd| z   |dz
  ff}nd| |dz   fd|dz   |dz   fd|dz   d| z   ff}t          d„ |D ¦   «         ¦  «        S )NrL   r8   r<   Ú	clockwiser   )rf   é¦ÿÿÿr8   i˜þÿÿr  )rf   r<   r¦   r¦   rf   c                 ó6   — g | ]}|d          |d         k     ¯|‘ŒS )rf   rg   rB   ©rï   Úas     rF   rñ   z$_makeSideArcDefs.<locals>.<listcomp>n  s%   € Ð,Ð,Ð,˜ ! A¤$ q¨¤t¢) )�! ) ) )rH   )Útuple)ÚsaÚ	directionr   Úoffss       rF   Ú_makeSideArcDefsr%  a  s  € Øˆ#�I€BØ	ˆ2€z€z‚z€zˆc‚z€z€z€z€zØ�kÒ!Ð!Ø�2�b�	˜* a¨¨R©° _Ð4ˆAˆAà�2�c�
˜;¨¨#¨c°"©f ~Ð5ˆAˆAà�3Šwˆ˜3Ð# !ˆØ�kÒ!Ð!Ø�4˜‘7˜2�  $ s¡(¨4°©7Ð3°Q°t¸B±w¸tÀC¹xÐ4HÐHˆAˆAà�2�d˜2‘g�  $ r¡'¨$¨s©(Ð3°Q°t¸C±xÀÀBÁÐ4GÐGˆAÝÐ,Ð,˜QÐ,Ñ,Ô,Ñ-Ô-Ð-rH   c                 ó^   — t          |d         |d         z
  | d         | d         z
  ¦  «        S )Nrf   r   r-   )r¯   r°   s     rF   Ú_keyFLAr'  p  s*   € Ýˆq�Œt�A�a”D‰y˜˜1œ˜a œd™Ñ#Ô#Ð#rH   c                 ó”   ‡— ˆfd„| D ¦   «         }|sd S t          |¦  «        dk    r|                     t          ¬¦  «         |d         S )Nc                 óH   •— g | ]}|d          ‰k    ¯|d         ®|d         ‘ŒS ©r   rf   rB   )rï   r   Úsides     €rF   rñ   z#_findLargestArc.<locals>.<listcomp>u  s2   ø€ Ð@Ð@Ð@�!  !¤ d¢
 
¨q°¬tÐ/?ˆˆ1ŒÐ/?Ð/?Ð/?rH   rf   ©Úkeyr   )rÈ   Úsortr'  )ÚxArcsr+  r   s    ` rF   Ú_findLargestArcr0  t  sQ   ø€ Ø@Ð@Ð@Ð@�uÐ@Ñ@Ô@€AØÐ�T�TÝ
ˆ1�v„vˆa‚x€x�—’�G�Ñ$Ô$Ð$ØˆQŒ4€KrH   c                 óæ  — | j         }|€K|d         }|d         }|€d}|}n4|€d}|}n-|d         |d         z
  |d         |d         z
  k    rd}|}nd}|}|d         }|d         }|sd| _        ||z   | _        |d         }nd| _        ||z
  |z
  | _        |d         }|d         |d         z   dz  x}	|d	<   t          |	t          z  ¦  «        |d
<   t          |	t          z  ¦  «        |d<   ||d<   ||fS )NÚliÚrirf   r   r¹   ÚedgePadr:   r™   ÚmidÚsmidÚcmidr+  )rî   rQ   r¯   r   rý   r   )
rð   r¹   r+  Údatar2  r3  rË   r/   r4  r5  s
             rF   Ú_fPLSider9  z  s,  € ØŒ;€DØ€|Ø�$ŒZˆØ�$ŒZˆØˆ:ØˆDØˆAˆAØˆZØˆDØˆAˆAØ�ŒU�2�a”5‰[˜˜Aœ˜r !œu™Ò$Ð$ØˆDØˆAˆAàˆDØˆAØˆWŒ€AØ�9Œo€GØð ØˆŒØ�a‰iˆŒØ�ŒJˆˆàˆŒØ�a‰i˜'Ñ!ˆŒØ�ŒJˆØ˜1œ˜a œd™ C™Ð'€Cˆ$ˆu‰+Ý�s�7‘{Ñ#Ô#€Dˆ�LÝ�s�7‘{Ñ#Ô#€Dˆ�LØ€Dˆ�LØ�ˆ6€MrH   c                 óN   — t          |j        d         | j        d         ¦  «        S )Nr6  )r.   rî   ©r   r  s     rF   Ú_fPLCFr<  œ  s    € ÝˆqŒ{˜6Ô" 1¤;¨vÔ#6Ñ7Ô7Ð7rH   c                 ó   — | d         S )Nrf   rB   )r   s    rF   Ú_arcCFr>     s   € ØˆQŒ4€KrH   c                 óÔ  — g g f}ddg}|D ]J}	t          |	||¦  «        \  }
}||
                              |	¦  «         t          |||
         ¦  «        ||
<   ŒKd}| d gz  }d}|dz  }||z   }t          |¦  «        }dD �]Û}
||
         }|�rËg }|j        }g }|j        }|                     t          ¬¦  «         d}||z   }|D �] }	|	j        }||||d         z
  z  z   }|	xj        |z  c_        |	||d         <   ||d         |z  z   }|d	         }|d
         |d         z
  dz  }||z   |k    r||z
  }||z
  |k     r||z   }|d         ||z
  |d         ||z   fx|d	<   } ||¦  «         ||	_         |t          d||z
  |z
  ¦  «        ¦  «         ||z
  }t          ||d         |d         z   ¦  «        }t          |t          |d         ||d         z   z  ¦  «        |z
  ¦  «        }�Œ" |||z
  ¦  «         d}t          |¦  «        }|dk     �rEt          |d¬¦  «        } | s�n0t          | ¦  «        }!|!|k    r�n| d         }"| d         }#|#dz   }$t          |d |"dz   …         ¦  «        }%|%t          ||$d …         ¦  «        z   }&t          d„ ||"|$…         D ¦   «         ¦  «        |$z   |"z
  ||"         d
         ||#         d         z
  z
  }'|'|&k    rn„||"         d
         |%|'z  |&z  z   }| D ]c}(||(         }	|	j        }|d	         }|d
         |d         z
  dz  }|dz  }||z
  x}|	_        |d         ||z
  |d         |fx||(<   |d	<   ||z
  dz
  }Œd|dk     �°E||z   ||
<   d}�ŒÝ||d         |d         |fS )Nr   rf   r™   r*  r,  r¹   Úindexr6  rí   rœ   rg   r4  ÚpiePadÚelbowLengthrò   )rã   rß   c                 ó0   — g | ]}|d          |d         z
  ‘ŒS )rœ   rf   rB   )rï   r  s     rF   rñ   z%_fixPointerLabels.<locals>.<listcomp>Ù  s$   € Ð9Ð9Ð9¨1˜Q˜qœT ! A¤$™YÐ9Ð9Ð9rH   )r9  rà   rû   r.  r<  rî   r¯   r°   rR   rÈ   ré   Úsum))r5   r   r¯   r°   r¹   r»   r+  ÚLRÚmlrrð   rË   r/   ÚmulÚGÚmelÚhhÚyhhÚmÚTrâ   ÚaBÚSÚaSÚpÚyhr8  ÚincÚlyr  Úb2r  ÚnTrä   r  Új0Új1ÚjlÚsAboveÚsFreeÚsNeedrô   s)                                            rF   Ú_fixPointerLabelsr]  £  s  € Ø	ˆBˆ€BØˆQˆ%€CØð ð ˆÝ�q˜˜tÑ$Ô$‰ˆˆ!Ø
ˆ1Œ�Š�Q‰ŒˆÝ�Q�s˜1”v‘”ˆˆA‰ˆØ
€CØ	ˆ4ˆ&‰€AØ
€CØ	�‰€BØ
ˆB‰$€CÝˆC‰Œ€AØð 6ñ 6ˆØˆqŒEˆØñ 3	ØˆAØ”ˆBØˆAØ”ˆBØ�FŠF•vˆFÑÔÐØˆAØ�6‘ˆBØð Mñ M�Ø”{�Ø˜˜Q˜t Gœ}™_Ñ-Ñ-�Ø�”�s‘
�”Ø#$��$�w”-Ñ Ø˜˜fœ b™Ñ(�Ø˜”N�Ø˜”d˜1˜Qœ4‘i ‘_�Ø�b‘5˜’8�8 " R¡%˜RØ�b‘5˜’7�7  2¡˜BØ&'¨¤d¨2¨b©5°°1´°b¸±eÐ%<Ð<��X‘ Ø��1‘”�Ø�”Ø�•3�q˜˜B™˜r™‘?”?Ñ#Ô#Ð#Ø˜‘U�Ý˜˜$˜yœ/¨$¨x¬.Ñ8Ñ9Ô9�Ý˜#�c $ v¤,°°4¸Ô3FÑ0FÑ"GÑHÔHÈÑKÑLÔL�‘ØˆBˆr�!‰t‰HŒHˆHàˆDÝ�Q‘”ˆBØ�r’'‘'Ý" 1¨!Ð,Ñ,Ô,�Ø�™%Ý˜‘V”V�Ø�r’6�6™5Ø�q”T�Ø�r”U�Ø˜‘T�Ý˜Q˜u  1¡˜uœX™œ�Ø�s 1 R S S¤6™{œ{Ñ*�ÝÐ9Ð9°°"°R°%´Ð9Ñ9Ô9Ñ:Ô:¸2Ñ=¸bÑ@À!ÀBÄ%ÈÄ(È1ÈRÌ5ÐQRÌ8ÑBSÑT�Ø˜’;�; Ø�r”U˜1”X˜f U™l¨5Ñ0Ñ0�Øð 'ð '�AØ˜!œ�AØœ;�DØ˜Xœ�AØ˜Aœ$˜q œt™) S™�BØ˜#‘I�BØ! "™uÐ$�B˜œØ-.¨q¬T°"°R±%¸¸!¼¸RÐ,@Ð@�A�a‘D˜4 ™>Ø˜b™ 3™�B�Bð+ �r’'‘'ð, �q‘SˆC�‰FØˆ‰Øˆc�!Œf�c˜!”f˜cÐ!Ð!rH   c                 óŠ  ‡
‡— dt           z  t          | ¦  «        z  Š
ˆ
fd„| D ¦   «         }d}g }|D ]"Š|                     |‰dz  z   ¦  «         |‰z  }Œ#t          | ¦  «        dz  }d}t           dz  }t	          d¦  «        D ]6}||z  Št          ˆfd„|D ¦   «         ¦  «        }	|	|k     r|d	k    r‰ }n‰}|	}Œ7|d
z  t           z  S )Nrg   c                 ó   •— g | ]}|‰z  ‘ŒS rB   rB   )rï   ÚdÚfacs     €rF   rñ   ztheta0.<locals>.<listcomp>ë  s   ø€ Ð Ð Ð �aˆAˆc‰EÐ Ð Ð rH   r   r™   g    €„.Ag      B@é$   c                 óN   •— g | ]!}t          t          ‰|z   ¦  «        ¦  «        ‘Œ"S rB   )rR   r   )rï   r   rô   s     €rF   rñ   ztheta0.<locals>.<listcomp>ø  s)   ø€ Ð.Ð.Ð. 1••S˜˜1™‘X”X‘”Ð.Ð.Ð.rH   r  r:   )r   rD  rà   rÈ   rè   )r8  r#  Úradsr  ÚhradsÚvstarÚrstarÚdeltarË   Úvra  rô   s             @@rF   Útheta0rj  é  s  øø€ Ø�R‰4•�T‘”Ñ
€CØ Ð Ð Ð ˜4Ð Ñ Ô €Dà	
€BØ€EØð ð ˆØ�Š�R˜˜#™‘XÑÔÐØ
ˆa‰ˆˆå�‰IŒI�c‰M€EØ€EÝˆt‰G€EÝ�2‰YŒYð ð ˆØˆe‰GˆÝÐ.Ð.Ð.Ð.¨Ð.Ñ.Ô.Ñ/Ô/ˆØˆuŠ9ˆ9Ø˜KÒ'Ð'Ø�b��à�ØˆEøØ�‰9•R‰<ÐrH   c                   ó   — e Zd ZdZd„ ZdS )Ú	AngleDataz/use this to carry the data along with the anglec                 óJ   — t                                | |¦  «        }||_        |S rA   )rù   Ú__new__Ú_data)Úclsr³   r8  rD   s       rF   rn  zAngleData.__new__  s!   € Ý�}Š}˜S Ñ'Ô'ˆØˆŒ
ØˆrH   N)rY   rZ   r[   r    rn  rB   rH   rF   rl  rl    s)   € € € € € Ø9Ð9ðð ð ð ð rH   rl  c                   óè  — e Zd Z ed;i de“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¬¦  «        “d e e edd¦  «        e
f¦  «        dd¬¦  «        “d e e	ddd¦  «        dd¬¦  «        “d ee
dd¬¦  «        “d e e	d d!¦  «        d¬"¦  «        “d# eed$¬¦  «        “d% eed&¬¦  «        “d' eed(¬¦  «        “d) edd*d¬¦  «        “d+ ee
d,¬¦  «        “d- eed.¬¦  «        “d/ e ee¦  «        d0¬¦  «        “d1 eed2¬¦  «        “ŽZdZd3„ Zd4„ Zd5„ Zd<d7„Zd8„ Zd9„ Zd:„ ZdS )=ÚPieÚBASEr8  z7List of numbers defining wedge sizes; need not sum to 1r`   rÊ   z2Optional list of labels to use for each data pointÚ
startAnglez#Angle of first slice; 0 is due Eastr#  r  Úanticlockwisez'clockwise' or 'anticlockwise'rÑ   Nz&Collection of wedge descriptor objectsr«   zœIf true(default) use a simple String not an advanced WedgeLabel. A WedgeLabel is customisable using the properties prefixed label_ in the collection slices.Úother_thresholdz.A value for doing threshholding, not used yet.rf   rŒ   ÚcheckLabelOverlapgš™™™™™©?zFIf true check and attempt to fix
 standard label overlaps(default off)ÚpointerLabelModeÚ	LeftRightÚLeftAndRightrz   Ú	sameRadiiz,If true make x/y radii the same(default off)Ú	orderModeÚfixedÚ	alternate)r�   ÚxradiuszX direction RadiusÚyradiuszY direction RadiusÚinnerRadiusFractionz$fraction of radii to start wedges atÚwedgeRecordzcallable(wedge,*args,**kwds)r¬   zDIf true attempt to make piechart with labels along side and pointersÚsideLabelsOffsetzWThe fraction of the pie width that the labels are situated at from the edges of the pierª   z,A class factory to use for non simple labelsÚ
angleRangez3total degree range for the doughnut defaults to 360c           
      ó¦  — t          j        | ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dg d¢¦  «        ¦  «         t          | d	|                     d	d ¦  «        ¦  «         t          | d
|                     d
d¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd ¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd ¦  «        ¦  «         t          | d|                     dd ¦  «        ¦  «         t          | d|                     dd ¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dt	          t
          ¦  «        ¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          j        | j        d         _	        t          j
        | j        d         _	        t          j        | j        d         _	        t          j        | j        d          _	        t          j        | j        d!         _	        t          j        | j        d"         _	        t          j        | j        d#         _	        d S )$Nr¯   r   r°   r¹   éd   r»   r8  )rf   gffffff@g333333û?gÍÌÌÌÌÌ@rÊ   rt  r8   r#  r  r«   rf   rw  rx  r{  Fr|  r}  r  r€  r�  r¬   rƒ  rš   rÑ   r„  rL   rg   rœ   é   rM   é   )r*   rŸ   ÚsetattrÚpopr(   r]   r   ÚdarkcyanrÑ   rb   Ú
bluevioletÚblueÚcyanÚpinkÚmagentaÚyellow)rD   Úkwdss     rF   rŸ   zPie.__init__!  s  € ÝÔ˜$ÑÔÐÝ��S˜Ÿš # a™œÑ)Ô)Ð)Ý��S˜Ÿš # a™œÑ)Ô)Ð)Ý��W˜TŸXšX g¨cÑ2Ô2Ñ3Ô3Ð3Ý��X˜dŸhšh x°Ñ4Ô4Ñ5Ô5Ð5Ý��V˜DŸHšH V¨O¨O¨OÑ<Ô<Ñ=Ô=Ð=Ý��X˜dŸhšh x°Ñ5Ô5Ñ6Ô6Ð6Ý��\ $§(¢(¨<¸Ñ";Ô";Ñ<Ô<Ð<Ý��[ §¢¨+°kÑ!BÔ!BÑCÔCÐCÝ��^ D§H¢H¨^¸AÑ$>Ô$>Ñ?Ô?Ð?Ý�Ð(¨¯ªÐ2EÀaÑ)HÔ)HÑIÔIÐIÝ�Ð'¨¯ªÐ1CÀDÑ(IÔ(IÑJÔJÐJÝ��[ §¢¨+°eÑ!<Ô!<Ñ=Ô=Ð=Ý��[ §¢¨+°gÑ!>Ô!>Ñ?Ô?Ð?Ý��Y˜tŸxšx¨	°$Ñ7Ô7Ñ8Ô8Ð8Ý��Y˜tŸxšx¨	°$Ñ7Ô7Ñ8Ô8Ð8Ý�Ð*¨4¯8ª8Ð4IÈ$Ñ+OÔ+OÑPÔPÐPÝ��\ $§(¢(¨<¸Ñ":Ô":Ñ;Ô;Ð;Ý�Ð'¨¯ªÐ1CÀCÑ(HÔ(HÑIÔIÐIÝ��X˜dŸhšh xÕ0GÍÑ0XÔ0XÑYÔYÑZÔZÐZÝ��\ $§(¢(¨<¸Ñ"<Ô"<Ñ=Ô=Ð=å#)¤?ˆŒ�AŒÔ Ý#)Ô#4ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤>ˆŒ�AŒÔ Ý#)¤=ˆŒ�AŒÔ Ð Ð rH   c                 ó4  — t          dd¦  «        }t          ¦   «         }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|j        _	        d|j        d	         _
        d
|j        d	         _	        d
d
g|j        d	         _        d|j        d	         _        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d
         _        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        |                     |¦  «         |S ©NéÈ   r†  é2   é
   éP   ©r—  é   rò   é(   r–  é<   ©r   r  Úcr`  r3   Úfr™   rœ   rg   ç      ü?r   rf   r‡  rM   rˆ  )r   rr  r¯   r°   r¹   r»   r8  rÊ   rÑ   r_   rj   rd   rn   r   Úredrm   r‹  rb   rŒ  r�  rŽ  Ú
aquamarineÚ	cadetblueÚ
lightcoralÚadd©rD   r`  Úpcs      rF   ÚdemozPie.demo@  s.  € Ý�C˜ÑÔˆå‰UŒUˆØˆŒØˆŒØˆŒØˆŒ	Ø%Ð%Ð%ˆŒØ-Ð-Ð-ˆŒ	à!ˆŒ	ÔØ ˆŒ	�!ŒÔØ#$ˆŒ	�!ŒÔ Ø()¨! uˆŒ	�!ŒÔ$Ø#'ˆŒ	�!ŒÔ Ý!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'Ô!1ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔà	�Šˆb‰	Œ	ˆ	ØˆrH   c                 ó  ‡$—  G d„ d¦  «        }| j         dz
  }| j        }dx}x}x}x}	}
t          | j        ¦  «        }g }|j        }t          | j        | j        ¦  «        }|D �]¨\  }Š$‰$d         €Œ|                      |d¦  «        }|sŒ(| j        ||z           }|j	        r|j
        sŒG|dz  }t          | |d|||¦  «        } ||¦  «         |                     ¦   «         }|d         |d         z
  }|d         |d         z
  }ˆ$fd	„|D ¦   «         }t          |d¦  «        }t          |d¦  «        }|r…|rƒ|d
k    r*|d         |d         z
  |d         |d         z
  k     rd }nVd }nS|d         |d         z
  d|d         |d         z
  z  k     rd }n)|d         |d         z
  dz  |d         |d         z
  k    rd }|r|dz  }|r|dz  }t          |||||||j        |j        |j        ¬¦	  «	        |_        t'          ||	¦  «        }	|
|dz   z  }
�Œª|sl| j         dz  }| j        dz  }| j        |z   }| j        |z   }| j        r| j        }| j        r| j        }| j        rt3          ||¦  «        x}} |||||g ¦  «        S ||k    }|
| j        k     r|s||k    rt5          |¦  «        }nd }t7          t          |¦  «        || j        | j        | j         | j        |¬¦  «        \  }}} }!|d
k    rt'          || ¦  «        x}} | j        |z   }"| j        | j         z   | z
  }#|#|"z
  dz  }| j        dz  |!z
  }|"|z   }| j        |z   |!z   }| j        r| j        }| j        r| j        }| j        rt3          ||¦  «        x}} |||||||| ¦  «        S )Nc                   ó   — e Zd Zdd„ZdS )ú!Pie.makePointerLabels.<locals>.PLr   c                 óh   — || _         || _        || _        || _        || _        || _        || _        d S rA   )ÚcenterxÚcenteryr  r€  r8  ÚluÚru)rD   r­  r®  r  r€  r8  r¯  r°  s           rF   rŸ   z*Pie.makePointerLabels.<locals>.PL.__init__^  s7   € Ø&�”Ø&�”Ø&�”Ø&�”Ø �”	Ø�”Ø�”��rH   N)r   r   )rY   rZ   r[   rŸ   rB   rH   rF   ÚPLr«  ]  s(   € € € € € ðð ð ð ð ð rH   r±  rg   r   rf   rz   r:   rœ   c           	      ó\   •— g | ](}|d          t          ‰|d         |d         f¦  «        f‘Œ)S )r   rf   rg   )r  )rï   r   r  s     €rF   rñ   z)Pie.makePointerLabels.<locals>.<listcomp>z  s9   ø€ ÐNÐNÐNÀ�1�Q”4Õ,¨Q°°!´°Q°q´T¨{Ñ;Ô;Ð<ÐNÐNÐNrH   rz  g{®Gáz”?)	rí   r¹   r»   r2  r3  r@  r4  rA  rB  r™   )r+  )r¹   r»   rÈ   rÑ   rà   r%  rt  r#  rÙ   r   rŽ   rÆ   rþ   r0  Údictr‰   rŠ   rˆ   rî   rû   r¯   r°   r  r€  r{  rü   rP   r]  )%rD   ÚanglesÚplModer±  rÁ   rÂ   r5   ÚnrÚnlÚmaxWÚsumHÚ
styleCountr   ÚL_addÚrefArcsrË   ÚsnrÕ   rð   r  r/   Úhr3  r2  r  r€  r­  r®  ÚaonRr+  rH  r¯  r°  rI  Úx0Úx1r  s%                                       @rF   ÚmakePointerLabelszPie.makePointerLabels\  sE  ø€ ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð ”˜A‘ˆØ”ˆØ$%Ð%ˆÐ%ˆBÐ%�Ð%�d˜TÝ˜œÑ%Ô%ˆ
Ø
ˆØ”ˆÝ" 4¤?°4´>ÑBÔBˆØð 	ñ 	‰DˆAˆqØ�Œtˆ|˜XØ×#Ò# A bÑ)Ô)ˆBØÐ�xØ”K  *¡Ô-ˆEØÔ&ÐE¨e¬mÐE¸XØ�‰FˆAÝ˜T " S¨°°uÑ=Ô=ˆAØˆE�!‰HŒHˆHØ—’‘”ˆAØ�!”�Q�q”T‘	ˆAØ�!”�Q�q”T‘	ˆAØNÐNÐNÐNÀgÐNÑNÔNˆBÝ   AÑ&Ô&ˆBÝ   AÑ&Ô&ˆBØð 
"�bð 
"Ø˜>Ò)Ð)Ø˜!”u˜R œU‘{ 2 a¤5¨¨A¬¡;Ò.Ð.Ø!˜˜à!˜˜à˜!”u˜R œU‘{ 4¨¨A¬¨r°!¬u©Ñ#5Ò5Ð5Ø!˜˜Ø˜Qœ%  1¤™+ tÑ+¨B¨q¬E°"°Q´%©KÒ7Ð7Ø!˜ØˆN�2˜‘7�2ØˆN�2˜‘7�2Ý a¨a°q¸BÀ"È1ÐUZÔUpÐx}ô  ySð  `eô  `ð  @ñ  @ô  @ˆAŒKÝ�q˜‘;”;ˆDØ�A�a‘C‰KˆD‰Dàð 	:Ø”j ‘nˆGØ”k #‘oˆGØ”f˜W‘nˆGØ”f˜W‘nˆGØŒ|Ð3 t¤|˜WØŒ|Ð3 t¤|˜WØŒ~ÐC­s°7¸7Ñ/CÔ/CÐC˜w wØ�2�g˜g g¨g°bÑ9Ô9Ð9à�1ŠuˆØ�”ÒÐ Ð¨¨Qª¨Ý�T‘”ˆDˆDàˆDÝ'­¨F©¬°A°d´f¸T¼VÀDÄJÈtÌ{Ð`dÐeÑeÔe‰ˆˆ"ˆR�Ø�>Ò!Ð!Ý˜"˜R‘j”jÐ ˆB�ØŒV�B‰YˆØŒV�D”JÑ˜rÑ!ˆØ�b‘5˜#‘+ˆØ”+˜c‘/ #Ñ%ˆØ�W‘*ˆØ”&˜‘. Ñ$ˆØŒ<Ð/ 4¤<˜ØŒ<Ð/ 4¤<˜ØŒ>Ð?­3¨w°wÑ+?Ô+?Ð?˜7 7Øˆr�'˜' '¨'°!°B°rÑ:Ô:Ð:rH   Fc                 ó  ‡— t          t          t          | j        ¦  «        ¦  «        }t	          t          |¦  «        ¦  «        x}| _        |dk    rt          d| j        ¦  «        |z  ndŠ|rˆfd„|D ¦   «         S ˆfd„|D ¦   «         S )Nr   rL   rf   c                 ó6   •— g | ]}t          ‰|z  |¦  «        ‘ŒS rB   )rl  ©rï   r¯   rŸ  s     €rF   rñ   z%Pie.normalizeData.<locals>.<listcomp>°  s'   ø€ Ð3Ð3Ð3¨•I˜a ™c !Ñ$Ô$Ð3Ð3Ð3rH   c                 ó   •— g | ]}‰|z  ‘ŒS rB   rB   rÅ  s     €rF   rñ   z%Pie.normalizeData.<locals>.<listcomp>²  s   ø€ Ð&Ð&Ð&˜A�A�a‘CÐ&Ð&Ð&rH   )	rÉ   ÚmaprR   r8  rù   rD  Ú_sumrü   r„  )rD   ÚkeepDatar8  r1   rŸ  s       @rF   ÚnormalizeDatazPie.normalizeData«  s•   ø€ Ý•C�˜DœIÑ&Ô&Ñ'Ô'ˆÝ�c $™iœiÑ(Ô(Ð(ˆˆDŒIØ*+¨Qª$¨$�C��D”OÑ$Ô$ QÑ&Ð&°AˆØð 	'Ø3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ð3à&Ð&Ð&Ð& Ð&Ñ&Ô&Ð&rH   c                 óª  — t          | dd ¦  «        }| j        r't          | j        | j        ¦  «        }d| j        _        n
| j        dz  }| j        dk    rdpd}d„ t          |  	                    |¬¦  «        ¦  «        D ¦   «         }| j
        dk    rÉ| j        sÂd	„ |D ¦   «         }|                     t          ¬
¦  «         g g g}d}|r[|dk     r|                     d¦  «        }n|                     d¦  «        }||dz                                |¦  «         |dz  }|dz  }|°[|d                              ¦   «          |d         |d         z   d„ |D ¦   «         z   }g }	|	j        }|D ]m\  }}
||
|z  z   }t!          |
¦  «        t"          k    r||k    r||f}n	||f}n|d f}|r#t%          |d         |
j        ¦  «        |d         f}|} |||f¦  «         Œn|	S )Nr‚  rf   rL   r  rß   c                 ó   — g | ]}|‘ŒS rB   rB   r  s     rF   rñ   z"Pie.makeAngles.<locals>.<listcomp>¼  s   € ÐCÐCÐC�1ˆQÐCÐCÐCrH   )rÉ  r~  c                 óD   — g | ]}t          |d          ¦  «        dk    ¯|‘ŒS ©rf   gñhãˆµøä>©rR   r  s     rF   rñ   z"Pie.makeAngles.<locals>.<listcomp>¾  s'   € Ð1Ð1Ð1�q¥ Q q¤T¡¤¨D¢ �   rH   r,  r   rg   r‡  c                 óD   — g | ]}t          |d          ¦  «        dk     ¯|‘ŒS rÎ  rÏ  r  s     rF   rñ   z"Pie.makeAngles.<locals>.<listcomp>Ë  s'   € Ð<Ð<Ð< 1­S°°1´©Y¬Y°tª^¨^˜Q¨^¨^¨^rH   )rS   r¬   rj  r8  r#  rÑ   r   rt  rÿ   rÊ  r|  r.  r>  rŠ  rà   ÚreverserR   Ú_ANGLELOrl  ro  )rD   Úwrrt  ÚwhichWayÚDÚWrM  rË   r   r  r³   ÚendAngler  s                rF   Ú
makeAngleszPie.makeAngles´  s"  € Ý�T˜-¨Ñ-Ô-ˆØŒ?ð 	/Ý ¤	¨4¬>Ñ:Ô:ˆJØ()ˆDŒKÔ%Ð%àœ¨3Ñ.ˆJØ”> [Ò0Ð7°RÐ<¸1ˆØCÐC�	 $×"4Ò"4¸bÐ"4Ñ"AÔ"AÑBÔBÐCÑCÔCˆØŒ>˜;Ò&Ð&¨t¬Ð&Ø1Ð1˜AÐ1Ñ1Ô1ˆAØ�FŠF•vˆFÑÔÐØ�B�ˆAØˆAØð Ø�Q’3�3ØŸš˜a™œ�A�AàŸš˜b™	œ	�AØ�!�A‘#”—’˜aÑ Ô Ð Ø�Q‘�Ø�Q‘�ð ð ð ˆaŒD�LŠL‰NŒNˆNØ�!”�Q�q”T‘	Ð<Ð<¨Ð<Ñ<Ô<Ñ<ˆAØˆØŒHˆØð 	ð 	‰HˆAˆuØ" e¨hÑ&6Ñ7ˆHÝ�5‰zŒz�8Ò#Ð#Ø Ò)Ð)Ø! *Ð,�B�Bà# HÐ,�B�Bà Ð%�Øð :Ý  1¤ e¤kÑ2Ô2°2°a´5Ð9�Ø!ˆJØˆAˆq�ˆf‰IŒIˆIˆIØˆrH   c                 ó   ‡ — ‰                       ¦   «         }g }|D ]*\  }\  }}|€|}nd||z   z  }|                     |¦  «         Œ+‰ j        }t          |¦  «        }t	          ‰ j        |¦  «        }	t          ‰ dd ¦  «        }
|‰ _        t          ‰ j        ¦  «        }‰ j	        }|rd }|r?d}‰  
                    ||¦  «        }|j        }|j        }|j        }|j        }|j        }d„ }ni‰ j        dz  }‰ j        dz  }‰ j        |z   }‰ j        |z   }‰ j        r‰ j        }‰ j        r‰ j        }‰ j        rt+          ||¦  «        x}}‰ j        }ˆ fd„}t/          ¦   «         }|j        }g }|j        }‰ j        }|D �]‹\  }\  }}|€Œ‰ j        ||z           }|j        sŒ$t7          ||z
  ¦  «        }||}} ||¦  «        }|j        }|s|rM||z   dz  } | t:          z  }!t=          |!¦  «        }"t?          |!¦  «        }#|r|t@          k     r|||"z  z   }|||#z  z   }|rtC          ||||||||z  ||z  ¬¦  «        }$n3|t@          k    rtE          ||||¦  «        }$ntC          ||||||¬¦  «        }$|j#        |$_#        |j$        |$_$        |j%        |$_%        |j&        |$_&        |j'        |$_'        |j(        |$_(        |j)        |$_)        |j*        }%|%�rG|tW          |j,        ¦  «        z  }&|&d	k    �r)|%d
k    rtZ          j.        ntZ          j/        }%d	ta          |&¦  «        z   }&d	|j1        z
  }'|j2        dk    rd	|'z
  tW          |&d	z
  ¦  «        z  }(|'})n|'d	z
  tW          |&d	z
  ¦  «        z  }(d	})||z
  tW          |&¦  «        z  }*|j#        }+d |$_#        tg          |&¦  «        D ]|},||,|*z  z   }-||,d	z   |*z  z   }. |%|+|)|(|,z  z   ¦  «        }/|rtC          ||||-|.|||z  ||z  ¬¦  «        }0ntC          ||||-|.|¬¦  «        }0|/|0_#        d |0_$        d|0_%         ||0¦  «         Œ} ||$¦  «         |
r |
|$|j4        |¬¦  «         |j5        �rÎ|�s|rŒ|j6        }1||1z  }2||1z  }3||2|"z  z   }4||3|#z  z   }5to          ‰ || |4|5|¦  «        }6 ||6¦  «         |s!|6j8        r|||"z  z   |6_9        |||#z  z   |6_:        |r%|4|5| |2|3|||6 ;                    ¦   «         ||fdœ	|6_<        �ŒN|rŠ|rˆ||         }6|6r~|6j<        }7|7d         }8|7d         }9|||9z  z   }:|||8z  z   };|j=        }<|:|<|9z  z   }=|;|<|8z  z   }> |t}          |:|;|=|>|6j        |6j        f|j?        |j@        ¬¦  «        ¦  «          ||6¦  «         �ŒÜ|�r¬‰ j        j        }?d}@|D ]f\  }}A‰ j        |         j#        r|@d	z  }@Œ||@z  }B‰ j        |B         j#        ‰ j        |         _#        ‰ j        |B         j        ‰ j        |         _        Œgtg          d|@d	z
  ¦  «        D ]*}C‰ j        |C         j        |?k    r‰ j        |C         j        }?Œ+|j6        }1||1z  }3t7          | ¦  «        dk     s| dk    r| dk     sd| cxk     rdk     r#n n d	‰ jA        z   ‰ j        z  ‰ j        z   |?z   }4d}2n‰ j        ‰ jA        ‰ j        z  z
  |?z
  }4d}2||3|#z  z   }5to          ‰ || |4|5|¦  «        }6 ||6¦  «         |s|||"z  z   |6_9        |||#z  z   |6_:        |r"|4|5| |2|3|||6 ;                    ¦   «         dœ|6_<        |6 ;                    ¦   «         \  }D}E}F}G�Œ�|r|rt…          |||¬¦  «         |D ]}6 ||6¦  «         Œ|�sà|D �]Ü}6|6j8        r?|s= |t‡          |6j        |6j        |6j9        |6j:        |j?        |j@        ¬¦  «        ¦  «         ŒI|�r�|6 ;                    ¦   «         \  }D}E}F}G|6j        d	‰ jA        z   ‰ j        z  ‰ j        z   k    r« |t‡          |6j9        |6j:        d|6j9        |6j        z   z  |6j        d|G|Ez
  z  z   |j?        |j@        ¬¦  «        ¦  «          |t‡          d|6j9        |6j        z   z  |6j        d|G|Ez
  z  z   |6j        |6j        d|G|Ez
  z  z   |j?        |j@        ¬¦  «        ¦  «         �Œ3 |t‡          |6j9        |6j:        d|6j9        |6j        z   z  |6j        d|G|Ez
  z  z   |j?        |j@        ¬¦  «        ¦  «          |t‡          d|6j9        |6j        z   z  |6j        d|G|Ez
  z  z   |6j        |6j        d|G|Ez
  z  z   |j?        |j@        ¬¦  «        ¦  «         �ŒÞ|S )Nr™   r‚  Fc                 ó   — dS ©Nrz   rB   )rË   s    rF   ú<lambda>z Pie.makeWedges.<locals>.<lambda>ú  s   € ˜B€ rH   c                 ó0   •— ‰                      | d¦  «        S rÛ  )rÙ   )rË   rD   s    €rF   rÜ  z Pie.makeWedges.<locals>.<lambda>  s   ø€ ˜D×.Ò.¨q°Ñ4Ô4€ rH   rÐ   )r€  Úradius1Úyradius1)r€  rf   r•   r’   r   )ÚvalueÚlabel)	r¯   r°   r³   rö   rø   rõ   r÷   rí   r´  r6  r7  )r_   rc   r8   r<   r¦   r§   r¨   ©r¯   r°   r³   rö   rø   rõ   r÷   rí   )r  g      Ð?)DrØ  rà   r¬   rÈ   rÌ   rÊ   rS   Ú_seriesCountrÑ   rx  rÂ  r  r€  r­  r®  r8  r¹   r»   r¯   r°   r{  rü   rw  r   r¥  r�  rŽ   rR   rj   rý   r   r   Ú_ANGLEHIr    r   rb   rc   r_   rh   re   ri   rd   r”   rù   r�   r   ÚWhiterÚBlackerrP   r�   r‘   rè   ro  r   rn   rÆ   r®   Ú_aaxÚ_aayrþ   rî   rˆ   r&   r‡   r†   rƒ  r  r'   )HrD   r´  Ú
halfAnglesrË   Úa1Úa2Ú	halfAngler¬   r5   rÊ   rÓ  rº  rµ  rw  r±  r  r€  r­  r®  ÚPL_dataÚgSNÚgÚg_addr   r»  r�  rÃ   r  rõ   r÷   rÀ   rj   ÚaverageAngleÚaveAngleRadiansÚcosAAÚsinAAÚtheWedgeÚshaderÚnshadesr�   ÚdshÚshf1ÚshdaÚshscÚishÚsha1Úsha2ÚshcÚshWedgern   rö   rø   rÁ   rÂ   rð   r8  ÚsinMÚcosMÚlXÚlYÚlpelÚlXiÚlYiÚslices_popoutrL  r³   rô   rå   rÁ  Úy1Úx2Úy2sH   `                                                                       rF   Ú
makeWedgeszPie.makeWedgesÝ  sµ  ø€ Ø—’Ñ"Ô"ˆàˆ
Øð 	)ð 	)‰IˆA‰gˆr�"ØˆzØ�	�	à  B¡™K�	Ø×Ò˜iÑ(Ô(Ð(Ð(Ø”_ˆ
Ý�‰KŒKˆÝ˜DœK¨Ñ*Ô*ˆÝ�T˜-¨Ñ-Ô-ˆàˆÔÝ˜œÑ%Ô%ˆ
àÔ&ˆØð 	ØˆFØð 	5Ø %ÐØ×%Ò% f¨VÑ4Ô4ˆBØ”jˆGØ”jˆGØ”jˆGØ”jˆGØ”gˆGØ�,ˆCˆCà”j ‘nˆGØ”k #‘oˆGØ”f˜wÑ&ˆGØ”f˜wÑ&ˆGØŒ|Ð3 t¤|˜WØŒ|Ð3 t¤|˜WØŒ~ÐC­s°7¸7Ñ/CÔ/CÐC˜w wØ $Ô 6ÐØ4Ð4Ð4Ð4ˆCå‰GŒGˆØ”ˆØˆØ”ˆà"Ô6Ðð  ð L	4ñ L	4‰IˆA‰gˆr�"Øˆz˜8ð œ Q z¡\Ô2ˆJØÔ%Ð/ xÝ�R˜‘U‘”ˆBð ˜g�ˆBØ�3�q‘6”6ˆDØÔ&ˆFØð 0�vð 0Ø " 2¡ s™{�Ø".­wÑ"6�Ý˜OÑ,Ô,�Ý˜OÑ,Ô,�Øð 0˜b¥šk˜kà  6¨%¡<Ñ/�BØ  6¨%¡<Ñ/�Bà"ð OÝ   R¨°"°bÀ'Ø 'Ð(;Ñ ;ÀWÐM`ÑE`ðbñ bô b��ð •x’<�<Ý& r¨2¨w¸Ñ@Ô@�H�Hå$ R¨¨W°b¸"ÀgÐNÑNÔN�Hð ",Ô!5ˆHÔØ#-Ô#9ˆHÔ Ø#-Ô#9ˆHÔ Ø&0Ô&?ˆHÔ#Ø%/Ô%=ˆHÔ"Ø(2Ô(CˆHÔ%Ø'1Ô'AˆHÔ$àÔ+ˆFØñ 'Ø�u ZÔ%<Ñ=Ô=Ñ=�Ø˜Q’;‘;Ø.4°iÒ.?Ð.?�Vœ]˜]ÅVÄ^�FØ¥ G¡¤™n�GØ$% jÔ&>Ñ$>�MØ!Ô2°HÒ<Ð<Ø  ™µ°g¸a±iÑ0@Ô0@Ñ@˜Ø,˜˜à,¨Q™µ°g¸a±iÑ0@Ô0@Ñ@˜Ø ˜Ø˜r™E¥5¨¡>¤>Ñ1�DØ%Ô/�DØ)-�HÔ&Ý$ W™~œ~ð 'ð '˜Ø! C¨¡H™}˜Ø! S¨¡U¨D¡LÑ0˜Ø$˜f T¨$°°S±©.Ñ9Ô9˜Ø.ð ZÝ&+¨B°°G¸TÀ4ÐQXØ,3Ð4GÑ,GÐQXÐYlÑQlð'nñ 'nô 'n˜G˜Gõ ',¨B°°G¸TÀ4ÐQXÐ&YÑ&YÔ&Y˜GØ,/˜Ô)Ø.2˜Ô+Ø./˜Ô+Ø˜˜g™œ˜˜àˆE�(‰OŒOˆOØð 7Ø��8 "¤(°Ð6Ñ6Ô6Ð6ØÔ'ñ C4Ø!ñ B4Øð %Ø&0Ô&<˜Ø$ [Ñ0˜Ø$ [Ñ0˜Ø!# b¨¡h¡˜Ø!# b¨¡h¡˜Ý*¨4°°\À&ÈÐPZÑ[Ô[˜Ø˜˜a™œ˜Ø%ð 6¨!Ô*;ð 6Ø%'¨°©Ñ%5˜AœFØ%'¨°©Ñ%5˜AœFØ,ð .Ø17¸VÈlØ24¸2ÀBÈRØ67·k²k±m´mÈrÐRTÈgð+.ð +.˜AœKùð  ð % Gð %Ø# AœJ˜Øð %Ø#$¤;˜DØ#'¨¤<˜DØ#'¨¤<˜DØ!# g¨d¡lÑ!2˜BØ!# g¨d¡lÑ!2˜BØ#-Ô#G˜DØ"$ t¨D¡y¡.˜CØ"$ t¨D¡y¡.˜CØ!˜E¥(¨B¨r°#°c¸!¼#¸a¼cÐ+BØ0:Ô0TØ0:Ô0Tð#Vñ #Vô #Vñ Wô Wð Wð "˜E !™HœH˜Hùàñ !4Ø(,¬Ô(:˜Ø˜Ø(.ð Nð N™H˜A˜uØ#œ{¨1œ~Ô7ð NØ ! Q¡  à$% a¡C Ø;?¼;Àq¼>Ô;S ¤¨A¤Ô 8Ø8<¼ÀA¼Ô8M ¤¨A¤Ô 5Ð 5Ý!& q¨¨1©¡¤ð Fð F˜AØ#œ{¨1œ~Ô4°}ÒDÐDØ04´¸A´Ô0E øØ&0Ô&<˜Ø$ [Ñ0˜Ý Ñ-Ô-°Ò2Ð2¸ÀsÒ9JÐ9JÈ|Ð]`ÒO`ÐO`ÐfjØ ,ðg3ð g3ò g3ð g3Ø.2òg3ð g3ð g3ð g3ð g3à&'¨Ô(=Ñ&=¸t¼zÑ%IÈDÌFÑ%RÐUbÑ%b˜FØ!"˜B˜Bà%)¤V¨tÔ/DÀdÄjÑ.PÑ%PÐS`Ñ%`˜FØ!"˜BØ!# b¨¡h¡˜Ý*¨4°°\À&ÈÐPZÑ[Ô[˜Ø˜˜a™œ˜Ø%ð 6Ø%'¨°©Ñ%5˜AœFØ%'¨°©Ñ%5˜AœFØ,ð .Ø17¸VÈlØ24¸2ÀBÈRØ67·k²k±m´mð+.ð +.˜AœKð '(§k¢k¡m¤m™˜˜2˜b ùàð 	E ð 	EÝ˜Q 
Ð2CÐDÑDÔDÐDØÐÐˆA�E�E˜!‘H”H�H�Hàñ 	OØð Oñ O�ØÔ$ð O¨Zð OØ�E�$˜qœs 1¤3 q¤v¨a¬fØ$.Ô$HØ$.Ô$HðJñ Jô Jñ Kô Kð Kð Kð  ñ OØ"#§+¢+¡-¤-‘K�B�r˜"˜Rà”s˜q Ô!6Ñ6¸¼
ÑBÀTÄVÑKÒKÐKØ˜�d 1¤6¨!¬&°°a´f¸Q¼S±jÑ1AÀ!Ä#ÀtÈRÐPRÉUÁ|ÑBTØ(2Ô(LØ(2Ô(LðNñ Nô Nñ Oô Oð Oð ˜�d 3¨¬¨q¬s©
Ñ#3°A´C¸¸rÀ"¹u¹Ñ4FÀqÄsÈ1Ì3ÐPTÐVXÐY[ÑV[ÑP\ÑK]Ø(2Ô(LØ(2Ô(LðNñ Nô Nñ Oô Oð Oñ Oð ˜�d 1¤6¨!¬&°°a´f¸Q¼S±jÑ1AÀ!Ä#ÀtÈRÐPRÉUÁ|ÑBTØ(2Ô(LØ(2Ô(LðNñ Nô Nñ Oô Oð Oð ˜�d 3¨¬¨q¬s©
Ñ#3°A´C¸¸rÀ"¹u¹Ñ4FÀqÄsÈ1Ì3ÐPTÐVXÐY[ÑV[ÑP\ÑK]Ø(2Ô(LØ(2Ô(LðNñ Nô Nñ Oô Oð Oùð ˆrH   c                 óz   — |                       ¦   «         }|                      ¦   «         }|rt          ||¦  «        S |S rA   )ÚmakeBackgroundr  r   )rD   rH  r/   s      rF   ÚdrawzPie.drawº  s:   € Ø×ÒÑ!Ô!ˆØ�OŠOÑÔˆØÐ•U˜1˜Q‘Z”ZÐØˆrH   rB   )F)rY   rZ   r[   r¡   rÎ   r¢   r	   r   r   r   r   r   r   r   r   r   r£   rv  rŸ   r¨  rÂ  rÊ  rØ  r  r  rB   rH   rF   rr  rr  	  sb  € € € € € Øˆwð 
ð 
ð 
Ð,Ð,ð 
Øˆ|˜OÐ2kÐlÑlÔlÐlð
à�Ð3Ð:nÐoÑoÔoÐoð
ð "�\ (Ð1VÐWÑWÔWÐWð
ð !�L   {°OÑ!DÔ!DÐKkÐlÑlÔlÐlð	
ð
 �˜dÐ)QÐRÑRÔRÐRð
ð $�| Ið  5Sð  Tñ  Tô  Tð  Tð
ð '˜, xÐ6fÐuvÐwÑwÔwÐwð
ð )˜L¨¨°?°?À4ÈÑ3JÔ3JÈ9Ð2UÑ)VÔ)Vð  ^gð  vwð  xñ  xô  xð  xð
ð (˜<¨¨¨d°;¸~Ñ(NÔ(NÐUWÐfgÐhÑhÔhÐhð
ð !�L Ð1_ÐnoÐpÑpÔpÐpð
ð !�L   w¨{Ñ!;Ô!;È!ÐLÑLÔLÐLð
ð �,˜~Ð4HÐIÑIÔIÐIð
ð �,˜~Ð4HÐIÑIÔIÐIð
ð +˜l¨>Ð@fÐgÑgÔgÐgð
ð #�l 4Ð.LÐ[\Ð]Ñ]Ô]Ð]ð
ð  "�\ )Ð2xÐyÑyÔyÐyð!
ð" (˜<¨ð  8Qð  Rñ  Rô  Rð  Rð#
ð$  �<   zÑ 2Ô 2Ð9gÐhÑhÔhÐhð%
ð& "�\ (Ð1fÐgÑgÔgÐgð'
€Hð* €Oð1ð 1ð 1ð>ð ð ð8M;ð M;ð M;ð^'ð 'ð 'ð 'ð'ð 'ð 'ðR[ð [ð [ðzð ð ð ð rH   rr  c                   óL  — e Zd ZdZ ee eed¬¦  «         edd¬¦  «         edd¬¦  «         eed¬¦  «         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„ Zdd„ZdS )ÚLegendedPiezUPie with a two part legend (one editable with swatches, one hidden without swatches).z#If true then create and draw legendr`   NzHandle to legend for piez;Formatting routine for number on right hand side of legend.z:Horizontal space between legend and numbers on r/hand sidez&Colours used for both swatches and piezNames used in legend (or None)z/Numbers used on r/hand side of legend (or None)zPadding on left of drawingzPadding on right of drawingzPadding at top of drawingzPadding at bottom of drawing)rs  Ú
drawLegendÚlegend1ÚlegendNumberFormatÚlegendNumberOffsetÚpieAndLegend_colorsÚlegend_namesÚlegend_datar½   r¾   r¼   r¿   c                 ó‚  — t          | d|                     dg d¢¦  «        ¦  «         t          j        | fi |¤Ž t          j        t          j        }} |ddddd¬¦  «         |dd	dd
d¬¦  «         |dddddd¬¦  «         |dd	dd
dd¬¦  «         |dddddd¬¦  «         |dd	dd
dd¬¦  «        g| _        | j        d         | j        d         _	        | j        d         | j        d         _	        | j        d         | j        d         _	        | j        d         | j        d         _	        | j        d         | j        d         _	        | j        d         | j        d         _	        d| j        _
        || j        _        d}d| _        d| _        | j        | _        ddlm}  |¦   «         | _        | j        |z   | j        _        | j        | j        _        d| j        _        d| j        _        d| j        _        d| j        _        d| j        _        d| j        _        d| j        _        g d¢| _        t?          tA          | j        ¦  «        ¦  «        D ]9}| j        j!         "                    | j        |         | j        |         f¦  «         Œ:d| j        _#        d | j        _$        || j        _        d!| j        _
         |¦   «         | _%        d| j%        _        d| j%        _        d| j%        _        d"| j%        _#        d | j%        _$        | j        j        | j%        _        d| _&        d| _'        d| _(        d| _)        d| _*        d S )#Nr8  )g333333C@g33333³4@gfffffæ2@gÍÌÌÌÌÌ.@gffffff@é   éH   r   zPANTONE 458 CV)ÚspotNamer†  éA   rò   zPANTONE 288 CVéK   )r  Údensityr–  rf   rg   rœ   r‡  rM   g      è?é   é3   z%.1f%%)ÚLegendg®Gáz®@g×£p=
W,@gHáz®Ç&@é   Úright)zAAA:zAA:zA:zBBB:zNR:zHelvetica-Boldrˆ  r™   zHelvetica-Oblique)+r‰  rŠ  rr  rŸ   r   Ú
PCMYKColorr�   r  rÑ   rb   r_   rc   r  r  r8  r  Ú!reportlab.graphics.charts.legendsr"  r  r¹   r¯   r»   r°   ÚdeltaxÚdeltayÚdxTextSpacer±   r²   ÚcolumnMaximumÚ	alignmentr  rè   rÈ   ÚcolorNamePairsrà   rk   rl   Ú_legend2r½   r¾   r¼   r¿   r  )rD   r’  r%  r�   ÚlegendOffsetr"  rŸ  s          rF   rŸ   zLegendedPie.__init__Ñ  s6  € Ý��V˜DŸHšH VÐ,IÐ,IÐ,IÑJÔJÑKÔKÐKÝŒ�TÐ!Ð!˜DÐ!Ð!Ð!Ý"Ô-­v¬|�Eˆ
Ø$. J¨r°"°R¸ÐCSÐ$TÑ$TÔ$TØ$. J¨s°2°a¸ÐDTÐ$UÑ$UÔ$UØ$. J¨r°"°R¸ÐCSÐ\^Ð$_Ñ$_Ô$_Ø$. J¨s°2°a¸ÐDTÐ]_Ð$`Ñ$`Ô$`Ø$. J¨r°"°R¸ÐCSÐ\^Ð$_Ñ$_Ô$_Ø$. J¨s°2°a¸ÐDTÐ]_Ð$`Ñ$`Ô$`ð$bˆÔ ð "&Ô!9¸!Ô!<ˆŒ�AŒÔ Ø!%Ô!9¸!Ô!<ˆŒ�AŒÔ Ø!%Ô!9¸!Ô!<ˆŒ�AŒÔ Ø!%Ô!9¸!Ô!<ˆŒ�AŒÔ Ø!%Ô!9¸!Ô!<ˆŒ�AŒÔ Ø!%Ô!9¸!Ô!<ˆŒ�AŒÔ à"&ˆŒÔØ"'ˆŒÔàˆØ"$ˆÔØ"*ˆÔØœ9ˆÔð 	=Ð<Ð<Ð<Ð<Ð<Ø�v‘x”xˆŒØœ LÑ0ˆŒŒØœˆŒŒØ"ˆŒÔØ#ˆŒÔØ#(ˆŒÔ ØˆŒŒØˆŒŒØ%&ˆŒÔ"Ø!(ˆŒÔØ<Ð<Ð<ˆÔÝ•s˜4œ9‘~”~Ñ&Ô&ð 	dð 	dˆAØŒLÔ'×.Ò.°Ô0HÈÔ0KÈTÔM^Ð_`ÔMaÐ/bÑcÔcÐcÐcØ 0ˆŒÔØ !ˆŒÔØ#(ˆŒÔ Ø#&ˆŒÔ à˜™œˆŒØ$%ˆŒÔ!ØˆŒÔØ")ˆŒÔØ!4ˆŒÔØ!"ˆŒÔØ$(¤LÔ$<ˆŒÔ!àˆÔØˆÔØˆŒØˆÔØˆŒˆˆrH   c           	      óD  — | j         rg | j        _        g | j        _        t	          t          | j        ¦  «        ¦  «        D �]Ü}| j        d k    rJ| j        |         | j	        |         _
        | j        j                             | j        |         d f¦  «         nä	 | j        |         | j	        |         _
        | j        j                             | j        |         | j        |         f¦  «         nŽ# t          $ r� | j        |t          | j        ¦  «        z           | j	        |         _
        | j        j                             | j        |t          | j        ¦  «        z           | j        |         f¦  «         Y nw xY w| j        d k    r•| j        |         }| j        }|�|€n[t          |t           ¦  «        r||z  }n@t#          |d¦  «        r ||¦  «        }n$t%          dt'          | j        ¦  «        z  ¦  «        ‚| j        j                             d |f¦  «         �ŒÞt(                               | ¦  «        }| j         rÀ|                     | j        ¦  «         | j        j        | j        z   | j        _        | j        j        | j        _        | j        j        | j        _        | j        j        | j        _        | j        j        | j        _        | j        j        | j        _        |                     | j        ¦  «         |                     | j        | j         ¦  «         |S )NÚ__call__z6Unknown formatter type %s, expected string or function)!r  r  r,  r-  rè   rÈ   r8  r  r  rÑ   rb   rà   Ú
IndexErrorr  r  Ú
isinstanceÚstrÚhasattrÚ
ValueErrorÚasciirr  r  r¥  r¯   r  r°   r'  r(  r²   r*  Úshiftr½   r¿   )rD   rŸ  ÚldfÚlNFrQ  s        rF   r  zLegendedPie.draw  sø  € ØŒ?ð 	.Ø*,ˆDŒLÔ'Ø+-ˆDŒMÔ(Ý•s˜4œ9‘~”~Ñ&Ô&ð 	@ñ 	@ˆAØÔ  DÒ(Ð(Ø+/Ô+CÀAÔ+F�”˜A”Ô(Ø”Ô+×2Ò2°DÔ4LÈQÔ4OÐQUÐ3VÑWÔWÐWÐWðJØ/3Ô/GÈÔ/J�D”K ”NÔ,Ø”LÔ/×6Ò6¸Ô8PÐQRÔ8SÐUYÔUfÐghÔUiÐ7jÑkÔkÐkÐkøÝ!ð Jð Jð JØ/3Ô/GÈÍ#ÈdÔNfÑJgÔJgÑHgÔ/h�D”K ”NÔ,Ø”LÔ/×6Ò6¸Ô8PÐQRÕSVÐW[ÔWoÑSpÔSpÑQpÔ8qÐswô  tEð  FGô  tHð  8Iñ  Jô  Jð  Jð  Jð  JðJøøøð Ô 4Ò'Ð'ØÔ& qÔ)�ØÔ-�Ø�; # +ØÝ ¥CÑ(Ô(ð @Ø ™)�C�CÝ˜S Ñ,Ô,ð @Ø˜#˜c™(œ(�C�Cå$Ð%]Õ`eÐfjÔf}Ñ`~Ô`~Ñ%~ÑÔÐØ”Ô,×3Ò3°T¸#°JÑ?Ô?Ð?ùÝ�HŠH�T‰NŒNˆØŒ?ð 		!Ø�EŠE�$”,ÑÔÐà"œlœn¨TÔ-DÑDˆDŒMŒOØ"œlœnˆDŒMŒOØ#'¤<Ô#6ˆDŒMÔ Ø#'¤<Ô#6ˆDŒMÔ Ø#œ|œˆDŒMÔØ*.¬,Ô*DˆDŒMÔ'Ø�EŠE�$”-Ñ Ô Ð Ø	�Š�Ô  $Ô"4Ñ5Ô5Ð5Øˆs   ÂAC/Ã/BE:Å9E:c                 óÐ   — | j         }| j        r>|| j        j        | j        z   z  }|| j                             | j        j        ¦  «        z  }| j        | j	        z   | j
        z   }||fS rA   )r¾   r  r  r¯   r  r-  Ú_calculateMaxWidthr,  r¿   r»   r¼   )rD   ÚtxÚtys      rF   Ú_getDrawingDimensionsz!LegendedPie._getDrawingDimensions7  si   € ØÔˆØŒ?ð 	QØ�$”,”. Ô!8Ñ8Ñ8ˆBØ�$”-×2Ò2°4´=Ô3OÑPÔPÑPˆBØÔ ¤Ñ+¨D¬OÑ;ˆØ�2ˆwˆrH   c                 ó¦   — |s'|                       ¦   «         \  }}t          ||¦  «        }|                     |                      ¦   «         ¦  «         |S rA   )r>  r   r¥  r  )rD   Údrawingr<  r=  s       rF   r¨  zLegendedPie.demo?  sK   € Øð 	&Ø×.Ò.Ñ0Ô0‰EˆBˆrÝ˜b "‘o”oˆGØ�Š�D—I’I‘K”KÑ Ô Ð ØˆrH   rA   )rY   rZ   r[   r    r¡   rr  r¢   r   r   r   r   r   r£   rŸ   r  r>  r¨  rB   rH   rF   r  r  À  sH  € € € € € Ø_Ð_àˆw˜CØ!�\ )Ð2WÐXÑXÔXØ�,˜tÐ*DÐEÑEÔEØ)˜\¨$Ð5rÐsÑsÔsØ)˜\¨(Ð9uÐvÑvÔvØ*˜l¨>Ð@hÐiÑiÔiØ#�|Ð$?ÐFfÐgÑgÔgØ"�lÐ#>ÐEvÐwÑwÔwØ"�l 8Ð2NÐOÑOÔOØ#�| HÐ3PÐQÑQÔQØ!�\ (Ð1LÐMÑMÔMØ$˜ XÐ4RÐSÑSÔSð
ñ 
ô 
€Hð;ð ;ð ;ðz'ð 'ð 'ðRð ð ðð ð ð ð ð rH   r  )Ú
_getShadedÚ_2radrú   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
 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 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( eed¬¦  «        “d) eed¬¦  «        “d* eed¬¦  «        “d+ eed,¦  «        “ŽZd-„ Zd.S )0ÚWedge3dPropertiesr^   rb   rz   r`   ÚfillColorShadedrm   rk   rl   rq   r„   zpadding at bottom of boxrr   ru   rs   rt   ro   rp   r}   ry   r‚   zpadding at left of boxr|   rƒ   zpadding at right of boxr…   zset to True for simple pointersrv   rw   rx   r~   r�   zpadding at top of boxr   r€   r{   rn   rj   Úshadingrc   ÚstrokeColorShadedrd   r_   rŽ   zset to false to skip displayingc                 óP  — d| _         d| _        d| _        d x| _        x| _        | _        t          d         | _        t          d         | _        d| _	        t          d         | _
        t          d         | _        t          d         | _        d	| _        dx| _        x| _        | _        d | _        dx| _        x| _        x| _        | _        d
| _        d | _        d| _        d | _        d | _        d| _        d x| _        x| _        x| _        | _        d| _         d| _!        d| _"        d S )Nr   g333333Ó?rf   rc   rd   rk   rl   rb   r˜   rJ   r™   rš   r›   )#r_   rF  rŽ   rG  rE  rb   r"   rc   rd   rj   rk   rl   rm   rn   ro   rp   rq   rx   r�   r‚   rƒ   r„   rr   rs   rt   ru   rv   rw   ry   r{   r|   r}   r~   r   r…   rž   s    rF   rŸ   zWedge3dProperties.__init__t  s)  € ØˆÔØˆŒØˆŒØIMÐMˆÔÐM Ô!5¸¼Ý)¨-Ô8ˆÔÝ-Ð.?Ô@ˆÔØˆŒÝ& zÔ2ˆŒÝ& zÔ2ˆŒÝ'¨Ô4ˆŒØˆÔØ;<Ð<ˆŒÐ<˜œ¨Ô(8ØˆŒØnoÐoˆÔÐo Ô 6Ðo¸Ô9PÐSWÔSkØ&ˆÔØ$(ˆÔ!Ø$'ˆÔ!Ø"&ˆÔØ!%ˆÔØ!$ˆÔØ]aÐaˆÔÐa Ô 0Ða°4Ô3FÈÔIZØ 'ˆÔØˆÔØ$%ˆÔ!Ð!Ð!rH   NrB   )rY   rZ   r[   r    r¡   r¢   r
   r   r   r   r   r   r   r   r   r£   rŸ   rB   rH   rF   rD  rD  G  sö  € € € € € ðð ð ˆwð #
ð #
ð #
Ø �L °BÐ7Ñ7Ô7Ð7ð#
à&˜, }¸"Ð=Ñ=Ô=Ð=ð#
ð !�L °BÐ7Ñ7Ô7Ð7ð#
ð  �< ¨bÐ1Ñ1Ô1Ð1ð	#
ð
  �< ¨bÐ1Ñ1Ô1Ð1ð#
ð #�l 8°Ð4Ñ4Ô4Ð4ð#
ð +˜l¨8Ð4NÑOÔOÐOð#
ð '˜, {¸Ð;Ñ;Ô;Ð;ð#
ð *˜\¨-¸RÐ@Ñ@Ô@Ð@ð#
ð  ,˜|¨M¸rÐBÑBÔBÐBð#
ð  ,˜|¨H¸"Ð=Ñ=Ô=Ð=ð#
ð  �< ¨bÐ1Ñ1Ô1Ð1ð#
ð  �< ¨bÐ1Ñ1Ô1Ð1ð#
ð $�| N¸Ð;Ñ;Ô;Ð;ð#
ð %˜ ^¸Ð<Ñ<Ô<Ð<ð#
ð  )˜L¨Ð2JÑKÔKÐKð!#
ð" &˜ n¸"Ð=Ñ=Ô=Ð=ð##
ð$ *˜\¨(Ð3LÑMÔMÐMð%#
ð&  ,˜|¨IÐ6WÑXÔXÐXð'#
ð( )˜L¨¸BÐ?Ñ?Ô?Ð?ð)#
ð* )˜L¨°rÐ:Ñ:Ô:Ð:ð+#
ð, "�\ .°bÐ9Ñ9Ô9Ð9ð-#
ð. (˜<¨¸"Ð=Ñ=Ô=Ð=ð/#
ð0 (˜<¨Ð1HÑIÔIÐIð1#
ð2 %˜ YÐ4VÐWÑWÔWÐWð3#
ð4 #�l >°rÐ:Ñ:Ô:Ð:ð5#
ð6 #�l 8°Ð4Ñ4Ô4Ð4ð7#
ð8 �˜h¨BÐ/Ñ/Ô/Ð/ð9#
ð: �,˜x¨RÐ0Ñ0Ô0Ð0ð;#
ð< #�l =°bÐ9Ñ9Ô9Ð9ð=#
ð> )˜L¨¸BÐ?Ñ?Ô?Ð?ð?#
ð@ '˜,Ð'<À"ÐEÑEÔEÐEðA#
ðB #�l 8°Ð4Ñ4Ô4Ð4ðC#
ðD �,˜yÐ)JÑKÔKÐKðE#
€HðJ&ð &ð &ð &ð &rH   rD  c                   ó   — e Zd Zd„ Zd„ ZdS )Ú_SL3Dc                 óœ   — |dk     r
|dz  }|dz  }|| _         || _        ||z   dz  | _        t          ||z
  ¦  «        t          k     | _        d S )Nr   rL   r™   )ÚloÚhir5  rR   rä  Únot360)rD   rL  rM  s      rF   rŸ   z_SL3D.__init__�  sT   € ØˆaŠ4ˆ4Ø�#‰IˆBØ�#‰IˆBØˆŒØˆŒØ�r‘E˜3‘;ˆŒÝ˜"˜R™%‘j”j¥8Ò+ˆŒˆˆrH   c                 ó$   — d| j         | j        fz  S )Nz_SL3D(%.2f,%.2f))rL  rM  rž   s    rF   Ú__str__z_SL3D.__str__˜  s   € Ø! T¤W¨T¬WÐ$5Ñ5Ð5rH   N)rY   rZ   r[   rŸ   rP  rB   rH   rF   rJ  rJ  Ž  s2   € € € € € ð,ð ,ð ,ð6ð 6ð 6ð 6ð 6rH   rJ  c                 ó<   — t          | d         |d         ¦  «         S ©Nr   r-   r;  s     rF   Ú_keyS3DrS  ›  s   € Ý��!”�Q�q”T‰NŒNˆ?ÐrH   r<   c            	       ó¶   — e Zd Z ee eed¬¦  «         eed¬¦  «         eed¬¦  «        ¬¦  «        ZdZdZ	dZ
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚPie3dzA flattening parameter.r`   zdepth of the pie.zThe view angle.)rs  ÚperspectiveÚdepth_3dÚangle_3déF   é   r:   c                 óN   — | j         |         j        r| j        |         j        pdS rR  )Ú_sl3drN  rÑ   rj   )rD   rË   s     rF   Ú_popoutzPie3d._popoutª  s$   € ØŒz˜!Œ}Ô#Ð=¨¬°A¬Ô(=ÐBÀÐBrH   c                 ó®   — | j         |r| j        pdz   |                      |¦  «        t          t	          | j        |         j        ¦  «        ¦  «        z  z   S rR  )Ú_cxÚ
_xdepth_3dr]  r   rB  r\  r5  ©rD   rË   r`  s      rF   ÚCXzPie3d.CX­  óI   € ØŒx˜Ð.˜tœÐ3°!Ñ4°T·\²\À!±_´_ÅSÍÈtÌzÐZ[Ì}ÔO`ÑIaÔIaÑEbÔEbÑ5bÑbÐbrH   c                 ó®   — | j         |r| j        pdz   |                      |¦  «        t          t	          | j        |         j        ¦  «        ¦  «        z  z   S rR  )Ú_cyÚ
_ydepth_3dr]  r   rB  r\  r5  ra  s      rF   ÚCYzPie3d.CY¯  rc  rH   c                 óx   — |                       ||¦  «        | j        t          t          |¦  «        ¦  «        z  z   S rA   )rb  Ú_radiusxr   rB  ©rD   rË   Úor`  s       rF   ÚOXzPie3d.OX±  ó,   € Ø�wŠw�q˜‰|Œ|˜DœM­#­e°A©h¬h©-¬-Ñ7Ñ7Ð7rH   c                 óx   — |                       ||¦  «        | j        t          t          |¦  «        ¦  «        z  z   S rA   )rg  Ú_radiusyr   rB  rj  s       rF   ÚOYzPie3d.OY³  rm  rH   c                 óv   — | j         }t          t          ||z
  ¦  «        t          ||z
  dz   ¦  «        ¦  «        S )NrL   )Ú_3dvarü   rR   )rD   r   rr  s      rF   Úrad_distzPie3d.rad_dist¶  s3   € Ø”
ˆÝ•3�q˜‘w‘<”<¥ A e¡G¨C¡KÑ 0Ô 0Ñ1Ô1Ð1rH   c                 ó>  — t                                | ¦  «         t          t          ¦  «        | _        t
          j        | j        d         _        t
          j        | j        d         _        t
          j	        | j        d         _        t
          j
        | j        d         _        t
          j        | j        d         _        t
          j        | j        d         _        t
          j        | j        d         _        d x| _        | _        d| _        d	| _        g d
¢| _        d S )Nr   rf   rg   rœ   r‡  rM   rˆ  i,  r•  )g      )@gš™™™™4@rÐ   g      6@g      @g      2@g      *@)rr  rŸ   r(   rD  rÑ   r   r‹  rb   rŒ  r�  rŽ  ÚazureÚcrimsonÚ
darkvioletr  r€  r¹   r»   r8  rž   s    rF   rŸ   zPie3d.__init__º  sÃ   € Ý�Š�TÑÔÐÝ-Õ.?Ñ@Ô@ˆŒÝ#)¤?ˆŒ�AŒÔ Ý#)Ô#4ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤<ˆŒ�AŒÔ Ý#)¤>ˆŒ�AŒÔ Ý#)Ô#4ˆŒ�AŒÔ Ø&*Ð*ˆŒ�t”|ØˆŒ
ØˆŒØ=Ð=Ð=ˆŒ	ˆ	ˆ	rH   c                 ó4  — |                       |¦  «        }||                       | j        |         j        ¦  «        k     rÙ|                      |d¦  «        |                      |d¦  «        |                      |d¦  «        |                      |d¦  «        |                      ||d¦  «        |                      ||d¦  «        |                      ||d¦  «        |                      ||d¦  «        g}|                     |t          ||||d¬¦  «        f¦  «         d S d S )Nr   rf   ©rc   rb   r_   rh   )	rs  r\  r5  rb  rg  rl  rp  rà   r$   )	rD   r   rË   r³   rc   r_   rb   ÚrdrQ  s	            rF   Ú	_fillSidezPie3d._fillSideÉ  sú   € Ø�]Š]˜5Ñ!Ô!ˆØˆd�mŠm˜DœJ qœMÔ-Ñ.Ô.Ò.Ð.Ø—’˜˜1‘”˜dŸgšg a¨™lœlØ—’˜˜!‘”˜TŸWšW Q q™\œ\Ø—’˜˜% Ñ"Ô" 4§7¢7¨1¨U°1Ñ#5Ô#5Ø—’˜˜% Ñ"Ô" 4§7¢7¨1¨U°1Ñ#5Ô#5ð7ˆAð �HŠH�b� °ÀyÐ]hÐxyÐzÑzÔzÐ{Ñ|Ô|Ð|Ð|Ð|ð /Ð.rH   c                 óº  ‡ — ‰ j         }‰ j        }t          |dz   ¦  «        x}‰ _        t	          |¦  «        }‰ j        }t          |¦  «        |z  ‰ _        t          |¦  «        |z  ‰ _	        ‰ j
        ‰ j        dz  z   ‰ _        ‰ j        ‰ j        ‰ j	        z
  dz  z   ‰ _        ‰ j        ‰ j
        z
  x}}‰ j        r‰ j        }‰ j        r‰ j        }|‰ _        d‰ j        dz  z
  |z  x‰ _        }‰                      ¦   «         }‰ j        }	‰ j        }
‰ j        }‰ j        }‰ j        }‰ j        }‰ j        }t;          |¦  «        x‰ _        }g x}‰ _        tA          ¦   «         }t          ‰ j!        ¦  «        }‰ j"        dk    rdpd}|D ]=}||z  }|||z   }}|}|dk    r||}}| #                    tI          ||¦  «        ¦  «         Œ>tK          ‰ j&        |¦  «        }|}|d	z   }g }g }g } G ˆ fd
„dtN          ¦  «        }‰ j(        }tS          |¦  «        D �]k}||         }|j*        sŒ||         } | j+        x}!}| j,        x}"}t[          |"|!z
  ¦  «        }#|#t\          k     rŒKt_          |j0        |j1        |j2        ¦  «        }$t_          |j3        |j4        |j2        ¦  «        p|$}%|j5        }& |
|d¦  «        }' ||d¦  «        }( |
|d¦  «        }) ||d¦  «        }*|�rC| 6                    to          |)|*||!|"||%|&|$d¬¦
  «
        ¦  «         |!|cxk     r|"k     rn n|}|!|cxk     r|"k     rn n|}tq          |%|$|&d¬¦  «        }+|+ 9                    |)|*||||d¬¦  «         |+ :                     |||d¦  «         |||d¦  «        ¦  «         |+ 9                    |'|(||||d¬¦  «         |+ ;                    ¦   «          ||k    r	||k    rd},n"ty           ||¦  «         ||¦  «        ¦  «        },| #                    |,|+f¦  «          ||||!|%|&|$¦  «          ||||"|%|&|$¦  «         |j0        }$|j3        p|$}%| #                    to          |'|(||!|"||%|&|$d¬¦
  «
        ¦  «         |#tz          k    rt}          |'|(|||%|&|$d¬¦  «        }-nto          |'|(||!|"||%|&|$d¬¦
  «
        }-| #                    |-¦  «         ||         }.|j?        rÅ|.rÃ|j@        }/‰ xj        |/z  c_        ‰ xj        |/z  c_        | jA        }0 |||0d¦  «        }1 |||0d¦  «        }2t…          ‰ |.|0|1|2||¬¦  «        }3| #                    |3¦  «         |r@|1|2|0‰ j        ‰ j         |
|d¦  «         ||d¦  «        |3 C                    ¦   «         dœ|3_D        |‰ _        |‰ _        �Œm| E                    tŒ          ¬¦  «         |r|rt�          |‰ jH        ¦  «         d„ |D ¦   «         |z   |z   D ]}4| 6                    |4¦  «         Œ|S )Nr8   rÐ   rê   g      Y@r  rß   rf   r   r:   c                   ó$   •— e Zd Z” j        Zd„ ZdS )ú Pie3d.draw.<locals>.WedgeLabel3dc                 óˆ   — |d         dk    r3t          | d¦  «        s%| j        | _        | j         | j        z   | _        d S d S d S )Nr   r5   Ú_ody)r4  r²   r€  rf  rC   s     rF   rG   z*Pie3d.draw.<locals>.WedgeLabel3d._checkDXYÿ  sQ   € Ø�a”5˜#’:�:Ý" 4¨Ñ/Ô/ð ?Ø$(¤G˜œ	Ø#'¤9 *¨t¬Ñ">˜œ˜˜ð �:ð?ð ?rH   N)rY   rZ   r[   rf  rG   rž   s   €rF   ÚWedgeLabel3dr~  ý  s+   ø€ € € € € ØœˆJð?ð ?ð ?ð ?ð ?rH   r�  )r€  rc   r_   rb   rh   ry  )r€  ÚmoveTo)r€  rÑ  )rc   r_   rb   rh   )rª   râ  r,  c                 ó   — g | ]
}|d          ‘ŒS ©rf   rB   )rï   r1   s     rF   rñ   zPie3d.draw.<locals>.<listcomp>M  s   € Ð#Ð#Ð#˜A�1�Q”4Ð#Ð#Ð#rH   )IrÑ   rX  rú   rr  rB  rW  r   r`  r   rf  r¯   r¹   r_  r°   r»   re  r  r€  ri  rV  ro  rÊ  rÈ  rb  rg  rl  rp  rs  r{  rÈ   rã  r\  r   rt  r#  rà   rJ  rÌ   rÊ   r?   rw  rè   rŽ   rL  rM  rR   rÒ  rA  rb   rE  rF  rc   rG  r_   r¥  r    r#   ÚaddArcÚlineToÚ	closePathrü   rä  r   r   rn   r5  rÆ   rþ   rî   r.  rS  r  r¬   )5rD   rÑ   Ú	_3d_anglerr  Úa0rW  ÚradiusxÚradiusyr8  rD  rb  rg  rl  rp  rs  r{  r5   r\  rï  Úlastri  Úangle1Úangle0rÊ   rê  rM  rO  r   r�  rw  rË   rÕ   ÚslrL  rM  r  rb   rc   r_   Úcx0Úcy0Úcx1Úcy1rQ  rz  rõ  rÀ   Úratr5  rÁ   rÂ   rð   r¯   s5   `                                                    rF   r  z
Pie3d.drawÒ  sñ  ø€ Ø”ˆØ”Mˆ	Ý! )¨B¡,Ñ/Ô/Ð/ˆ�”
Ý�5‰\Œ\ˆØ”=ˆÝ˜b™'œ' (Ñ*ˆŒÝ˜b™'œ' (Ñ*ˆŒØ”6˜$œ* S™.Ñ(ˆŒØ”6˜4œ;¨¬Ñ8¸#Ñ=Ñ=ˆŒØ œH T¤V™OÐ+ˆ�'ØŒ<Ð/ 4¤<˜ØŒ<Ð/ 4¤<˜ØˆŒØ#&¨Ô)9¸%Ñ)?Ñ#?ÀÑ"HÐHˆŒ˜Ø×!Ò!Ñ#Ô#ˆØŒiˆàŒWˆØŒWˆØŒWˆØŒWˆØ”=ˆØ”Nˆ	Ý # D¡	¤	Ð)ˆÔ˜AØÐˆ�”
Ý‰GŒGˆÝ�D”OÑ$Ô$ˆØŒ^˜[Ò(Ð/¨RÐ4°1ˆØð 	/ð 	/ˆAØ�‰GˆAØ! 1 T¡6�FˆFØˆDØ�!Štˆt f¨f˜V�VØ�LŠL�˜v fÑ-Ô-Ñ.Ô.Ð.Ð.å˜DœK¨Ñ*Ô*ˆØˆØ�s‰]ˆØˆØˆØˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?�:ñ 	?ô 	?ð 	?ð !Ô2Ðå�q‘”ð A	(ñ A	(ˆAØ˜1”IˆEØ”=Ð* (Ø�q”ˆBØœ%ÐˆB�Øœ%ÐˆB�Ý�R˜‘U‘”ˆBØ•(Š{ˆ{˜HÝ" 5¤?°5Ô3HÈÌÑWÔWˆIÝ$ UÔ%6°uÔ7NÈuÌ}Ñ]Ô]ÐjÐajˆKØÔ+ˆKØ�"�Q�q‘'”'ˆCØ�"�Q�q‘'”'ˆCØ�"�Q�q‘'”'ˆCØ�"�Q�q‘'”'ˆCØñ Dà—’•e˜C  G¨R°¸GØ,7ÀKÐZcØ/0ð2ñ 2ô 2ñ 3ô 3ð 3ð ˜�<�<’<�<˜R’<�<�<�<�<¨" Ø˜�<�<’<�<˜R’<�<�<�<�<¨" Ý¨¸yÐU`ÐpqÐrÑrÔr�Ø—’˜˜S ¨°¸wÈa�ÑPÔPÐPØ—’˜˜˜A˜f Q™œ¨¨¨1¨V°A©¬Ñ7Ô7Ð7Ø—’˜˜S ¨°¸wÈq�ÑQÔQÐQØ—’‘”�Ø˜5’=�= V¨U¢] ]Ø�B�Bå˜X˜X fÑ-Ô-¨h¨h°vÑ.>Ô.>Ñ?Ô?�BØ—’˜"˜Q˜Ñ Ô Ð Ø�	˜!˜A˜b ¨[¸ÑCÔCÐCØ�	˜!˜A˜b ¨[¸ÑCÔCÐCð œˆIØÔ+Ð8¨yˆKØ�HŠH•U˜3˜s 7¨2¨b¸Ø(3ÀÐV_Ðopðrñ rô rñ sô sð sà•8Š|ˆ|Ý" 3¨¨W°gØ(3ÀÐV_Ðopðrñ rô r��õ !  S¨°°B¸wØ(3ÀÐV_Ðopðrñ rô r�à�HŠH�XÑÔÐà˜!”9ˆDØÔ"ð ( tð (ØÔ'�Ø�” Ñ$�”Ø�” Ñ$�”Ø”f�Ø˜˜A˜c !™œ�Ø˜˜A˜c !™œ�Ý   d¨3¨v°f¸UÈlÐ[Ñ[Ô[�Ø—’˜‘”�Ø$ð &Ø)/°VÀcØ*.¬-¸d¼mÐRTÐRTÐUVÐWXÑRYÔRYÐ`bÐ`bÐcdÐefÑ`gÔ`gØ./¯kªk©m¬mð#&ð #&�A”Kð !(�”Ø '�”ùà	�Š•7ˆÑÔÐØð 	0 ð 	0Ý˜Q˜tœÑ/Ô/Ð/Ø#Ð# Ð#Ñ#Ô# AÑ% aÑ'ð 	ð 	ˆAØ�EŠE�!‰HŒHˆHˆHØˆrH   c                 óè  — t          dd¦  «        }t          ¦   «         }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|j        _	        d|j        d	         _
        d
|j        d	         _	        d
d
g|j        d	         _        d|j        d	         _        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d
         _        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        d| j        d         _        d| j        d	         _        d| j        d         _        d| j        d         _        d| j        d         _        |                     |¦  «         |S r”  )r   rr  r¯   r°   r¹   r»   r8  rÊ   rÑ   r_   rj   rd   rn   r   r¡  rm   r‹  rb   rŒ  r�  rŽ  r¢  r£  r¤  rŽ   r¥  r¦  s      rF   r¨  z
Pie3d.demoQ  st  € Ý�C˜ÑÔˆå‰UŒUˆØˆŒØˆŒØˆŒØˆŒ	Ø%Ð%Ð%ˆŒØ-Ð-Ð-ˆŒ	à!ˆŒ	ÔØ ˆŒ	�!ŒÔØ#$ˆŒ	�!ŒÔ Ø()¨! uˆŒ	�!ŒÔ$Ø#'ˆŒ	�!ŒÔ Ý!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'Ô!1ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔØ!"ˆŒ�AŒÔØ!"ˆŒ�AŒÔØ!"ˆŒ�AŒÔØ!"ˆŒ�AŒÔØ!"ˆŒ�AŒÔà	�Šˆb‰	Œ	ˆ	ØˆrH   N)rY   rZ   r[   r¡   rr  r¢   r   r£   rV  rW  rX  r]  rb  rg  rl  rp  rs  rŸ   r{  r  r¨  rB   rH   rF   rU  rU     s  € € € € € Øˆw˜CØ"�l 8Ð2KÐLÑLÔLØ�< Ð/BÐCÑCÔCØ�< Ð/@ÐAÑAÔAð
ñ 
ô 
€Hð
 €KØ€HØ€HðCð Cð Cðcð cð cðcð cð cð8ð 8ð 8ð8ð 8ð 8ð2ð 2ð 2ð>ð >ð >ð}ð }ð }ð}ð }ð }ð~ð ð ð ð rH   rU  c                  óÀ   — t          dd¦  «        } t          ¦   «         }d|_        d|_        dg|_        dg|_        d|j        _        |                      |¦  «         | S )ú1Make a degenerated pie chart with only one slice.é�  r•  é–   r–  r—  r   rf   )	r   rr  r¯   r°   r8  rÊ   rÑ   r_   r¥  ©r`  r§  s     rF   Úsample0ar›  s  sZ   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØˆd€B„GØ�€B„IØ€B„IÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óÜ   — t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        dg|_        dg|_        d	|j        _	        |  
                    |¦  «         | S )
r—  r˜  r•  r™  r–  éx   r†  r—  r   rf   )r   rr  r¯   r°   r¹   r»   r8  rÊ   rÑ   r_   r¥  rš  s     rF   Úsample0brž  „  sh   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IØˆd€B„GØ�€B„IØ€B„IÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  ó�  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        g d¢|_        d|j        _        d|j        d	         _        d
|j        d	         _        d
d
g|j        d	         _	        d|j        d	         _
        t          j        |j        d	         _        |                      |¦  «         | S )zFMake a typical pie chart with with one slice treated in a special way.r˜  r•  r™  r–  r™  r�  rf   rš  rœ   rg   r   )r   rr  r¯   r°   r8  rÊ   rÑ   r_   rj   rd   rn   r   r¡  rm   r¥  rš  s     rF   Úsample1r   —  s®   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØ&Ð&Ð&€B„GØ.Ð.Ð.€B„Ià€B„IÔØ€B„Iˆa„LÔØ €B„Iˆa„LÔØ$% a 5€B„Iˆa„LÔ Ø#€B„Iˆa„LÔÝ#œZ€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óØ  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|j        _	        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d
         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        |                      |¦  «         | S )z"Make a pie chart with nine slices.r˜  r•  é}   rZ  )	g×£p=
×Ó?g‹lçû©ñÂ?gÙÎ÷Sã¥»?gÛù~j¼t³?gL7‰A`å ?g¸…ëQ¸ž?gÛù~j¼t“?gTã¥›Ä À?g333333Ã?)	Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8ÚXr™  rf   r   rg   rœ   r‡  rM   rˆ  r#  é   )r   rr  r¯   r°   r8  rÊ   r¹   r»   rÑ   r_   r   Ú	steelbluerb   ÚthistleÚ
cornflowerÚlightsteelbluer¢  r£  r¤  ÚtanÚdarkseagreenr¥  rš  s     rF   Úsample2r³  ®  s  € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„Dð#ð #ð #€B„Gð >Ð=Ð=€B„Ià€B„HØ€B„IØ€B„IÔå#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#œZ€B„Iˆa„LÔÝ#Ô0€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óv  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        d|_        d|_        d|j        _        t          j
        |j        d         _        t          j        |j        d         _        t          j        |j        d	         _        |                      |¦  «         | S )
z(Make a pie chart with a very slim slice.r˜  r•  r¢  rZ  )éJ   rf   rZ  r™  rf   r   rg   )r   rr  r¯   r°   r8  r¹   r»   rÑ   r_   r   r­  rb   r®  r¯  r¥  rš  s     rF   Úsample3r¶  Î  s“   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„Dàˆkˆk€B„Gà€B„HØ€B„IØ€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  ó  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        d|_        d|_        d|j        _        t          j
        |j        d         _        t          j        |j        d         _        t          j        |j        d	         _        t          j        |j        d
         _        t          j        |j        d         _        t          j        |j        d         _        |                      |¦  «         | S )z/Make a pie chart with several very slim slices.r˜  r•  r¢  rZ  ©rµ  rf   rf   rf   rf   é   r™  rf   r   rg   rœ   r‡  rM   )r   rr  r¯   r°   r8  r¹   r»   rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r¥  rš  s     rF   Úsample4rº  å  sÈ   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„Dà"Ð"Ð"€B„Gà€B„HØ€B„IØ€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  ó>  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|j	        _
        t          j        |j	        d	         _        t          j        |j	        d         _        t          j        |j	        d
         _        t          j        |j	        d         _        t          j        |j	        d         _        t          j        |j	        d         _        |                      |¦  «         | S )zMake a pie with side labels.r˜  r•  r¢  rZ  )r#  rf   rf   rf   rf   rg   ©Úexample1Úexample2Úexample3Úexample4Úexample5Úexample6rf   r™  r   rg   rœ   r‡  rM   )r   rr  r¯   r°   r8  rÊ   r¬   r¹   r»   rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r¥  rš  s     rF   Úsample5rÃ  þ  sÜ   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„Dà Ð Ð €B„GØXÐXÐX€B„IØ€B„Mà€B„HØ€B„IØ€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óŽ  — t          dd¦  «        } t          ¦   «         }	 d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|j	        _
        t          j        |j	        d         _        t          j        |j	        d         _        t          j        |j	        d	         _        t          j        |j	        d
         _        t          j        |j	        d         _        t          j        |j	        d         _        t'          dddd¦  «        }|                      |¦  «         |                      |¦  «         | S )z=Illustrates the pie moving to leave space for the left labelsr˜  r•  r   rZ  r¸  r¼  rf   r™  rg   rœ   r‡  rM   )r   rr  r¯   r°   r8  rÊ   r¬   r¹   r»   rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r'   r¥  )r`  r§  rð   s      rF   Úsample6rÅ    sÿ   € õ 	��SÑÔ€Aå	‰Œ€BØ'Ø€B„DØ€B„Dà"Ð"Ð"€B„GØXÐXÐX€B„IØ€B„Mà€B„HØ€B„IØ€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔåˆQˆq��3‰Œ€Aà‡E‚Eˆ"�I„I€IØ‡E‚Eˆ!�H„H€Hà€HrH   c                  óZ  — t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|_        d|_	        d	|_
        d|j        _        t          j        |j        d	         _        t          j        |j        d         _        t          j        |j        d
         _        t          j        |j        d         _        t          j        |j        d         _        t          j        |j        d         _        |                      |¦  «         | S )zCase with overlapping pointersr˜  r•  r–  r™  r†  )rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   )r½  r¾  r¿  rÀ  rÁ  rÂ  Úexample7Úexample8Úexample9Ú	example10Ú	example11Ú	example12Ú	example13Ú	example14Ú	example15Ú	example16Ú	example17Ú	example18Ú	example19Ú	example20Ú	example21Ú	example22Ú	example23Ú	example24Ú	example25Ú	example26Ú	example27Ú	example28rf   r   rg   rœ   r‡  rM   )r   rr  r°   r¯   r¹   r»   r8  rÊ   r¬   rw  r«   rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r¥  rš  s     rF   Úsample7rÝ  9  sø   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IàbÐbÐb€B„Gðkð kð k€B„Ið €B„MØ€BÔØ€B„Oð €B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óN  — 	 t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|_        d|_	        d|j
        _        t          j        |j
        d	         _        t          j        |j
        d         _        t          j        |j
        d
         _        t          j        |j
        d         _        t          j        |j
        d         _        t          j        |j
        d         _        |                      |¦  «         | S )úCase with overlapping labelsr˜  r•  r–  r™  r†  )rf   rf   rf   rf   rf   rò   r–  rf   rf   rf   rf   rf   rf   r›  rš  r—  ©r½  r¾  r¿  rÀ  rÁ  rÂ  rÇ  rÈ  rÉ  rÊ  rË  rÌ  rÍ  rÎ  rÏ  rÐ  rf   r   rg   rœ   r‡  rM   )r   rr  r°   r¯   r¹   r»   r8  rÊ   r¬   rw  rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r¥  rš  s     rF   Úsample8rá  [  sð   € ð eå��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IàAÐAÐA€B„Gð*ð *ð *€B„Ið €B„MØ€BÔà€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   c                  óN  — 	 t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|_	        d|j
        _        t          j        |j
        d	         _        t          j        |j
        d         _        t          j        |j
        d
         _        t          j        |j
        d         _        t          j        |j
        d         _        t          j        |j
        d         _        |                      |¦  «         | S )rß  r˜  r•  r¢  r–  )é)   rš  r›  é   rš  rò   r–  rä  rZ  é#   rZ  rš  rò   r›  rš  rò   rà  rf   r†  r   rg   rœ   r‡  rM   )r   rr  r¯   r°   r8  rÊ   r¬   rw  r¹   r»   rÑ   r_   r   r­  rb   r®  r¯  r°  r¢  r£  r¥  rš  s     rF   Úsample9ræ  {  sð   € ð _å��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DàNÐNÐN€B„Gð*ð *ð *€B„Ið €B„MØ€BÔà€B„HØ€B„IØ€B„IÔÝ#Ô-€B„Iˆa„LÔÝ#œ^€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô2€B„Iˆa„LÔÝ#Ô.€B„Iˆa„LÔÝ#Ô-€B„Iˆa„LÔà‡E‚Eˆ"�I„I€Ià€HrH   Ú__main__)Ú	renderPDFr©  Úsamplezsample%sz%s.pdfrA   r„  )Frê   )sÚ__version__r    Ú	functoolsÚmathr   r   r   Úreportlab.libr   Úreportlab.lib.validatorsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú"reportlab.graphics.widgets.markersr   r   Úreportlab.lib.attrmapÚreportlab.graphics.shapesr   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úreportlab.graphics.widgetbaser(   r)   Úreportlab.graphics.charts.areasr*   r&  r+   Ú$reportlab.graphics.charts.textlabelsr,   Ú	reportlabr.   rU   rT   rÒ  rä  r?   r]   rÆ   rÌ   rÎ   rÝ   ræ   ré   r  r  r%  r'  Ú
cmp_to_keyr0  r9  r<  r>  r]  rj  rù   rl  rr  r  Ú!reportlab.graphics.charts.utils3drA  rB  rú   rý   rD  rJ  rS  Ú_270rrU  r›  rž  r   r³  r¶  rº  rÃ  rÅ  rÝ  rá  ræ  rY   ÚsysÚreportlab.graphicsrè  Úargvr   Ú
startswithÚnameÚglobalsr@  Ú
drawToFilerB   rH   rF   ú<module>r      sD  ðð €ð	€ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  ð@ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ #Ð #Ð #Ð #ð Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  Eð  EØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð à˜D S¨d¸ÀÈ3ÐUYÐ`dÐeÐeÐ Ø˜T c¨t¸À$ÈCÐVZÐaeÐfÐfÐ à€Ø�hÑ€ðð ð ð ð �ñ ô ð ðZ)ð Z)ð Z)ð Z)ð Z)�jñ Z)ô Z)ð Z)ðx<ð <ð <ð <ð|ð ð ðð ð ð ð �xñ ô ð ð6oð oð oðð ð ð ð ð ð ðGð Gð Gð GðRð ð ð
.ð .ð .ð$ð $ð $à
ˆ)Ô
˜wÑ
'Ô
'€ðð ð ðð ð ð ðD8ð 8ð 8à	ˆÔ	˜fÑ	%Ô	%€ðð ð ðD"ð D"ð D"ð D"ðLð ð ð2ð ð ð ð �ñ ô ð ðuð uð uð uð uÐ
ñ uô uð uðnDð Dð Dð Dð D�#ñ Dô Dð DðL OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NðE&ð E&ð E&ð E&ð E&˜
ñ E&ô E&ð E&ðN6ð 6ð 6ð 6ð 6ñ 6ô 6ð 6ðð ð à
ˆ)Ô
˜wÑ
'Ô
'€àˆˆc‰
Œ
€ðPð Pð Pð Pð PˆCñ Pô Pð Pðfð ð ð"ð ð ð&ð ð ð.ð ð ð@ð ð ð.ð ð ð2ð ð ð6ð ð ð@ ð  ð  ðDð ð ð@ð ð ð@ ˆZÒÐðð
 €J€J€JØ,Ð,Ð,Ð,Ð,Ð,ØŒ8�A�B�BŒ<Ð ˜C˜5€DØð 7ð 7ˆØ—L’L Ñ*Ô*Ð>ˆqˆq°
¸Q±ˆØ!�'�'‘)”)˜D”/Ñ#Ô#ˆØˆ	Ô˜W h°¡oÑ6Ô6Ð6Ð6ð Ðð7ð 7rH   