function Path(){this._x0=this._y0=this._x1=this._y1=0,this._=[]}var pi=Math.PI,tau=2*pi,epsilon=1e-6;Path.prototype={moveTo:function(t,h){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+h)},closePath:function(){this._x1=this._x0,this._y1=this._y0,this._.push("Z")},lineTo:function(t,h){this._.push("L",this._x1=+t,",",this._y1=+h)},quadraticCurveTo:function(t,h,i,s){this._.push("Q",+t,",",+h,",",this._x1=+i,",",this._y1=+s)},bezierCurveTo:function(t,h,i,s,_,n){this._.push("C",+t,",",+h,",",+i,",",+s,",",this._x1=+_,",",this._y1=+n)},arcTo:function(t,h,i,s,_){t=+t,h=+h,i=+i,s=+s,_=+_;var n=this._x1,a=this._y1,o=i-t,u=s-h,c=n-t,p=a-h,r=i-n,y=s-a,x=o*o+u*u,e=c*c+p*p,M=r*r+y*y,f=Math.sqrt(x),v=Math.sqrt(e),l=_*Math.tan((Math.PI-Math.acos((x+e-M)/(2*f*v)))/2);this._.push("L",t+l/v*c,",",h+l/v*p,"A",_,",",_,",0,0,",+(p*r>c*y),",",t+l/f*o,",",h+l/f*u,"L",this._x1=+i,",",this._y1=+s)},arc:function(t,h,i,s,_){t=+t,h=+h,i=+i;var n=i*Math.cos(s),a=i*Math.sin(s),o=t+n,u=h+a,c=Math.abs(_-s);this._.push(this._.length?"L":"M",o,",",u),c>=tau-epsilon?this._.push("A",i,",",i,",0,1,1,",t-n,",",h-a,"A",i,",",i,",0,1,1,",this._x1=o,",",this._y1=u):this._.push("A",i,",",i,",0,",+(c>=pi),",1,",this._x1=t+i*Math.cos(_),",",this._y1=h+i*Math.sin(_))},rect:function(t,h,i,s){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+h,"h",+i,"v",+s,"h",-i,"Z")},toString:function(){return this._.join("")}};