
    Bhm                         S r SSKJrJrJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJrJr  SS
KJr  SrS rS rS r SS jrS rS rSS jrS rS rg)zDraw borders.    )ceilfloorpisqrttan   )boxes)replaced)
percentage)Matrix   )	get_colorstyled_color)stacked)toprightbottomleftc           
         UR                   S   S   S:X  d  UR                  c  gUR                  5       u  p#pEpgp[        X#S9n
XR                  -  n
U R                  X#XEUR                   S   5      n[        XUR                  UR                   S   UR                   S   UR                   S	   UR                   S
   5        g)z5Set ``box`` mask border as alpha state on ``stream``.mask_border_sourcer   noneNefmask_border_modemask_border_slicemask_border_repeatmask_border_outsetmask_border_width)stylemask_border_imagerounded_border_boxr   ctmset_alpha_statedraw_border_image)streamboxxywhtltrbrblmatrixmask_streams               H/var/www/html/env/lib/python3.13/site-packages/weasyprint/draw/border.pyset_mask_borderr3      s    
yy%&q)V3s7L7L7T!$!7!7!9A!aF
jjF((qSYY?Q5RSK#//;N1O		&'3G)H		%&(    c                    UR                   S   S:w  a  g[        U[        R                  5      =(       a+    UR                   S   S:g  =(       d    UR                   S   S:g  nU(       GaO  UR                   S   (       Ga:  SSSUR                   S   4nS	nUR                   GH  nUR                   S
   S:X  a  S	nM  U(       a  SnM&  [        U 5         UR                   S   nUR                   S   nUR                   S   S:X  a  UR                   S   nO#[        UR                   S   UR                  5      nUR                  UR                   S   U-   S-  -
  n	XR                  XeR                  4n
[        XUSX5        [        U[        UR                   S5      S5      n[        X
X7U5        SSS5        GM     UR                   S   S   S:w  a\  UR                  bO  [!        XUR                  UR                   S   UR                   S   UR                   S   UR                   S   5        g["         Vs/ s H  n[%        USU S35      PM     nn['        U5      S1:X  a  g["         Vs/ s H  n[        UR                   SU S35      PM     nn[)        ["        5       VVs/ s H-  u  pX   R*                  =(       a    UR                   SU S3   PM/     nnn['        U5      S1S14;   n[-        ['        U5      5      S :H  nSU;  nU(       a"  U(       a  U(       a  [/        XUS   US   5        g[1        [3        ["        XU5      5      nS! Hx  nUU   u  nnnnUS:X  d  U(       d  M  [        U 5         [        U UUXR5                  5       SS" XR5                  5       S"S 5        [/        XU[        UX5      5        SSS5        Mz     g! , (       d  f       GM7  = fs  snf s  snf s  snnf ! , (       d  f       M  = f)#zADraw the box borders and column rules to a ``pdf.stream.Stream``.
visibilityvisibleNcolumn_widthautocolumn_countcolumn_rule_widthr   Tcolumn_spanallFcolumn_rule_style
column_gapnormal	font_sizer   r   column_rule_colorborder_image_sourcer   border_image_sliceborder_image_repeatborder_image_outsetborder_image_widthborder__width_color_stylesoliddoubler   )r      r   r      )r    
isinstancer	   BlockContainerBoxchildrenr   r   width
position_x
position_yheightclip_border_segmentr   r   draw_rect_borderborder_imager%   SIDESgetattrset	enumeratealphalendraw_rounded_bordertuplezipr"   )r&   r'   columnsborder_widths	skip_nextchild
rule_width
rule_stylegaprT   
border_boxcolorsidewidthscolorsistylessimple_stylesingle_color
four_sidesvaluesindexrS   r    s                           r2   draw_borderrv      s    yy)+ 	3//0 	1IIn%/ 0IIn%/  399011Aq#)),?"@A	\\E{{=)U2 	!	 YY':;
 YY':;
99\*h6))K0C$SYY|%<ciiHC$$		2E(F(LPQ'QQ (*:*:JU
#
FJW$	#))5H I6S ]PUV ! "0 yy&'*f49I9I9U))3995I+JII+,cii8M.NII*+	- 	?DEutgcWTF&12uFE
6{qcGLMuti		WTF&#9:uFM #5)+)IQ 		=CIIvV&<==)  + v;G9xj"99Ls6{#q(L&JFF1I>
 3uff56F$*5M!eUEA:UV_ud,B,B,DRa,H..046  UL$DF	 _	 _ !0 F N+( _s,   CO2O'$O4O#0A	O)
O	)
O8	c                   ^ ^^^4^5 TR                  T R                  S   T R                  S   5      u  pxn	[        R                  " XxU	SST R	                  5       T R                  5       S9u  m5m4USS n
US   nS nU" U
S   T45      nU" U
S   T55      nU" U
S	   T45      nU" U
S
   T55      nUu  nnT R                  5       u  nnnnnnnnT R                  5       u  nnnnnn n!n"UU-
  n#UU-
  n$UU-
  U#-
  n%UU-
  U$-
  n&S n'U'" US   U$5      n(U'" US   U%5      n)U'" US	   U&5      n*U'" US
   U#5      n+UU+-  nUU(-  nUU+U)-   -  nUU(U*-   -  nS n,U," US   U$UU5      n$U," US   U%UU5      n%U," US	   U&UU5      n&U," US
   U#UU5      n#  SU UU4U5U4S jjn-U-" UUU#U$SSUU5      u  n.n/U-" UU-   U%-
  UU%U$T5U-
  SX5        U-" UU-   U%-
  UU-   U&-
  U%U&T5U-
  T4U-
  X5      u  n0n1U-" UUU-   U&-
  U#U&ST4U-
  UU5        UU-   T5:  =n2(       aC  U-" UU#-   UUU#-
  U%-
  U$UST5U-
  U-
  UUS9	  U-" UU#-   UU-   U&-
  UU#-
  U%-
  U&UT4U-
  T5U-
  U-
  UUS9	  X-   T4:  =n3(       aC  U-" UU-   U%-
  UU$-   U%UU$-
  U&-
  T5U-
  UUT4U-
  U-
  US9	  U-" UUU$-   U#UU$-
  U&-
  SUUT4U-
  U-
  US9	  U(       aR  U2(       aJ  U3(       aB  U-" UU#-   UU$-   UU#-
  U%-
  UU$-
  U&-
  UUT5U-
  U-
  T4U-
  U-
  UUU.=(       d    U0U/=(       d    U1S9  gggg)zHDraw ``image`` as a border image for ``box`` on ``stream`` as specified.image_resolutionrA   N)specified_widthspecified_heightdefault_widthdefault_heightrO   c                     [        U [        [        45      (       a  [        X5      $ U R                  S:X  d   e[        SU R
                  5      S-  U-  $ )N%d   )rP   intfloatminunitvalue)	dimension	intrinsics     r2   compute_slice_dimension2draw_border_image.<locals>.compute_slice_dimension{   sK    i#u..y,,>>S(((sIOO,s2Y>>r4   r   r   r   rN   c                 v    U R                   c  U R                  U-  $ U R                   S:X  d   eU R                  $ )Npx)r   r   )r   from_borders     r2   compute_outset_dimension3draw_border_image.<locals>.compute_outset_dimension   s7    >>!??[00>>T)))??"r4   c                     U S:X  a  U$ [        U [        [        45      (       a  X-  $ U R                  S:X  a  U R                  S-  U-  $ U R                  S:X  d   eU R                  $ )Nr9   r~   r   r   )rP   r   r   r   r   )r   originalr   area_dimensions       r2   compute_width_adjustment3draw_border_image.<locals>.compute_width_adjustment   sf    	C<00''^^s"??S(>99>>T)))??"r4   c                 *  > STX&4;   a  Sn
OSnU
(       d  U(       a  U(       a  X7-  OSn
US:X  a  [        X&-  U
-  5      nOTUS:X  a   [        X&-  U
-  5      nX*-  X-  -
  US-   -  nO.US:X  a"  [        S[        X&-  U
-  5      5      nX-U-  -  n
OSnX&-  n
STX74;   a  SnOSnU(       d  U(       a  U(       a  X&-  OSnU	S:X  a  [        X7-  U-  5      nOTU	S:X  a   [        X7-  U-  5      nX;-  X-  -
  US-   -  nO.U	S:X  a"  [        S[        X7-  U-  5      5      nX?U-  -  nOSnX7-  nSX4;   a  X4$ TU
-  nTU-  nUU-  T-  nUU-  T-  n[	        T5         TR                  XX#5        TR                  5         TR                  5         TR                  U U-
  W-   UU-
  W-   S9  TR                  XS9  [        W5       H  n[        W5       H  n[	        T5         UXl-   -  nUX~-   -  nTR                  UUS9  TR                  UU
-  UU-  Xg5        TR                  5         TR                  5         TR                  TTTTR                  S   5        S S S 5        M     M     S S S 5        X4$ ! , (       d  f       M  = f! , (       d  f       X4$ = f)	Nr   r   repeatspaceroundr   )adimage_rendering)r   r   maxr   r   	rectangleclipend	transformrangedrawr    )r(   r)   rS   rV   slice_xslice_yslice_widthslice_heightrepeat_xrepeat_yscale_xscale_yextra_dxn_repeats_xextra_dyn_repeats_yrendered_widthrendered_heightoffset_xoffset_yro   jtranslate_xtranslate_yr'   imageintrinsic_heightintrinsic_widthr&   s                           r2   draw_border_image_region3draw_border_image.<locals>.draw_border_image_region   s    %55GH5;60RS8#"5#6#@AW$#E$7'$AB _{'@@[ST_U W$!!U5+>+H%IJ#<=-!688GH38[5.a8#"6#87#BCW$#F$9G$CD %(BB{UVW W$!!U6+@7+J%KL ,$>? /""##(72*W4!G+o="W,/??V_Q51KKMJJLq8|h6!h,:QRw2;'{+A &';+A&B&'<+B&C((;+(F(($w.70B'7 



"O5EII&78: ) , ( *  ) _* s&   BJA9I0	J0
I?:J
J)r   )r   )r   r   r   r   )stretchr   NN)get_intrinsic_sizer    r
   default_image_sizingborder_widthborder_heightr"   rounded_padding_box)6r'   r&   r   border_sliceborder_repeatborder_outsetr   rS   rV   ratioimage_sliceshould_fillr   	slice_topslice_rightslice_bottom
slice_leftr   r   r(   r)   r*   r+   r,   r-   r.   r/   r   pypwphptlptrpbrpblborder_left
border_topborder_rightborder_bottomr   
outset_topoutset_rightoutset_bottomoutset_leftr   r   
scale_left	scale_topscale_rightscale_bottomx_middley_middler   r   s6   ```                                                 @@r2   r%   r%   n   s    !33		$%syy'=?E5(0(E(EudT&&(9J9J9L)N%O% r"Kq/K? (A8HII)+a./JK*;q>;KLL(QIJ&Hh!$!7!7!9Aq!QBB),)@)@)B&BBCc3q&KaJr6K'LFZ'M# *-*:JGJ+M!,<lKL,]1-=}MM*=+;[IKAOA|	##Am	##A
#" *QY3J+Q{A7L,Qa9M*Qj!5K MV7;J  J Z 5	1k:q!ZDJ	 	Aaz+%q+B !9	Aa!em3\=+%'7,'F!#K
 	1q5= +}	l*JF +o==x= OQK, >
?Z7+E	*
 	!OQU]2Ol*M(<7j(;6	 +.>>>x> EL !j.!j.=8k)9)I5D	 	!q:~{A
N],Jy*y(<7		
 xH OQ^Q_|-K
N]*J	j(;6y(<7-+y7PL	R %-x{r4   Nc           
      
  ^ ^^3^4^5 Uu  pxpU=(       d    Su  u  pu  pu  nnu  nnU=(       d    SU4-  u  nnnnS nS nTS:X  a,  U" XUU5      u  u  nnnU" U* UU* U5      u  u  nnnUnSnSm3Um5OTS:X  a3  U" U* UU* U5      u  u  nnnU" U* U* U* U* 5      u  u  nnnUnSnSm3Xy-   m5OjTS	:X  a3  U" UU* UU* 5      u  u  nnnU" U* U* U* U* 5      u  u  nnnUnS
nSm3X-   m5O1TS:X  a+  U" XUU5      u  u  nnnU" UU* UU* 5      u  u  nnnUnS
nSm3Um5TS;   a  WUS-  -
  WW-  US-  -
  n!n W* US-  -
  UW-  US-  -
  n#n"U	U-
  U-   n$U	n%T R                  Xy-   T55        T R                  UT55        T R                  UU-   T5U-   5        T R                  Xy-   U-   T5U-   5        OTS;   a  W* W-  US-  -
  WUS-  -
  n!n U* W-  US-  -
  W* US-  -
  n#n"U
U-
  U-   n$U
n%T R                  T5X-   5        T R                  T5U5        T R                  T5U-   UU-   5        T R                  T5U-   X-   U-   5        US;   Ga  US:X  a  UOSU-  m4W(       d  W(       Ga  U" W W!5      n&U" W"W#5      n'W$U&-   U'-   n%[        U%T4-  5      n(U(       a  W(       a  U%U(U(S-  -   -  m4OU%U(U(S-  -   S-
  -  m4[        U&T4S-  -
  T4-  5      n)[        U'T4S-  -
  T4-  5      n*[	        U$T4-  5      n+U3U4U5UU 4S jn,U," U)U+WXxWWU&5      u  n+n-U," U*U+U* Xy-   X-   WWU'5      S   n+U$S:  a  [        SU+S5       H  n.U.U--  n.TS;   aH  [        UU-   U.T4-  -   UU-   5      n/[        UU-   U.S-   T4-  -   Xy-   U-   5      n0T5US:  a  UOS-
  n1U1U-   n2OMTS;   aG  [        UU-   U.T4-  -   UU-   5      n1[        UU-   U.S-   T4-  -   X-   U-   5      n2T5US:  a  UOS-
  n/U/U-   n0T R                  W/W1W0U/-
  W2U1-
  5        M     OT R                  SS9  T R                  5         W%[        U%T4-  5      [        U%T4-  5      S-   S-  -
  -  =(       d    Sm4[        S[        U%T4-  5      S5       H  n.TS:X  a  T R                  UU.T4-  -   UT4U5        M%  TS:X  a!  T R                  Xy-   U-
  UU.T4-  -   UT45        ML  TS	:X  a!  T R                  UU.T4-  -   X-   U-
  T4U5        Ms  TS:X  d  M{  T R                  XxU.T4-  -   UT45        M     T R                  SS9  T R                  5         g)zClip one segment of box border.

The strategy is to remove the zones not needed because of the style or the
side before painting.

)r   r   r   r   r   rO   c                 v    [        U 5      [        U5      :  a  [        U5      [        U5      :  a  X4S4$ X#4S4$ )a  Get the point use for border transition.

The extra boolean returned is ``True`` if the point is in the padding
box (ie. the padding box is rounded).

This point is not specified. We must be sure to be inside the rounded
padding box, and in the zone defined in the "transition zone" allowed
by the specification. We chose the corner of the transition zone. It's
easy to get and gives quite good results, but it seems to be different
from what other browsers do.

TF)abs)x1y1x2y2s       r2   transition_point-clip_border_segment.<locals>.transition_pointI  s@     !$B#b' 1c"gB6GbXt	$(E"	$r4   c           
      x    X-
  X-   -  n[         S-  X-   -  SSUS-  -  S[        SSUS-  -  -
  5      -   -  -   -  $ )a  Return the length of the half of one ellipsis corner.

Inspired by [Ramanujan, S., "Modular Equations and Approximations to
pi" Quart. J. Pure. Appl. Math., vol. 45 (1913-1914), pp. 350-372],
wonderfully explained by Dr Rob.

https://mathforum.org/dr.math/faq/formulas/

   r   rN   r   
   rO   )r   r   )r   br(   s      r2   corner_half_length/clip_border_segment.<locals>.corner_half_lengthZ  sU     UquAvAF
b4AQJ#7788: 	:r4   r   r   r   r   r   rN   r   r   r   r   r   )dotteddashedr         ?c           	      x  > U (       d  US-   S4$ [        SU S5       GH  nUS-  nST-  U-
  X-  T-  U-  -   S-  [        -  n	US:  a  [        O[        " ST-  U-
  US-   U-  T-  U-  -   S-  [        -  T[        -  S-  5      n
TS;   ah  TR	                  X5-   TU-   5        TR                  X5-   X%-  S-  [        U
5      -  -
  T5        TR                  X5-   X%-  S-  [        U	5      -  -
  T5        OgTS;   aa  TR	                  TU-   XF-   5        TR                  TXF-   X&-  [        U
5      -  -   5        TR                  TXF-   X&-  [        U	5      -  -   5        U
T[        -  S-  :X  d  GMP  X-
  ST-  U-
  US-   U-  T-  U-  -   S-  [        -  U	-
  -  nUS-  n  X4$    ST[        -  S-  W
-
  U
W	-
  -  -
  nX4$ )Nr   r   r   r   rO   r   r   )r   r   r   r   move_toline_tor   )dasheslinewayr(   r)   r   r   chlro   angle1angle2offsetangledashmain_offsetrl   r&   s               r2   	draw_dots&clip_border_segment.<locals>.draw_dots  s&   !8Q;&q&!,AHAe)c/QWt^c-AA  &)1Wc#5e)c/a!es]T-AC-GG
Q(F 00qv{R/?@FSX\CK%??NFSX\CK%??N!22{R'7@'#(S[2H)HJ'#(S[2H)HJa/"(/%i#o!a%31E1KK "#&,7- ". 	 |#= -8 a&0Vf_EGF|#r4   r   gư>Teven_oddN)r   r   r   r   r   r   r   r   r   r   r   )6r&   r    rS   rl   rj   rd   radiibbxbbybbwbbhtlhtlvtrhtrvbrhbrvblhblvbtr.   bbr/   r   r   px1py1rounded1px2py2rounded2r   a1b1a2b2line_lengthlengthchl1chl2dash_lengthdashes1dashes2r   r  r   ro   r   r   r   r   r   r   r   s6   `  `                                               @@@r2   rW   rW   =  sG    $Cc5:5Km2JS
JS#
c"2a5(lNBB$": u}/"bA
cH/cB3C
cH	/cB3C
cH/sdRC"E
cHi		/cT2sC
cH/sdRC"E
cHi	/"bA
cH/cT2sC
cH  rAvsSy5194BQc	EAI 5BCi#osy+.sK(sSy+"34sy3c(9:	"	"eai'rAvBeai'#QBCi#o{CI.{C({S(#)4{S(#)c/:$$)uq5yx%b"-D%b"-D 4'$.F.KH{Q!>? {Q!>!DED4!8Ot34GD4!8Ot34Gt+,D!$ !$F %sCc3>LD&tSY	3TKKLND T!q$*AKA00 sQX!5sSyA sa!et^!;SY_M(S1WE!D%Z!22 sQX!5sSyA sa!et^!;SY_M(S1WE!D%Z$$RR"Wb2g> + KKK&JJLftm$ftm(<q(@A'EEG LJK 1eFTM2A65=$$S1t8^S$FW_$$	E)3T>5$HX%$$a$h	E(94HV^$$SD.%F 7 KKK
JJLr4   c                    US;   a  U R                  US   5        [        XR                  5       5        [        XR                  S5      5        U R	                  SS9  U R                  US   5        [        XR                  S5      5        [        XR                  5       5        U R	                  SS9  g U R                  U5        [        XR                  5       5        US:X  a4  [        XR                  S5      5        [        XR                  S	5      5        [        XR                  5       5        U R	                  SS9  g )
Nridgegroover   r   Tr  r   rM   gUUUUUU?gUUUUUU?)	set_colorrounded_boxr   rounded_box_ratiofillr"   )r&   r'   r    rk   s       r2   r`   r`     s   ##q"F3356F11%89T"q"F11%89F2245T"
U//12F11%89F11%89..01
KKKr4   c                 J   Uu  pVpxUu  ppUS;   a  U R                  US   5        U R                  " U6   U R                  X\S-  -   XiS-  -   X|U
-   S-  -
  XU-   S-  -
  5        U R                  SS9  U R                  X\S-  -   XiS-  -   X|U
-   S-  -
  XU-   S-  -
  5        U R                  X\-   Xi-   X|-
  U
-
  X-
  U-
  5        U R                  US   5        U R                  SS9  g U R                  U5        U R                  " U6   US:X  ah  U R                  X\S-  -   XiS-  -   X|U
-   S-  -
  XU-   S-  -
  5        U R                  X\S-  S-  -   XiS-  S-  -   X|U
-   S-  S-  -
  XU-   S-  S-  -
  5        U R                  X\-   Xi-   X|-
  U
-
  X-
  U-
  5        U R                  SS9  g )	Nr&  r   r   Tr  r   rM   rN   )r)  r   r,  )r&   r'   rm   r    rk   r  r  r  r	  r  r.   r  r/   s                r2   rX   rX   	  s   CcNBB##q"#q&L#Q,7a-R1}!4	6 	T"q&L#Q,7a-R1}!4	6 	38SX]CHrMJq"T"
U
cq&L#Q,7a-R1}!4	6 	q&1*cFQJ.7a-!##SGq=1+<%<	> SXsxB2F
KKKr4   c	           
         X:X  d  X$:X  d   e[        U 5         US;  a  U R                  USS9  US:X  a  U R                  SU-  /U5        OUS:X  a  U R                  U/U5        US:X  a  U R                  US-  5        X:X  a^  U R	                  XS-  -
  U5        U R                  X5S-  -
  U5        U R	                  XS-  -   U5        U R                  X5S-  -   U5        GO}X$:X  a\  U R	                  XUS-  -
  5        U R                  X4US-  -
  5        U R	                  XUS-  -   5        U R                  X4US-  -   5        GOUS;   Ga  U R                  US	-  5        U R                  US
   SS9  X:X  a/  U R	                  XS-  -   U5        U R                  X5S-  -   U5        O3X$:X  a.  U R	                  XUS-  -   5        U R                  X4US-  -   5        U R                  5         U R                  US   SS9  X:X  a0  U R	                  XS-  -
  U5        U R                  X5S-  -
  U5        GO-X$:X  a.  U R	                  XUS-  -
  5        U R                  X4US-  -
  5        OUS:X  a  X$:X  d   eSn	SU-  n
U R                  XS	U
-  -
  X1-
  SU
-  5        U R                  5         U R                  5         X-
  nU R	                  X5        X:  aY  U R                  U5        U R                  XS	-  -   X)U
-  -   USU
-  S	-  -   X)U
-  -   US	U
-  -   U5        US	U
-  -  nU	S-  n	X:  a  MY  O3U R                  U5        U R	                  X5        U R                  X45        U R                  5         S S S 5        g ! , (       d  f       g = f)Nr&  T)stroker      r   rM   rN   r   r   rO   r   wavyg      ?r   )r   r)  set_dashset_line_widthr   r   r/  r   r   r   curve_to)r&   r   r   r   r   	thicknessr    rk   r   upradiusr(   s               r2   	draw_liner8  '  s[   8rx	++U40HOOQ]OV4hOOYK0H!!)a-0xrM126rM126rM126rM126r	A#56r	A#56r	A#56r	A#56))!!)a-0U1Xd3xrM126rM126r	A#56r	A#56MMOU1Xd3xrM126rM126r	A#56r	A#56f_8O8BI%FRa&j"'1v:FKKMJJLANN1!&%%i0
NBf$4F
Q&&[(8F
NB( QZb & !!),NN2"NN2"{ 
s   LM8+AM88
Nc                    UR                   S   nUR                   S   n[        UR                   S5      nUR                   S   nUR                   S   S:X  a  U(       a  UR                  (       a  UR                  5       U-
  U-
  UR	                  5       U-
  U-
  UR                  5       SU-  -   SU-  -   UR                  5       SU-  -   SU-  -   4n[         H@  n[        U 5         [        XX'U5        [        XSU4-  U[        XTU5      5        S S S 5        MB     UR                   H/  n[        U[        R                  5      (       d  M$  [!        X5        M1     g ! , (       d  f       M  = f)	Noutline_widthoutline_offsetoutline_coloroutline_styler6   r7   r   rO   )r    r   r^   border_box_xborder_box_yr   r   rZ   r   rW   rX   r   rR   rP   r	   Boxdraw_outline)	r&   r'   rS   r   rk   r    outline_boxrl   rf   s	            r2   rA  rA  j  s;   IIo&EYY'(Fcii1EIIo&E
yy)+%++&/&/U*QZ7!e)+a&j8	:
 D#F5L eXu t46 !  eUYY'''  !s   %*E
E*	c           
         Uu  p#pEpgp[        S XgX4 5       5      (       a  U R                  X#XE5        gSn
U R                  X&S   -   U5        U R                  X$-   US   -
  U5        U R	                  X$-   US   U
-  -
  X2U-   X7S   U
-  -   X$-   X7S   -   5        U R                  X$-   X5-   US   -
  5        U R	                  X$-   X5-   US   U
-  -
  X$-   US   U
-  -
  X5-   X$-   US   -
  X5-   5        U R                  X)S   -   X5-   5        U R	                  X)S   U
-  -   X5-   X#U-   U	S   U
-  -
  X#U-   U	S   -
  5        U R                  X#US   -   5        U R	                  X#US   U
-  -   X&S   U
-  -   X2US   -   U5        g)zDraw the path of the border radius box.

``widths`` is a tuple of the inner widths (top, right, bottom, left) from
the border box. Radii are adjusted from these values. Default is (0, 0, 0,
0).

c              3   ,   #    U  H
  nS U;   v   M     g7f)r   N ).0corners     r2   	<genexpr>rounded_box.<locals>.<genexpr>  s     
6%561;%5s   Ng?r   r   )r=   r   r   r   r4  )r&   r  r(   r)   r*   r+   r,   r-   r.   r/   rs              r2   r*  r*    s    "'A!

6bb%5
666q$A
NN1!u9a 
NN152a5=!$
OO	1	1!eQA]AE1!u9F
NN15!%"Q%-(
OO	qur!uqy !%"Q%!)"3QUAEBqEM	 NN1!u9ae$
OO	qEAIquaQA!2A1ur!u}F
NN1"Q%i 
OO	r!uqy=!eai-1Iq:r4   )NN)r   )__doc__mathr   r   r   r   r   formatting_structurer	   layoutr
   layout.percentr   r0   r   rk   r   r   stackr   rZ   r3   rv   r%   rW   r`   rX   r8  rA  r*  rE  r4   r2   <module>rQ     sa     + + (  '  * *(NFbLR` 37up(<@F(.:r4   