+
    bIi>                         R t Rt^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
HtHtHtHt ^RIHtHtHtHtHtHtHtHtHt R tR tR tR tR	 tRR
 ltRR ltR t  ! R R]]4      t!R# )z.this code is derived from that used by svglib.SvgPathN)
acosceilcopysigncosdegreesfabshypotradianssinsqrt)	Groupmmultrotate	translatetransformPointPathFILL_EVEN_ODD
_CLOSEPATHUserNodec                &   \         P                  ! RV4       Uu. uF  q3'       g   K  \        V4      NK  	  pp. p\        ^ \	        V4      V4       F7  pV^ 8  d   V R9   d   V R8X  d   RMRp VP                  WWfV,            .4       K9  	  V# u upi )a'  Split `value`, a list of numbers as a string, to a list of float numbers.

Also optionally insert a `l` or `L` operation depending on the operation
and the length of values.
Example: with op='m' and value='10,20 30,40,' the returned value will be
         ['m', [10.0, 20.0], 'l', [30.0, 40.0]]
(-?\d*\.?\d*(?:[eE][+-]?\d+)?)mlL>   Mr   )refindallfloatrangelenextend)opmin_numvalueseqfloatsresis   &&&    ڃC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/graphics/svgpath.pysplit_floatsr*      s     %'JJ/PRW$X`$XS\_jeCj$XF`
C1c&k7+q5R:%c	sB

BqW-./ , J as
   	BBc           
         R pRpRP                  W"W#W2V.4      R,           p. p\        P                  ! WAP                  4       4       F<  pTP	                  YP                  4        Uu. uF  p\        V4      NK  	  up.4       K>  	  V# u upi )r   z([1|0])z[\s,]*)joinr   finditerstripr!   groupsr   )r"   r$   float_reflag_rea_seq_rer'   r%   nums   &&      r)   split_arc_valuesr4      s    0HG~~Hw( 	H C{{8[[]3

Bzz|<|s|<=> 4J =s   'B	c                   / R^bR^bR^bR^bR^bR^bR^bR^bR	^bR
^bR^bR^bR^bR^bR^bR^bR^bR^R^ R^ /CpVP                  4       p. p\        P                  ! RV P                  4       \        P                  R7      pRpV F  pVP                  4       R8X  d   K  Wb9   dG   VR	8X  d
   We8X  d   R
pMVR8X  d
   We8X  d   RpMTpW,          ^ 8X  d   VP                  V. .4       Kd  Kf  VP                  4       R8X  d   VP                  \        WV4      4       M"VP                  \        WQV,          V4      4       VR,          pK  	  V# )a  Normalise SVG path.

This basically introduces operator codes for multi-argument
parameters. Also, it fixes sequences of consecutive M or m
operators to MLLL... and mlll... operators. It adds an empty
list as argument for Z and z only in order to make the resul-
ting list easier to iterate over.

E.g. "M 10 20, M 20 20, L 30 40, 40 40, Z"
  -> ['M', [10, 20], 'L', [20, 20], 'L', [30, 40], 'L', [40, 40], 'Z', []]
AaQqTtSsr   r   r   r   HVhvCcZzz([achlmqstvz]))flagsN )	keysr   splitr.   Ir!   lowerr4   r*   )attropsop_keysresultr/   r"   items   &      r)   normalise_svg_pathrR   #   s   QQQQQ #Q(+Q03Q 	Q Q Q !$Q ),Q 14Q 	Q	 Q	 Q	 !$QQQ	C hhjG FXX&

BDDAF	B::<2? s{tzw!|r2h'  xxzS .r89l22w=>B' * M    c                r   T pV ^ ,          RV^ ,          V ^ ,          ,
          ,          ,           V ^,          RV^,          V ^,          ,
          ,          ,           3pV^ ,          RV^ ,          V ^ ,          ,
          ,          ,           V^,          RV^,          V ^,          ,
          ,          ,           3pTpW4WV3# )zE
Convert a quadratic Bezier curve through q0, q1, q2 to a cubic one.
gUUUUUU?gUUUUUU? )q0q1q2c0c1c2c3s   &&&    r)   convert_quadratic_to_cubic_pathr]   T   s     
B
Q%%2a52a5=)
)2a55BqEBqEM3J+J	KB
Q%%2a52a5=)
)2a55BqEBqEM3J+J	KB	B2>rS   c                 ~   \        V !  \        V!  ,          pV^ 8X  d   ^ # V ^ ,          V^ ,          ,          V ^,          V^,          ,          ,           V,          pVR8  d   RpM	V^8  d   ^pV ^ ,          V^,          ,          V ^,          V^ ,          ,          ,
          p\        \        \        V4      V4      4      # )    )r	   r   r   r   )urA   drC   r=   s   &&   r)   vector_anglerc   a   s    q	E1IAAv	
1!qtad{	"a'A2v	
Q	!qtadQqTk!A8DGQ'((rS   c	                   \        V4      p\        V4      pV'       dk   \        V4      p	\        V	4      p
\        V	4      pRW,
          ,          pRW,
          ,          pW,          W,          ,
          pW,          W,          ,           pMRW,
          ,          pRW,
          ,          pW,          Wf,          ,          W,          Ww,          ,          ,           pV^8  d^   \	        V4      pVV,          pVV,          pW,          Wf,          ,          W,          Ww,          ,          ,           p^V,          ^,
          pMV^ 8w  d   ^V,          ^,
          pRTu;8  d   ^ 8  d   M M^ p\	        V4      pWE8X  d   V) pVV,          V,          V,          pVV,          V,          ) V,          pV'       dX   XV,          X
V,          ,
          RW,           ,          ,           pV
V,          VV,          ,           RW,           ,          ,           pM,VRW,           ,          ,           pVRW,           ,          ,           p\        RVV,
          V,          VV,
          V,          34      p\        VV,
          V,          VV,
          V,          3V) V,
          V,          V) V,
          V,          34      R,          pV^ 8X  d   V^ 8  d   VR,          pMV^8X  d   V^ 8  d
   VR,          pVVWgV) V) 3# )z~
See http://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes F.6.5
note that we reduce phi to zero outside this routine
      ?ih  g|۽)   r_   )r   r
   r   r   r   rc   )x1y1x2y2fAfSrxryphiphi_radsin_phicos_phitxtyx1dy1drrrcxdcydcxcytheta1dthetas   &&&&&&&&&               r)   end_point_to_center_parametersr   m   sY   
 
bB	bB #,g,g,BG_BG_lW\)lW\)RWoRWo, 		RW	RW 55A1u!W
b
bI!CI$99EAI	
aEAI~A~QA	xBr6C<2
CFSL/B
C s]Ws]*SBG_<s]Ws]*SBG_<3"'?"3"'?" &C#I#3cCi25E"FGF
)r	C#I+,$*	cTCZ2-. 	F 
Qw6A:#	qVaZ#r2F7VG++rS   c                 d   \        V4      ^Z8:  d   ^pTpM#\        \        V4      ^Z,          4      pWV,          pV^ 8X  d   . # \        V4      pVR,          p	\        R^\        V	4      ,
          ,          \	        V	4      ,          4      p
V^ 8  d   V
) p
. p\        V4      pW,           p\        V4      p\	        V4      p\        V4       F  pTpTpVVV,          ,           p\        V4      p\	        V4      pVP                  WV,          ,           WV,          ,
          WVV
V,          ,
          ,          ,           WVV
V,          ,           ,          ,
          WWV,          ,           ,          ,           WWV,          ,
          ,          ,
          WV,          ,           WV,          ,
          34       K  	  V# )Z   re   gUUUUUU?)absr   r
   r   r   r   append)r{   r|   rm   rn   	start_angextentnfrag
frag_anglefrag_radhalf_radkappa
point_listr}   	start_radrZ   s1r(   rY   s0s   &&&&&&             r)   bezier_arc_from_centrer      sg   
6{b
S[2%&^
Q	z"H#~HS]*+c(m;<EA~JYF!I	VB	VB5\Q\)[[2R<Bw,R%"*_55R%"*_55R"*_55R"*_55Bw,Bw,( 	)  rS   c	           
         W8X  d	   W8X  d   . # V'       d   \        \        V) 4      \        V ) V) 4      4      p	\        WV34      w  r\	        ^ ^ WWVW#4      w  rr#r\        WW#W4      p\        \        W4      \        V4      4      p	. pV F^  w  rrxppppVP                  \        WV34      \        WV34      ,           \        V	VV34      ,           \        V	VV34      ,           4       K`  	  V# \	        WWxWVW#4      w  rr#r\        WW#W4      # r_   )r   r   r   r   r   r   r   )rg   rh   rm   rn   ro   rk   rl   ri   rj   mxtx2ty2r{   r|   r   r   bpr'   x3y3x4y4s   &&&&&&&&&             r)   bezier_arc_from_end_pointsr      s    
RX 	
 63$<B3!45!"2h/,Jq#BB-
)	 $BBIF9R$fSk2.0*BBBBJJr8,~br(/KKrB8,-/=b2r(/KL /1
 
,JBBB-
)	 &bbiHHrS   c                   F   a a ] tR tRt oRt^ R]3V 3R lltR tRtVt	V ;t
# )r   i  zPath, from an svg path stringNc                  < VP                  R ^ 4      pVP                  R^ 4      p\        S)V `  ! RRRRRRVRVRV/VB  V'       g   R# \        V4      pV P                  p	. p
. pRpRp\        ^ \        V4      ^4       EFi  pWV^,            w  ppVR9   dH   V^ 8  dA   V P                  R,          \        8w  d%   V
P                  \        V P                  4      4       VR
8X  d   V P                  ! V!   V	RR pEMVR8X  d   V P                  ! V!   EMVR	8X  dx   \        V	4      ^8  dQ   VR 9   d   TpMV	RR pV^ ,          V^ ,          ,           V^,          V^,          ,           ppV P                  VV4       MV P                  ! V!   V	RR pEMIVR8X  dC   V	R,          V^ ,          ,           V	R,          V^,          ,           ppV P                  VV4       EM VR8X  d#   V P                  V^ ,          V	R,          4       EMVR8X  d#   V P                  V	R,          V^ ,          4       EMVR8X  d1   V P                  V	R,          V^ ,          ,           V	R,          4       EMwVR8X  d1   V P                  V	R,          V	R,          V^ ,          ,           4       EM@VR8X  d   V P                  ! V!   EM'VR8X  ds   Vw  pppp\        V	4      ^8  g   VR!9  d   V	RR ^,          w  ppppM
V	R"R w  ppppVVV,
          ,           VVV,
          ,           ppV P                  VVVVVV4       EMVR8X  dT   V	RR w  ppVw  ppppppV P                  VV,           VV,           VV,           VV,           VV,           VV,           4       EMTVR8X  d   Vw  pppp\        V	4      ^8  g   VR!9  d   V	RR ^,          w  ppppM
V	R"R w  ppppVVV,
          ,           VVV,
          ,           ppV P                  VVVV,           VV,           VV,           VV,           4       EMVR8X  dP   V	RR w  ppVw  ppppVV3p\        VV3VV3VV34      w  w  ppw  ppw  ppw  ppV P                  VVVVVV4       EMiVR8X  d   Ve   Vw  ppMV	RR w  ppV	RR w  ppVVV,
          ,           VVV,
          ,           ppVV3pVw  pp\        VV3VV3VV34      w  w  ppw  ppw  ppw  ppV P                  VVVVVV4       EMVR8X  dw   V	RR w  ppVw  ppppVV,           VV,           VV,           VV,           3w  ppppVV3p\        VV3VV3VV34      w  w  ppw  ppw  ppw  ppV P                  VVVVVV4       EMfVR8X  d   Ve   Vw  ppMV	RR w  ppV	RR w  ppVw  ppVV,           VV,           ppVVV,
          ,           VVV,
          ,           ppVV3p\        VV3VV3VV34      w  w  ppw  ppw  ppw  ppV P                  VVVVVV4       MVR#9   d   Vw  ppp p!p"ppV	RR w  ppVR8X  d   VV,          pVV,          p\        V4      R8:  g   \        V4      R8:  d   V P                  VV4       Mj\        VVVVV V!V"VV4	      p#V# F"  w   p$ppppppV P                  VVVVVV4       K$  	  M.VR 9   d   V P!                  4        M\"        P%                  RV4       VR$9  d   RpTpEKl  	  V P                  R,          \        8w  d%   V
P                  \        V P                  4      4       V'       g	   V'       d   V P'                  4       p%V'       dF   V%^,          V%^ ,          ,           p&\        ^ \        V	4      ^4       F  pV&W,          ,
          W&   K  	  V'       dF   V%^,          V%^,          ,           p&\        ^\        V	4      ^4       F  pV&W,          ,
          W&   K  	  V
'       d   V P(                  e   \+        4       p'V'P,                  P/                  \0        P2                  ! V P,                  4      4       \5        V
4       F#  p(V'P                  P7                  V(\        4       K%  	  V'V n        RV n        R# RV n        R# )%vswaphswappointsN	operators
isClipPath	autoclosefillModerG   r   r   r   r   r>   r?   r@   rA   rB   r<   rC   r=   r8   r:   r9   r;   r7   g|=zSuspicious self operator: %srU   )r   r   r`   rH   )rD   rE   >   rB   r<   rC   r=   )r6   r7   )r8   r9   r:   r;   )popsuper__init__rR   r   r   r    r   r   r   moveTolineTocurveTor]   r   r   	closePathloggerdebug	getBounds	fillColorr   __dict__updatecopydeepcopyreversedinsert_SvgPath__closed_path)*selfr=   r   r   r   kwr   r   normPathr   unclosed_subpath_pointerssubpath_startlastoplast_quadratic_cpr(   r"   numsstarting_pointxnynri   rj   xpypx0y0xiyirg   rh   rm   rn   ro   rk   rl   r   _br   closed_pathpointer	__class__s*   &&&&&,                                   r)   r   SvgPath.__init__  sq   wq!wq! 	1#	1.2	1#-	1 #,	1 "*		1 .0		1
 &%a($&! q#h-+A!A#HBZAEdnnR.@J.N)00T^^1DE SyT" &rssT" sv;!#+)6)/+A.a8.:KdSTg:UBKKB'KK& &rssd1g-vbzDG/CBB# sDGVBZ0sF2JQ0 sF2Ja0&*=sF2Jr
T!W(<= sd#s!%BBv;?f4H&H%+BC[1_NBB%+BC[NBBrBwrBwBRRR4 sB)-&BBBR"Wb2grBwRb"r'Rs!%BBv;?f4H&H%+BC[1_NBB%+BC[NBBrBwrBwBRR"Wb2grBwRH sB!%BB%'H!3RHr2hRQ 7R(2rHRhr2RRR4s$0.FB#BC[FBBrBwrBwB%'H!B3RHr2hRQ 7R(2rHRhr2RRR4 sB!%BB!#b"r'27BG!CBB%'H!3RHr2hRQ 7R(2rHRhr2RRR4s$0.FB#BC[FBBBb"r'BrBwrBwB%'H!3RHr2hRQ 7R(2rHRhr2RRR4 z!.2+BRRB9"HB"HBr7e#s2w%'7KKB'3BBCRQSUWXB8:41b"b"b"RRR< 9; z!  ;R@--$(!FQ ,T >>"+%,,S-@AE AaD1IqVQ/A !FIFI 0aD1IqVQ/A !FIFI 0 %)C &K  ''dmm(DE#$=>%%,,WjA ?!,D!DN!%DrS   c                    \        4       pV P                  P                  4       Vn        V=V P                  '       d9   \	        4       pVP                  V P                  4       VP                  V4       V# V# )N)r   r   r   r   r   add)r   pgs   &  r)   provideNodeSvgPath.provideNode  s]    F]]'')
#AEE$$$%EE!HHHrS   )__closed_pathr   )__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r)   r   r     s      '%&$ t&l
 
rS   )r   r   )r_   r   )"r   __all__r   r   mathr   r   r   r   r   r   r	   r
   r   r   shapesr   r   r   r   r   r   r   r   r   r*   r4   rR   r]   rc   r   r   r   r   rU   rS   r)   <module>r      s_    4  T T T n n n 
/b
)L,\%NI>Bd8 BrS   