
    j|B                     v    d Z ddlmZ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 ddlmZ d Zd Zd	S )
z
Paths manager.

    )copysignhypotpiradians   )calculate_bounding_box)
PATH_LETTERSclip_marker_boxnode_format	normalizepointpoint_anglepreserve_ratioquadratic_pointsrotatesize)	parse_urlc                    t          |dd          sdS i }t          |                    dd                    j        }dD ].}d| }||v rt          ||                   j        ||<   )|||<   /d\  }}d}|j        r|j                            d	          }|j        r|j                            d	          nd}	|	r3|dk    rt          |	d	         z
  }
n|t          z   |	d	         z
  d
z  }
|	\  }}n|}
d}||         }|rN| j                            |          }|                    d          dk    rd}n)t          | | j	                            dd                    }t          | |          d
         }|r(t          | |          \  }}}}t          | |||          }nt          | |                    dd          d          }t          | |                    dd          d          }t          | |          }t          | |                    dd          d           }t          | |                    dd          d           }t          ||d
         z  ||d         z            x}}d}| j                                        }| j                                         |                    dd          }|dvrt%          t'          |                    }
n|dk    r|dk    r|
t%          d          z  }
|j        D ]9}| j                                          | j        j        |  | j                            |
           | j                            |           | j                            ||           | j                            ||           |                    dd          }|r^|d v rZ| j                                          | j        j        |  | j                                         | j                                         |                     |           | j                                         ;| j                            |           |	rd!nd}|j        dS dS )"z-Draw the markers attached to a path ``node``.verticesNmarker )startmidendzmarker-)NNr   r      r   markerUnitsuserSpaceOnUser   zstroke-width1markerWidth3xmarkerHeightyrefX0refY   orient)autoauto-start-reverser*      overflowhidden)r-   scrollr   )getattrr   getfragmentr   popr   markersr   parent_noder   r   r
   r   mincontext	copy_pathnew_pathr   floatchildrensave	translater   scale	rectanglerestoreclipdrawappend_path)surfacenoder3   common_markerposition	attributeangle1angle2r   anglesangler   marker_noder=   viewboxscale_xscale_ytranslate_xtranslate_yclip_boxmarker_widthmarker_heightbounding_box	temp_path
node_anglechildr,   s                              T/home/ubuntu/budget-transfer-bot/.venv/lib/python3.11/site-packages/cairosvg/path.pydraw_markersrZ      s   4T** Gdhhx4455>M+ . .(h((	 )$y/ : : CGH -GHNFFH
- V0!!!$$)-@""1%%%D 	7""VAY"vay0A5#NFFFEH " D	3!/--f55K }--1AAAW044^SIIK K
 "';77:G  =K[>* >*:+{*['7< <  $G$/OOM3$G$G N  N $W%0__^S%I%I3!P !P5g{KK  $G[__VS-I-I3OOO#G[__VS-I-I3OOO$' <?2!LO3%5 %5 5'
    1133IO$$&&& %377J!???j 1 122333G8K8K% %- * *$$&&&))511&&u---%%e,,,%%gw777))+{CCC '??:x@@ +,@ @ @O((***-GO-x88O++---O((***U###''))))O''	222"/55m - V0 V0 V0 V0 V0    c           	      .   |                     dd          }g |_        t          D ]}|                    |d| d          }d}t	          |          }| j                                        r| j                                        }n| j                            dd           d}|r|	                                }|
                    dd          d         t          v rA|dz   
                    dd          \  }}|dv r |d	vr|j                            |           |}n|d
k    rd}n|dk    rd}|dv rd}|dvr||}|dv r| j                            d           |\  }}t          | |          \  }	}
}|
                    dd          \  }}t          t          |                    }|d         |dd         	                                }}|d         |dd         	                                }}t          | |          \  }}}t!          |          t!          |          }}|dvs|dvrt#          |          t#          |          }}|dk    r
||z  }||z  }|	r|
s(|r|d         t          vr| d}nd}d| d| d| | }|
|	z  }t%          |||           \  }}||z  }t'          dd||          }t)          ||          }d}t+          |	|dz            }	|dz  }|	dz  |dz  z
  dz  }||z  s| }|r| j        j        n| j        j        }t%          |d|          \  }}t%          |||          \  }}t'          ||dd          }t'          ||||          }|j                            | | f           | j                                         | j                            ||           | j                            |           | j                            d|            ||||	||           | j                                         |d         |z   |d         |z   f}
n6|dk    r|\  }}t          | |          \  }}}t          | |          \  }}}t          | |          \  }}}|j                            t'          ||||          t'          ||||          f           | j                            ||||||           |d         |z   |d         |z   f}||z  }||z  }||z  }||z  }||z  }||z  }	n^|dk    rt          | |          \  }}}t          | |          \  }}}t          | |          \  }}}|j                            t'          ||||          t'          ||||          f           | j                            ||||||           ||f}n|dk    r|dz   
                    dd          \  }}|\  }}t=          | |d          dk    rdnt>          }|j                            t>          |z
  |f           t=          | |d          }| j                             |d           |d         |z   |d         f}n|dk    r|dz   
                    dd          \  }}|\  }}t=          | |d          |k    rdnt>          }|j                            t>          |z
  |f           t=          | |d          }| j        !                    ||           ||d         f}np|dk    r}t          | |          \  }}}t'          dd||          }|j                            t>          |z
  |f           | j                             ||           |d         |z   |d         |z   f}n|dk    rpt          | |          \  }}}|\  }}t'          ||||          }|j                            t>          |z
  |f           | j        !                    ||           ||f}nw|dk    rgt          | |          \  }}}|r|dvr|j                            d           | j        "                    ||           |d         |z   |d         |z   f}n
|d
k    rUt          | |          \  }}}|r|dvr|j                            d           | j                            ||           ||f}n|dk    rd\  }}t          | |          \  }}}t          | |          \  }}}tG          ||||||          \  } }!}"}#}$}%| j                            | |!|"|#|$|%           |j                            d           |d         |z   |d         |z   f}n|dk    r|\  }}t          | |          \  }}}t          | |          \  }}}tG          ||||||          \  } }!}"}#}$}%| j                            | |!|"|#|$|%           |j                            d           ||f}n|dk    r|\  }}|dv r||z
  nd}|dv r||z
  nd}t          | |          \  }}}t          | |          \  }}}|j                            t'          ||||          t'          ||||          f           | j                            ||||||           |d         |z   |d         |z   f}||z  }||z  }||z  }||z  }||z  }||z  }n|d k    r|\  }}|dv r|||z
  z   n|}|dv r|||z
  z   n|}t          | |          \  }}}t          | |          \  }}}|j                            t'          ||||          t'          ||||          f           | j                            ||||||           ||f}n|d!k    r|d"vrd#\  }}}}n|d$v r||z  }||z  }||z  }||z  }||z
  }||z
  }d\  }}t          | |          \  }}}tG          ||||||          \  } }!}"}#}$}%|j                            d           | j                            | |!|"|#|$|%           |d         |z   |d         |z   f}n@|d%k    r|\  }&}'|d"vr|&|'|&|'f\  }}}}n|d&v r||&z  }||'z  }||&z  }||'z  }|&||z
  z   }|'||z
  z   }|&|'}}t          | |          \  }}}tG          ||||||          \  } }!}"}#}$}%|j                            d           | j                            | |!|"|#|$|%           ||f}n|d'k    r|dz   
                    dd          \  }}|\  }}tI          t>          dz  t=          | |d(                    }|j                            | |f           t=          | |d(          }| j                             d|           |d         |d         |z   f}n|d)k    r|dz   
                    dd          \  }}|\  }}tI          t>          dz  t=          | |d(          |z
            }|j                            | |f           t=          | |d(          }| j        !                    ||           |d         |f}n;|dv r7|r5|j                            d           | j        %                                 |}|dvr|j                            |           |	                                }|}|dS dS )*zDraw a path ``node``.dr    Nr   )r   r   r   )NzZmMMLml)Nrd   rb   r_   r`   aAgh㈵>)r   r   Azl r   g      ?cChr!   HzZqQscsCSStQqTt)r   r   r   r   QTTqtvr#   V)&r0   r   r	   replacer   r6   has_current_pointget_current_pointmove_tostripsplitappendset_tolerancer   r   r9   intboolr   r   r   maxarcarc_negativer;   r<   r=   r?   rel_curve_tocurve_tor   r   rel_line_toline_torel_move_tor   r   
close_path)(rC   rD   stringletterlast_lettercurrent_pointfirst_path_pointx1y1rxryrotationlargesweepx3y3next_letterradii_ratioxeyerK   xcycr   rH   rI   r!   r#   x2y2old_xold_yxq1yq1xq2yq2xq3yq3abs_xabs_ys(                                           rY   pathr   y   s/   XXc2FDM 7 7F66KvF ((** 99;;1%%%
 w<<Q"l22$sl11#q99NFF...63E3E$$]333#0 s]]FFs]]F444#333 (,T>>O))'222"FB"7F33NBF%||C33HfuX//H
 #1Ivabbz'7'7'9'96E"1Ivabbz'7'7'9'96E #7F33NBF u::s5zz5EF""e6&9&9;;U5E}}bb  	R 	 %fQi|;; &,,,,KK"$K=b==2===V==r'K BXI..FB+B  1b"--E r2BB RaB aB'B!G#*B EM S (-N##'/2N  B5))FBBE**FB !RA..F RR00F M  6'F7!3444 O  """O%%b"---O""8,,,O!!![111CBFF+++O##%%%)!,r1=3Cb3HHMMs]] DAq"7F33NBF"7F33NBF"7F33NBFM  BB++[RR-H-H"J K K KO((RRR@@@)!,r1=3Cb3HHM !GB!GB!GB!GB!GB!GBBs]]"7F33NBF"7F33NBF"7F33NBFM  BB++[RR-H-H"J K K KO$$RRR<<<FMMs]]#,,S!44IAv(LE5gq#..22AAEM  "u*e!4555Wa%%AO''1---)!,q0-2BBMMs]]#,,S!44IAv(LE5gq#..66AABEM  "u*e!4555Wa%%AO##Au---}Q//MMs]] &11LAq&1a++EM  "u*e!4555O''1---)!,q0-2BQ2FFMMs]] &11LAq&(LE5ua33EM  "u*e!4555O##Aq)))qDMMs]] &11LAq& +{$66$$T***O''1---)!,q0-2BQ2FFMMs]] &11LAq& +{$66$$T***O##Aq)))qDMMs]]FB"7F33NBF"7F33NBF+;BBB,( ,((Cc3SO((c3S#FFFM  ((()!,r1=3Cb3HHMMs]]"FB"7F33NBF"7F33NBF+;BBB,( ,((Cc3SO$$S#sCcBBBM  (((FMMs]] DAq'611bqB'611bqB"7F33NBF"7F33NBFM  BB++[RR-H-H"J K K KO((RRR@@@)!,r1=3Cb3HHM !GB!GB!GB!GB!GB!GBBs]] DAq#.&#8#8rBwaB#.&#8#8rBwaB"7F33NBF"7F33NBFM  BB++[RR-H-H"J K K KO$$RRR<<<FMMs]]&((!+BBB$$bbbbbBbBFB"7F33NBF+;BBB,( ,((Cc3SM  (((O((c3S#FFF)!,r1=3Cb3HHMMs]](LE5&((!&ue!;BBB$$eeee"r'"B"r'"BEB"7F33NBF+;BBB,( ,((Cc3SM  (((O$$S#sCcBBBFMMs]]#,,S!44IAv(LE5R!VT'1c%:%:;;EM  5&%111Wa%%AO''1---)!,mA.>.BBMMs]]#,,S!44IAv(LE5R!VT'1c%:%:U%BCCEM  5&%111Wa%%AO##E1---)!,a/MMt^^ 0^M  &&&O&&(((,MM  ///o	  w w w w wr[   N)__doc__mathr   r   r   r   rU   r   helpersr	   r
   r   r   r   r   r   r   r   r   urlr   rZ   r    r[   rY   <module>r      s   
 . - - - - - - - - - - - 0 0 0 0 0 04 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4      g0 g0 g0TK K K K Kr[   