Add a position-independent digest of the AST (#2962)
Each AST node contains an Option<Digest> which can be optionally set by running compute_digest() over the AST. This will mutate the AST and set the Digest. Fundamentally, the digest is computed from the digest of AST children nodes (using compute_digest) or the explicit raw underlying value. The underlying hash is changeable by modifying the macro and Digest type alias, and should enable us to determine when an AST -- or fragment of AST -- is the same. This won't hash the start/end of the AST fragment, so it's, to some extent, position independent. It will hash newlines, comments, etc, which may change in the future depending on how we wind up using this.
This commit is contained in:
		@ -93,6 +93,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -115,6 +116,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -131,6 +133,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -148,6 +151,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -161,6 +165,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -174,6 +179,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -189,6 +195,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -206,6 +213,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -227,6 +235,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -242,6 +251,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -279,6 +289,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -295,6 +306,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -312,6 +324,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -325,6 +338,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -338,6 +352,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -353,6 +368,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -370,6 +386,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -97,6 +97,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -119,6 +120,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +137,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +155,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -165,6 +169,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -178,6 +183,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -193,6 +199,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -210,6 +217,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -231,6 +239,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -246,6 +255,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +293,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -299,6 +310,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +328,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -329,6 +342,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -342,6 +356,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -357,6 +372,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -374,6 +390,7 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -98,6 +98,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -120,6 +121,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -136,6 +138,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -153,6 +156,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -166,6 +170,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -179,6 +184,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -194,6 +200,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -211,6 +218,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -232,6 +240,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -247,6 +256,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -284,6 +294,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -300,6 +311,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -317,6 +329,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -330,6 +343,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -343,6 +357,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -358,6 +373,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -375,6 +391,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -388,6 +405,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -454,6 +472,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -476,6 +495,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -492,6 +512,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -509,6 +530,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -522,6 +544,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -535,6 +558,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -550,6 +574,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -567,6 +592,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -588,6 +614,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -603,6 +630,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -640,6 +668,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -656,6 +685,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -673,6 +703,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -686,6 +717,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -699,6 +731,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -714,6 +747,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -731,6 +765,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -97,6 +97,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -119,6 +120,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +137,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +155,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -165,6 +169,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -178,6 +183,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -193,6 +199,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -210,6 +217,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -231,6 +239,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -246,6 +255,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +293,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -299,6 +310,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +328,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -329,6 +342,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -342,6 +356,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -357,6 +372,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -374,6 +390,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -387,6 +404,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -453,6 +471,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -475,6 +494,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -491,6 +511,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -508,6 +529,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -521,6 +543,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -534,6 +557,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -549,6 +573,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -566,6 +591,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -587,6 +613,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -602,6 +629,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -639,6 +667,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -655,6 +684,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -672,6 +702,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -685,6 +716,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -698,6 +730,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -713,6 +746,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -730,6 +764,7 @@ const extrusion = extrude(10, sketch001)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -99,6 +99,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -121,6 +122,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -137,6 +139,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -154,6 +157,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -167,6 +171,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -180,6 +185,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -195,6 +201,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -212,6 +219,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -233,6 +241,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -248,6 +257,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -285,6 +295,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -301,6 +312,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -318,6 +330,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -331,6 +344,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -344,6 +358,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -359,6 +374,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -376,6 +392,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -389,6 +406,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -455,6 +473,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -477,6 +496,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -493,6 +513,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -510,6 +531,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -523,6 +545,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -536,6 +559,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -551,6 +575,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -568,6 +593,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -589,6 +615,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -604,6 +631,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -641,6 +669,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -657,6 +686,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -674,6 +704,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -687,6 +718,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -700,6 +732,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -715,6 +748,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -732,6 +766,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -105,6 +105,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -127,6 +128,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +145,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -160,6 +163,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -173,6 +177,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -186,6 +191,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -201,6 +207,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -218,6 +225,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -239,6 +247,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -254,6 +263,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -291,6 +301,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -307,6 +318,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -324,6 +336,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -337,6 +350,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -350,6 +364,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -365,6 +380,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -382,6 +398,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -395,6 +412,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -461,6 +479,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -483,6 +502,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -499,6 +519,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -516,6 +537,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -529,6 +551,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -542,6 +565,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -557,6 +581,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -574,6 +599,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -595,6 +621,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -610,6 +637,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -647,6 +675,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -663,6 +692,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -680,6 +710,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -693,6 +724,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -706,6 +738,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -721,6 +754,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -738,6 +772,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -118,6 +119,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -134,6 +136,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -151,6 +154,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -164,6 +168,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -177,6 +182,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -192,6 +198,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -209,6 +216,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -230,6 +238,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -245,6 +254,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -282,6 +292,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +309,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -315,6 +327,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -328,6 +341,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -341,6 +355,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -356,6 +371,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -373,6 +389,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -386,6 +403,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -452,6 +470,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -474,6 +493,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -490,6 +510,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -507,6 +528,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -520,6 +542,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -533,6 +556,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -548,6 +572,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -565,6 +590,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -586,6 +612,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -601,6 +628,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -638,6 +666,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -654,6 +683,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -671,6 +701,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -684,6 +715,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -697,6 +729,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -712,6 +745,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -729,6 +763,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -118,6 +119,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -134,6 +136,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -151,6 +154,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -164,6 +168,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -177,6 +182,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -192,6 +198,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -209,6 +216,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -230,6 +238,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -245,6 +254,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -282,6 +292,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +309,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -315,6 +327,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -328,6 +341,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -341,6 +355,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -356,6 +371,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -373,6 +389,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -386,6 +403,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -452,6 +470,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -474,6 +493,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -490,6 +510,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -507,6 +528,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -520,6 +542,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -533,6 +556,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -548,6 +572,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -565,6 +590,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -586,6 +612,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -601,6 +628,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -638,6 +666,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -654,6 +683,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -671,6 +701,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -684,6 +715,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -697,6 +729,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -712,6 +745,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -729,6 +763,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -107,6 +107,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -129,6 +130,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -145,6 +147,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -162,6 +165,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -175,6 +179,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -188,6 +193,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -203,6 +209,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -220,6 +227,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -241,6 +249,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -256,6 +265,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -293,6 +303,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -309,6 +320,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -326,6 +338,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -339,6 +352,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -352,6 +366,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -367,6 +382,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -384,6 +400,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -397,6 +414,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -463,6 +481,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -485,6 +504,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -501,6 +521,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -518,6 +539,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -531,6 +553,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -544,6 +567,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -559,6 +583,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -576,6 +601,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -597,6 +623,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -612,6 +639,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -649,6 +677,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -665,6 +694,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -682,6 +712,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -695,6 +726,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -708,6 +740,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -723,6 +756,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -740,6 +774,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -102,6 +102,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -124,6 +125,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -140,6 +142,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -157,6 +160,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +174,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -183,6 +188,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -198,6 +204,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -215,6 +222,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -236,6 +244,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -251,6 +260,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -288,6 +298,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -304,6 +315,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -321,6 +333,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +347,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -347,6 +361,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -362,6 +377,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -379,6 +395,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -392,6 +409,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -458,6 +476,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -480,6 +499,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -496,6 +516,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -513,6 +534,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -526,6 +548,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -539,6 +562,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -554,6 +578,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -571,6 +596,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -592,6 +618,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -607,6 +634,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -644,6 +672,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -660,6 +689,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -677,6 +707,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -690,6 +721,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -703,6 +735,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -718,6 +751,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -735,6 +769,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +144,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -167,6 +169,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -182,6 +185,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -219,6 +223,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -235,6 +240,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -252,6 +258,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -265,6 +272,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -278,6 +286,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -293,6 +302,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -310,6 +320,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -331,6 +342,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -346,6 +358,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -357,6 +370,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -386,6 +400,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -453,6 +468,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -477,6 +493,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -492,6 +509,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -529,6 +547,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -545,6 +564,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -562,6 +582,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -575,6 +596,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -588,6 +610,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -603,6 +626,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -620,6 +644,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -641,6 +666,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -656,6 +682,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -95,6 +95,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -117,6 +118,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -133,6 +135,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -150,6 +153,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -163,6 +167,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -176,6 +181,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -191,6 +197,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -208,6 +215,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -229,6 +237,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -244,6 +253,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -331,6 +341,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -355,6 +366,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -370,6 +382,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -407,6 +420,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -423,6 +437,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -440,6 +455,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -453,6 +469,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -466,6 +483,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -481,6 +499,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -498,6 +517,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -511,6 +531,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -577,6 +598,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -599,6 +621,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -615,6 +638,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -632,6 +656,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -645,6 +670,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -658,6 +684,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -673,6 +700,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -690,6 +718,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -711,6 +740,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -726,6 +756,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -763,6 +794,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -779,6 +811,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -796,6 +829,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -809,6 +843,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -822,6 +857,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -837,6 +873,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -854,6 +891,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -97,6 +97,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -119,6 +120,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +137,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +155,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -165,6 +169,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -178,6 +183,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -193,6 +199,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -210,6 +217,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -231,6 +239,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -246,6 +255,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +293,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -299,6 +310,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +328,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -329,6 +342,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -342,6 +356,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -357,6 +372,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -374,6 +390,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -387,6 +404,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -453,6 +471,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -475,6 +494,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -491,6 +511,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -508,6 +529,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -521,6 +543,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -534,6 +557,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -549,6 +573,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -566,6 +591,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -587,6 +613,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -602,6 +629,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -639,6 +667,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -655,6 +684,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -672,6 +702,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -685,6 +716,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -698,6 +730,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -713,6 +746,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -730,6 +764,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -122,6 +122,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -144,6 +145,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -160,6 +162,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -177,6 +180,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -190,6 +194,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -203,6 +208,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -218,6 +224,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -235,6 +242,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -256,6 +264,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -271,6 +280,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -308,6 +318,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -325,6 +336,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -342,6 +354,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -355,6 +368,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -368,6 +382,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -383,6 +398,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -400,6 +416,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -437,6 +454,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -504,6 +522,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -528,6 +547,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -543,6 +563,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -580,6 +601,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -596,6 +618,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -613,6 +636,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -626,6 +650,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -639,6 +664,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -654,6 +680,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -671,6 +698,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -693,6 +721,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -708,6 +737,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +144,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -167,6 +169,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -182,6 +185,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -219,6 +223,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -235,6 +240,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -252,6 +258,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -265,6 +272,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -278,6 +286,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -293,6 +302,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -310,6 +320,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -331,6 +342,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -346,6 +358,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -378,6 +391,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -445,6 +459,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -469,6 +484,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -484,6 +500,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -521,6 +538,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -537,6 +555,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -554,6 +573,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -567,6 +587,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -580,6 +601,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -595,6 +617,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -612,6 +635,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -633,6 +657,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -648,6 +673,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -66,6 +66,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -133,6 +134,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -157,6 +159,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -172,6 +175,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -209,6 +213,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -225,6 +230,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -242,6 +248,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -255,6 +262,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -268,6 +276,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +292,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -300,6 +310,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -321,6 +332,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -336,6 +348,7 @@ const revolution = startSketchOn(box, "revolveAxis")
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -62,6 +62,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -129,6 +130,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -153,6 +155,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -168,6 +171,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -205,6 +209,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -221,6 +226,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -238,6 +244,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -251,6 +258,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -264,6 +272,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -279,6 +288,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -296,6 +306,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -317,6 +328,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +344,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -62,6 +62,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -129,6 +130,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -153,6 +155,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -168,6 +171,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -205,6 +209,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -221,6 +226,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -238,6 +244,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -251,6 +258,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -264,6 +272,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -279,6 +288,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -296,6 +306,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -317,6 +328,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +344,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -64,6 +64,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -131,6 +132,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -155,6 +157,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +173,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -207,6 +211,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -223,6 +228,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +246,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -253,6 +260,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -266,6 +274,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -281,6 +290,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +308,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -319,6 +330,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +346,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -64,6 +64,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -131,6 +132,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -155,6 +157,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +173,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -207,6 +211,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -223,6 +228,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +246,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -253,6 +260,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -266,6 +274,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -281,6 +290,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +308,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -319,6 +330,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +346,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -366,6 +379,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -433,6 +447,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -457,6 +472,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -472,6 +488,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -509,6 +526,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +543,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -542,6 +561,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -555,6 +575,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -568,6 +589,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -583,6 +605,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -600,6 +623,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -621,6 +645,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -636,6 +661,7 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -130,6 +131,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -146,6 +148,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -163,6 +166,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -176,6 +180,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -189,6 +194,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -204,6 +210,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -221,6 +228,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -242,6 +250,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -257,6 +266,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -294,6 +304,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -311,6 +322,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -328,6 +340,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -341,6 +354,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -354,6 +368,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -369,6 +384,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -386,6 +402,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -457,6 +474,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -479,6 +497,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -495,6 +514,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -512,6 +532,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +546,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -538,6 +560,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -553,6 +576,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -570,6 +594,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -591,6 +616,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -606,6 +632,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -643,6 +670,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -659,6 +687,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -676,6 +705,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -689,6 +719,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -702,6 +733,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -717,6 +749,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -734,6 +767,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -805,6 +839,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -827,6 +862,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -843,6 +879,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -860,6 +897,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -873,6 +911,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -886,6 +925,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -901,6 +941,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -918,6 +959,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -939,6 +981,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -954,6 +997,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -991,6 +1035,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1007,6 +1052,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1024,6 +1070,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1037,6 +1084,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1050,6 +1098,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1065,6 +1114,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -1082,6 +1132,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -110,6 +111,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -126,6 +128,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +146,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -156,6 +160,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +174,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -184,6 +190,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -201,6 +208,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -222,6 +230,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -237,6 +246,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +284,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -290,6 +301,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -307,6 +319,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -320,6 +333,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +347,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -348,6 +363,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -365,6 +381,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -110,6 +111,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -126,6 +128,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +146,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -156,6 +160,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +174,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -184,6 +190,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -201,6 +208,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -222,6 +230,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -237,6 +246,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +284,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -290,6 +301,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -307,6 +319,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -320,6 +333,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +347,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -348,6 +363,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -365,6 +381,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -101,6 +101,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -123,6 +124,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -139,6 +141,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -156,6 +159,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +173,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -182,6 +187,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -197,6 +203,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -214,6 +221,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -235,6 +243,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -250,6 +259,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -287,6 +297,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -303,6 +314,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -320,6 +332,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +346,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -346,6 +360,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -361,6 +376,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -378,6 +394,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -391,6 +408,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -457,6 +475,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -479,6 +498,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -495,6 +515,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -512,6 +533,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +547,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -538,6 +561,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -553,6 +577,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -570,6 +595,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -591,6 +617,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -606,6 +633,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -643,6 +671,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -659,6 +688,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -676,6 +706,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -689,6 +720,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -702,6 +734,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -717,6 +750,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -734,6 +768,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -110,6 +111,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -126,6 +128,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +146,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -156,6 +160,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +174,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -184,6 +190,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -201,6 +208,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -222,6 +230,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -237,6 +246,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +284,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -290,6 +301,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -307,6 +319,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -320,6 +333,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +347,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -348,6 +363,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -365,6 +381,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -378,6 +395,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -444,6 +462,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -466,6 +485,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -482,6 +502,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -499,6 +520,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -512,6 +534,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +548,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -540,6 +564,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -557,6 +582,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -578,6 +604,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -593,6 +620,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -630,6 +658,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -646,6 +675,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -663,6 +693,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -676,6 +707,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -689,6 +721,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -704,6 +737,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -721,6 +755,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -106,6 +106,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -128,6 +129,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -144,6 +146,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -161,6 +164,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -174,6 +178,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -187,6 +192,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -202,6 +208,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -219,6 +226,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +248,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -255,6 +264,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -292,6 +302,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -309,6 +320,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -326,6 +338,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -339,6 +352,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -352,6 +366,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -367,6 +382,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -384,6 +400,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -68,6 +68,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +136,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -159,6 +161,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -174,6 +177,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -211,6 +215,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -227,6 +232,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -244,6 +250,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -257,6 +264,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -270,6 +278,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -285,6 +294,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -302,6 +312,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -324,6 +335,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -339,6 +351,7 @@ const example = extrude(-5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -99,6 +99,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -121,6 +122,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -137,6 +139,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -154,6 +157,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -167,6 +171,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -180,6 +185,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -195,6 +201,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -212,6 +219,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -233,6 +241,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -248,6 +257,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -285,6 +295,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -302,6 +313,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -319,6 +331,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +345,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -345,6 +359,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -360,6 +375,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -377,6 +393,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -66,6 +66,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -133,6 +134,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -157,6 +159,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -172,6 +175,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -209,6 +213,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -225,6 +230,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -242,6 +248,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -255,6 +262,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -268,6 +276,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +292,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -300,6 +310,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -322,6 +333,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -337,6 +349,7 @@ const example = extrude(1, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -68,6 +68,7 @@ let vase = layer()
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +136,7 @@ let vase = layer()
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -159,6 +161,7 @@ let vase = layer()
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -174,6 +177,7 @@ let vase = layer()
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -211,6 +215,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -227,6 +232,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -244,6 +250,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -257,6 +264,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -270,6 +278,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -285,6 +294,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -302,6 +312,7 @@ let vase = layer()
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -324,6 +335,7 @@ let vase = layer()
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -339,6 +351,7 @@ let vase = layer()
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -89,6 +89,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -111,6 +112,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -127,6 +129,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -144,6 +147,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -157,6 +161,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +175,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -185,6 +191,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -202,6 +209,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -223,6 +231,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -238,6 +247,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -275,6 +285,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -291,6 +302,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -308,6 +320,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -321,6 +334,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +348,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -349,6 +364,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -366,6 +382,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -84,6 +84,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -106,6 +107,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -122,6 +124,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -139,6 +142,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +156,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -165,6 +170,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -180,6 +186,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -197,6 +204,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -218,6 +226,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -233,6 +242,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -270,6 +280,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -286,6 +297,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -303,6 +315,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +329,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -329,6 +343,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -344,6 +359,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -361,6 +377,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -105,6 +106,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -121,6 +123,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -138,6 +141,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -151,6 +155,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -164,6 +169,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -179,6 +185,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -196,6 +203,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -217,6 +225,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -232,6 +241,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -269,6 +279,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -285,6 +296,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -302,6 +314,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -315,6 +328,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -328,6 +342,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -343,6 +358,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -360,6 +376,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -219,6 +219,7 @@ uuid |
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -241,6 +242,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -257,6 +259,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +277,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -287,6 +291,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -300,6 +305,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -315,6 +321,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +339,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -353,6 +361,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -368,6 +377,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -405,6 +415,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -421,6 +432,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -438,6 +450,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -451,6 +464,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -464,6 +478,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -479,6 +494,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -496,6 +512,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -530,6 +547,7 @@ uuid |
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -597,6 +615,7 @@ uuid |
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -621,6 +640,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -636,6 +656,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -673,6 +694,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -689,6 +711,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -706,6 +729,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -719,6 +743,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -732,6 +757,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -747,6 +773,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -764,6 +791,7 @@ uuid |
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -785,6 +813,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -800,6 +829,7 @@ uuid |
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -118,6 +119,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -134,6 +136,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -151,6 +154,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -164,6 +168,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -177,6 +182,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -192,6 +198,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -209,6 +216,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -230,6 +238,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -245,6 +254,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -282,6 +292,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +309,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -315,6 +327,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -328,6 +341,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -341,6 +355,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -356,6 +371,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -373,6 +389,7 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -94,6 +94,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -116,6 +117,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -132,6 +134,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -149,6 +152,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -162,6 +166,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -175,6 +180,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -190,6 +196,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -207,6 +214,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -228,6 +236,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -243,6 +252,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -280,6 +290,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -296,6 +307,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -313,6 +325,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -326,6 +339,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -339,6 +353,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -354,6 +369,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -371,6 +387,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -95,6 +95,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -117,6 +118,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -133,6 +135,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -150,6 +153,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -163,6 +167,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -176,6 +181,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -191,6 +197,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -208,6 +215,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -229,6 +237,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -244,6 +253,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -281,6 +291,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -297,6 +308,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -314,6 +326,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -327,6 +340,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -340,6 +354,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -355,6 +370,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -372,6 +388,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -93,6 +93,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -115,6 +116,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -131,6 +133,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -148,6 +151,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -161,6 +165,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -174,6 +179,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -189,6 +195,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -206,6 +213,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -227,6 +235,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -242,6 +251,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -279,6 +289,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -295,6 +306,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -312,6 +324,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -325,6 +338,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -338,6 +352,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -353,6 +368,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -370,6 +386,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -64,6 +64,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -131,6 +132,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -155,6 +157,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +173,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -207,6 +211,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -223,6 +228,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +246,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -253,6 +260,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -266,6 +274,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -281,6 +290,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -298,6 +308,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -319,6 +330,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +346,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -366,6 +379,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -433,6 +447,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -457,6 +472,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -472,6 +488,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -509,6 +526,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +543,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -542,6 +561,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -555,6 +575,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -568,6 +589,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -583,6 +605,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -600,6 +623,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -621,6 +645,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -636,6 +661,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -110,6 +110,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -189,6 +190,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -205,6 +207,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -222,6 +225,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -235,6 +239,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -248,6 +253,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -263,6 +269,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -280,6 +287,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -301,6 +309,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +325,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -351,6 +361,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -417,6 +428,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -439,6 +451,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -455,6 +468,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -472,6 +486,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -485,6 +500,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -498,6 +514,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -513,6 +530,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -530,6 +548,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -551,6 +570,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -566,6 +586,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -603,6 +624,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -619,6 +641,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -636,6 +659,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -649,6 +673,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -662,6 +687,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -677,6 +703,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -694,6 +721,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -114,6 +114,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -136,6 +137,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +154,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +172,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -182,6 +186,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -195,6 +200,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -210,6 +216,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -227,6 +234,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -248,6 +256,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -263,6 +272,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -300,6 +310,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +327,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +345,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -346,6 +359,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -359,6 +373,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -374,6 +389,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -391,6 +407,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -179,6 +179,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -258,6 +259,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +276,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -291,6 +294,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -304,6 +308,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -317,6 +322,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +338,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -349,6 +356,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -370,6 +378,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -385,6 +394,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -457,6 +467,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -536,6 +547,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -552,6 +564,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -569,6 +582,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -582,6 +596,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -595,6 +610,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -610,6 +626,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -627,6 +644,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -648,6 +666,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -663,6 +682,7 @@ const a1 = startSketchOn({
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14916
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
							
						
						
									
										14916
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -97,6 +97,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -119,6 +120,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -135,6 +137,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -152,6 +155,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -165,6 +169,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -178,6 +183,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -193,6 +199,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -210,6 +217,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -231,6 +239,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -246,6 +255,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -283,6 +293,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -299,6 +310,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -316,6 +328,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -329,6 +342,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -342,6 +356,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -357,6 +372,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -374,6 +390,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -387,6 +404,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -453,6 +471,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -475,6 +494,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -491,6 +511,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -508,6 +529,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -521,6 +543,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -534,6 +557,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -549,6 +573,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -566,6 +591,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -587,6 +613,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -602,6 +629,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -639,6 +667,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -655,6 +684,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -672,6 +702,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -685,6 +716,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -698,6 +730,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -713,6 +746,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -730,6 +764,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -110,6 +111,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -126,6 +128,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -143,6 +146,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -156,6 +160,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -169,6 +174,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -184,6 +190,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -201,6 +208,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -222,6 +230,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -237,6 +246,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -274,6 +284,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -290,6 +301,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -307,6 +319,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -320,6 +333,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -333,6 +347,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -348,6 +363,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -365,6 +381,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -378,6 +395,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -444,6 +462,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -466,6 +485,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -482,6 +502,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -499,6 +520,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -512,6 +534,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -525,6 +548,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -540,6 +564,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -557,6 +582,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -578,6 +604,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -593,6 +620,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -630,6 +658,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -646,6 +675,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -663,6 +693,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -676,6 +707,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -689,6 +721,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -704,6 +737,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -721,6 +755,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -91,6 +91,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -113,6 +114,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -129,6 +131,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -146,6 +149,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -159,6 +163,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -172,6 +177,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -187,6 +193,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -204,6 +211,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -225,6 +233,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +249,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -277,6 +287,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -293,6 +304,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -310,6 +322,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -323,6 +336,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -336,6 +350,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -351,6 +366,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -368,6 +384,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -381,6 +398,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -447,6 +465,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -469,6 +488,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -485,6 +505,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -502,6 +523,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -515,6 +537,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -528,6 +551,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -543,6 +567,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -560,6 +585,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -581,6 +607,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -596,6 +623,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -633,6 +661,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -649,6 +678,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -666,6 +696,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -679,6 +710,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -692,6 +724,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -707,6 +740,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -724,6 +758,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -91,6 +91,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -113,6 +114,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -129,6 +131,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -146,6 +149,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -159,6 +163,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -172,6 +177,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -187,6 +193,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -204,6 +211,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -225,6 +233,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -240,6 +249,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -277,6 +287,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -293,6 +304,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -310,6 +322,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -323,6 +336,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -336,6 +350,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -351,6 +366,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -368,6 +384,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -381,6 +398,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -447,6 +465,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -469,6 +488,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -485,6 +505,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -502,6 +523,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -515,6 +537,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -528,6 +551,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -543,6 +567,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -560,6 +585,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -581,6 +607,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -596,6 +623,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -633,6 +661,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -649,6 +678,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -666,6 +696,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -679,6 +710,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -692,6 +724,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -707,6 +740,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -724,6 +758,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -89,6 +89,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -111,6 +112,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -127,6 +129,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -144,6 +147,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -157,6 +161,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -170,6 +175,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -185,6 +191,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -202,6 +209,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -223,6 +231,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -238,6 +247,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -275,6 +285,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -291,6 +302,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -308,6 +320,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -321,6 +334,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -334,6 +348,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -349,6 +364,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -366,6 +382,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -379,6 +396,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -445,6 +463,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -467,6 +486,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -483,6 +503,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -500,6 +521,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -513,6 +535,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -526,6 +549,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -541,6 +565,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -558,6 +583,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -579,6 +605,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -594,6 +621,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -631,6 +659,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -647,6 +676,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -664,6 +694,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -677,6 +708,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -690,6 +722,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -705,6 +738,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -722,6 +756,7 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -87,6 +87,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -109,6 +110,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -125,6 +127,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -142,6 +145,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -155,6 +159,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -168,6 +173,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -183,6 +189,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -200,6 +207,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -221,6 +229,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -236,6 +245,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -273,6 +283,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -289,6 +300,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -306,6 +318,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -319,6 +332,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -332,6 +346,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -347,6 +362,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -364,6 +380,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -377,6 +394,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagDeclarator` (OPTIONAL)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -443,6 +461,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -465,6 +484,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -481,6 +501,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -498,6 +519,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -511,6 +533,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -524,6 +547,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -539,6 +563,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -556,6 +581,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -577,6 +603,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -592,6 +619,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -629,6 +657,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -645,6 +674,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -662,6 +692,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -675,6 +706,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -688,6 +720,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -703,6 +736,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
@ -720,6 +754,7 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,9 @@ export class KclManager {
 | 
			
		||||
    nonCodeMeta: {
 | 
			
		||||
      nonCodeNodes: {},
 | 
			
		||||
      start: [],
 | 
			
		||||
      digest: null,
 | 
			
		||||
    },
 | 
			
		||||
    digest: null,
 | 
			
		||||
  }
 | 
			
		||||
  private _programMemory: ProgramMemory = {
 | 
			
		||||
    root: {},
 | 
			
		||||
@ -160,7 +162,9 @@ export class KclManager {
 | 
			
		||||
      nonCodeMeta: {
 | 
			
		||||
        nonCodeNodes: {},
 | 
			
		||||
        start: [],
 | 
			
		||||
        digest: null,
 | 
			
		||||
      },
 | 
			
		||||
      digest: null,
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -167,6 +167,7 @@ const sk2 = startSketchOn('XY')
 | 
			
		||||
              start: 114,
 | 
			
		||||
              type: 'TagDeclarator',
 | 
			
		||||
              value: 'p',
 | 
			
		||||
              digest: null,
 | 
			
		||||
            },
 | 
			
		||||
            id: expect.any(String),
 | 
			
		||||
            sourceRange: [95, 117],
 | 
			
		||||
@ -216,6 +217,7 @@ const sk2 = startSketchOn('XY')
 | 
			
		||||
                start: 114,
 | 
			
		||||
                type: 'TagDeclarator',
 | 
			
		||||
                value: 'p',
 | 
			
		||||
                digest: null,
 | 
			
		||||
              },
 | 
			
		||||
              __geoMeta: {
 | 
			
		||||
                id: expect.any(String),
 | 
			
		||||
@ -258,6 +260,7 @@ const sk2 = startSketchOn('XY')
 | 
			
		||||
              start: 417,
 | 
			
		||||
              type: 'TagDeclarator',
 | 
			
		||||
              value: 'o',
 | 
			
		||||
              digest: null,
 | 
			
		||||
            },
 | 
			
		||||
            id: expect.any(String),
 | 
			
		||||
            sourceRange: [399, 420],
 | 
			
		||||
@ -307,6 +310,7 @@ const sk2 = startSketchOn('XY')
 | 
			
		||||
                start: 417,
 | 
			
		||||
                type: 'TagDeclarator',
 | 
			
		||||
                value: 'o',
 | 
			
		||||
                digest: null,
 | 
			
		||||
              },
 | 
			
		||||
              __geoMeta: {
 | 
			
		||||
                id: expect.any(String),
 | 
			
		||||
 | 
			
		||||
@ -67,6 +67,7 @@ const newVar = myVar + 1`
 | 
			
		||||
          start: 89,
 | 
			
		||||
          type: 'TagDeclarator',
 | 
			
		||||
          value: 'myPath',
 | 
			
		||||
          digest: null,
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@ -92,6 +93,7 @@ const newVar = myVar + 1`
 | 
			
		||||
          start: 144,
 | 
			
		||||
          type: 'TagDeclarator',
 | 
			
		||||
          value: 'rightPath',
 | 
			
		||||
          digest: null,
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
    ])
 | 
			
		||||
@ -190,6 +192,7 @@ const newVar = myVar + 1`
 | 
			
		||||
            start: 109,
 | 
			
		||||
            type: 'TagDeclarator',
 | 
			
		||||
            value: 'myPath',
 | 
			
		||||
            digest: null,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
@ -99,15 +99,15 @@ describe('Testing findUniqueName', () => {
 | 
			
		||||
  it('should find a unique name', () => {
 | 
			
		||||
    const result = findUniqueName(
 | 
			
		||||
      JSON.stringify([
 | 
			
		||||
        { type: 'Identifier', name: 'yo01', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo02', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo03', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo04', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo05', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo06', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo07', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo08', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo09', start: 0, end: 0 },
 | 
			
		||||
        { type: 'Identifier', name: 'yo01', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo02', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo03', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo04', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo05', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo06', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo07', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo08', start: 0, end: 0, digest: null },
 | 
			
		||||
        { type: 'Identifier', name: 'yo09', start: 0, end: 0, digest: null },
 | 
			
		||||
      ] satisfies Identifier[]),
 | 
			
		||||
      'yo',
 | 
			
		||||
      2
 | 
			
		||||
@ -122,7 +122,8 @@ describe('Testing addSketchTo', () => {
 | 
			
		||||
        body: [],
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: 0,
 | 
			
		||||
        nonCodeMeta: { nonCodeNodes: {}, start: [] },
 | 
			
		||||
        nonCodeMeta: { nonCodeNodes: {}, start: [], digest: null },
 | 
			
		||||
        digest: null,
 | 
			
		||||
      },
 | 
			
		||||
      'yz'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -243,6 +243,7 @@ export function mutateObjExpProp(
 | 
			
		||||
        value: updateWith,
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: 0,
 | 
			
		||||
        digest: null,
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -484,6 +485,7 @@ export function createLiteral(value: string | number): Literal {
 | 
			
		||||
    end: 0,
 | 
			
		||||
    value,
 | 
			
		||||
    raw: `${value}`,
 | 
			
		||||
    digest: null,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -492,6 +494,7 @@ export function createTagDeclarator(value: string): TagDeclarator {
 | 
			
		||||
    type: 'TagDeclarator',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    value,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -501,6 +504,7 @@ export function createIdentifier(name: string): Identifier {
 | 
			
		||||
    type: 'Identifier',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    name,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -510,6 +514,7 @@ export function createPipeSubstitution(): PipeSubstitution {
 | 
			
		||||
    type: 'PipeSubstitution',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -525,10 +530,12 @@ export function createCallExpressionStdLib(
 | 
			
		||||
      type: 'Identifier',
 | 
			
		||||
      start: 0,
 | 
			
		||||
      end: 0,
 | 
			
		||||
      digest: null,
 | 
			
		||||
      name,
 | 
			
		||||
    },
 | 
			
		||||
    optional: false,
 | 
			
		||||
    arguments: args,
 | 
			
		||||
    digest: null,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -544,10 +551,12 @@ export function createCallExpression(
 | 
			
		||||
      type: 'Identifier',
 | 
			
		||||
      start: 0,
 | 
			
		||||
      end: 0,
 | 
			
		||||
      digest: null,
 | 
			
		||||
      name,
 | 
			
		||||
    },
 | 
			
		||||
    optional: false,
 | 
			
		||||
    arguments: args,
 | 
			
		||||
    digest: null,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -558,6 +567,7 @@ export function createArrayExpression(
 | 
			
		||||
    type: 'ArrayExpression',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    elements,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -569,8 +579,9 @@ export function createPipeExpression(
 | 
			
		||||
    type: 'PipeExpression',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    body,
 | 
			
		||||
    nonCodeMeta: { nonCodeNodes: {}, start: [] },
 | 
			
		||||
    nonCodeMeta: { nonCodeNodes: {}, start: [], digest: null },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -583,11 +594,13 @@ export function createVariableDeclaration(
 | 
			
		||||
    type: 'VariableDeclaration',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    declarations: [
 | 
			
		||||
      {
 | 
			
		||||
        type: 'VariableDeclarator',
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: 0,
 | 
			
		||||
        digest: null,
 | 
			
		||||
        id: createIdentifier(varName),
 | 
			
		||||
        init,
 | 
			
		||||
      },
 | 
			
		||||
@ -603,11 +616,13 @@ export function createObjectExpression(properties: {
 | 
			
		||||
    type: 'ObjectExpression',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    properties: Object.entries(properties).map(([key, value]) => ({
 | 
			
		||||
      type: 'ObjectProperty',
 | 
			
		||||
      start: 0,
 | 
			
		||||
      end: 0,
 | 
			
		||||
      key: createIdentifier(key),
 | 
			
		||||
      digest: null,
 | 
			
		||||
      value,
 | 
			
		||||
    })),
 | 
			
		||||
  }
 | 
			
		||||
@ -621,6 +636,7 @@ export function createUnaryExpression(
 | 
			
		||||
    type: 'UnaryExpression',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    operator,
 | 
			
		||||
    argument,
 | 
			
		||||
  }
 | 
			
		||||
@ -635,6 +651,7 @@ export function createBinaryExpression([left, operator, right]: [
 | 
			
		||||
    type: 'BinaryExpression',
 | 
			
		||||
    start: 0,
 | 
			
		||||
    end: 0,
 | 
			
		||||
    digest: null,
 | 
			
		||||
    operator,
 | 
			
		||||
    left,
 | 
			
		||||
    right,
 | 
			
		||||
 | 
			
		||||
@ -1536,9 +1536,11 @@ export const updateStartProfileAtArgs: SketchLineHelper['updateArgs'] = ({
 | 
			
		||||
        start: 0,
 | 
			
		||||
        end: 0,
 | 
			
		||||
        body: [],
 | 
			
		||||
        digest: null,
 | 
			
		||||
        nonCodeMeta: {
 | 
			
		||||
          start: [],
 | 
			
		||||
          nonCodeNodes: [],
 | 
			
		||||
          digest: null,
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      pathToNode,
 | 
			
		||||
 | 
			
		||||
@ -22,17 +22,22 @@ fn basic() {
 | 
			
		||||
                    start: 6,
 | 
			
		||||
                    end: 7,
 | 
			
		||||
                    name: "y".to_owned(),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
                init: Value::Literal(Box::new(Literal {
 | 
			
		||||
                    start: 10,
 | 
			
		||||
                    end: 11,
 | 
			
		||||
                    value: LiteralValue::IInteger(4),
 | 
			
		||||
                    raw: "4".to_owned(),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                })),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }],
 | 
			
		||||
            kind: VariableKind::Const,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        })],
 | 
			
		||||
        non_code_meta: NonCodeMeta::default(),
 | 
			
		||||
        digest: None,
 | 
			
		||||
    };
 | 
			
		||||
    assert_eq!(expected, actual);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,6 +13,7 @@ use parse_display::{Display, FromStr};
 | 
			
		||||
use schemars::JsonSchema;
 | 
			
		||||
use serde::{Deserialize, Serialize};
 | 
			
		||||
use serde_json::{Map, Value as JValue};
 | 
			
		||||
use sha2::{Digest as DigestTrait, Sha256};
 | 
			
		||||
use tower_lsp::lsp_types::{
 | 
			
		||||
    CompletionItem, CompletionItemKind, DocumentSymbol, FoldingRange, FoldingRangeKind, Range as LspRange, SymbolKind,
 | 
			
		||||
};
 | 
			
		||||
@ -32,6 +33,9 @@ use crate::{
 | 
			
		||||
mod literal_value;
 | 
			
		||||
mod none;
 | 
			
		||||
 | 
			
		||||
/// Position-independent digest of the AST node.
 | 
			
		||||
pub type Digest = [u8; 32];
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
@ -41,9 +45,43 @@ pub struct Program {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub body: Vec<BodyItem>,
 | 
			
		||||
    pub non_code_meta: NonCodeMeta,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
macro_rules! compute_digest {
 | 
			
		||||
    (|$slf:ident, $hasher:ident| $body:block) => {
 | 
			
		||||
        /// Compute a digest over the AST node.
 | 
			
		||||
        pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
            if let Some(node_digest) = self.digest {
 | 
			
		||||
                return node_digest;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            let mut $hasher = Sha256::new();
 | 
			
		||||
 | 
			
		||||
            #[allow(unused_mut)]
 | 
			
		||||
            let mut $slf = self;
 | 
			
		||||
 | 
			
		||||
            $hasher.update(std::any::type_name::<Self>());
 | 
			
		||||
 | 
			
		||||
            $body
 | 
			
		||||
 | 
			
		||||
            let node_digest: Digest = $hasher.finalize().into();
 | 
			
		||||
            $slf.digest = Some(node_digest);
 | 
			
		||||
            node_digest
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Program {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.body.len().to_ne_bytes());
 | 
			
		||||
        for body_item in slf.body.iter_mut() {
 | 
			
		||||
            hasher.update(body_item.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(slf.non_code_meta.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn get_hover_value_for_position(&self, pos: usize, code: &str) -> Option<Hover> {
 | 
			
		||||
        // Check if we are in the non code meta.
 | 
			
		||||
        if let Some(meta) = self.get_non_code_meta_for_position(pos) {
 | 
			
		||||
@ -481,6 +519,14 @@ pub enum BodyItem {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl BodyItem {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        match self {
 | 
			
		||||
            BodyItem::ExpressionStatement(es) => es.compute_digest(),
 | 
			
		||||
            BodyItem::VariableDeclaration(vs) => vs.compute_digest(),
 | 
			
		||||
            BodyItem::ReturnStatement(rs) => rs.compute_digest(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn start(&self) -> usize {
 | 
			
		||||
        match self {
 | 
			
		||||
            BodyItem::ExpressionStatement(expression_statement) => expression_statement.start(),
 | 
			
		||||
@ -531,6 +577,28 @@ pub enum Value {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Value {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        match self {
 | 
			
		||||
            Value::Literal(lit) => lit.compute_digest(),
 | 
			
		||||
            Value::Identifier(id) => id.compute_digest(),
 | 
			
		||||
            Value::TagDeclarator(tag) => tag.compute_digest(),
 | 
			
		||||
            Value::BinaryExpression(be) => be.compute_digest(),
 | 
			
		||||
            Value::FunctionExpression(fe) => fe.compute_digest(),
 | 
			
		||||
            Value::CallExpression(ce) => ce.compute_digest(),
 | 
			
		||||
            Value::PipeExpression(pe) => pe.compute_digest(),
 | 
			
		||||
            Value::PipeSubstitution(ps) => ps.compute_digest(),
 | 
			
		||||
            Value::ArrayExpression(ae) => ae.compute_digest(),
 | 
			
		||||
            Value::ObjectExpression(oe) => oe.compute_digest(),
 | 
			
		||||
            Value::MemberExpression(me) => me.compute_digest(),
 | 
			
		||||
            Value::UnaryExpression(ue) => ue.compute_digest(),
 | 
			
		||||
            Value::None(_) => {
 | 
			
		||||
                let mut hasher = Sha256::new();
 | 
			
		||||
                hasher.update(b"Value::None");
 | 
			
		||||
                hasher.finalize().into()
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn recast(&self, options: &FormatOptions, indentation_level: usize, is_in_pipe: bool) -> String {
 | 
			
		||||
        match &self {
 | 
			
		||||
            Value::BinaryExpression(bin_exp) => bin_exp.recast(options),
 | 
			
		||||
@ -759,6 +827,17 @@ impl From<&BinaryPart> for SourceRange {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl BinaryPart {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        match self {
 | 
			
		||||
            BinaryPart::Literal(lit) => lit.compute_digest(),
 | 
			
		||||
            BinaryPart::Identifier(id) => id.compute_digest(),
 | 
			
		||||
            BinaryPart::BinaryExpression(be) => be.compute_digest(),
 | 
			
		||||
            BinaryPart::CallExpression(ce) => ce.compute_digest(),
 | 
			
		||||
            BinaryPart::UnaryExpression(ue) => ue.compute_digest(),
 | 
			
		||||
            BinaryPart::MemberExpression(me) => me.compute_digest(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Get the constraint level.
 | 
			
		||||
    pub fn get_constraint_level(&self) -> ConstraintLevel {
 | 
			
		||||
        match self {
 | 
			
		||||
@ -888,6 +967,8 @@ pub struct NonCodeNode {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub value: NonCodeValue,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl From<NonCodeNode> for SourceRange {
 | 
			
		||||
@ -903,6 +984,29 @@ impl From<&NonCodeNode> for SourceRange {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl NonCodeNode {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        match &slf.value {
 | 
			
		||||
            NonCodeValue::Shebang { value } => {
 | 
			
		||||
                hasher.update(value);
 | 
			
		||||
            }
 | 
			
		||||
            NonCodeValue::InlineComment { value, style } => {
 | 
			
		||||
                hasher.update(value);
 | 
			
		||||
                hasher.update(style.digestable_id());
 | 
			
		||||
            }
 | 
			
		||||
            NonCodeValue::BlockComment { value, style } => {
 | 
			
		||||
                hasher.update(value);
 | 
			
		||||
                hasher.update(style.digestable_id());
 | 
			
		||||
            }
 | 
			
		||||
            NonCodeValue::NewLineBlockComment { value, style } => {
 | 
			
		||||
                hasher.update(value);
 | 
			
		||||
                hasher.update(style.digestable_id());
 | 
			
		||||
            }
 | 
			
		||||
            NonCodeValue::NewLine => {
 | 
			
		||||
                hasher.update(b"\r\n");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn contains(&self, pos: usize) -> bool {
 | 
			
		||||
        self.start <= pos && pos <= self.end
 | 
			
		||||
    }
 | 
			
		||||
@ -967,6 +1071,15 @@ pub enum CommentStyle {
 | 
			
		||||
    Block,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl CommentStyle {
 | 
			
		||||
    fn digestable_id(&self) -> [u8; 2] {
 | 
			
		||||
        match &self {
 | 
			
		||||
            CommentStyle::Line => *b"//",
 | 
			
		||||
            CommentStyle::Block => *b"/*",
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
@ -1021,6 +1134,8 @@ pub enum NonCodeValue {
 | 
			
		||||
pub struct NonCodeMeta {
 | 
			
		||||
    pub non_code_nodes: HashMap<usize, Vec<NonCodeNode>>,
 | 
			
		||||
    pub start: Vec<NonCodeNode>,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// implement Deserialize manually because we to force the keys of non_code_nodes to be usize
 | 
			
		||||
@ -1046,11 +1161,26 @@ impl<'de> Deserialize<'de> for NonCodeMeta {
 | 
			
		||||
        Ok(NonCodeMeta {
 | 
			
		||||
            non_code_nodes,
 | 
			
		||||
            start: helper.start,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl NonCodeMeta {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        let mut keys = slf.non_code_nodes.keys().copied().collect::<Vec<_>>();
 | 
			
		||||
        keys.sort();
 | 
			
		||||
 | 
			
		||||
        for key in keys.into_iter() {
 | 
			
		||||
            hasher.update(key.to_ne_bytes());
 | 
			
		||||
            let nodes = slf.non_code_nodes.get_mut(&key).unwrap();
 | 
			
		||||
            hasher.update(nodes.len().to_ne_bytes());
 | 
			
		||||
            for node in nodes.iter_mut() {
 | 
			
		||||
                hasher.update(node.compute_digest());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn insert(&mut self, i: usize, new: NonCodeNode) {
 | 
			
		||||
        self.non_code_nodes.entry(i).or_default().push(new);
 | 
			
		||||
    }
 | 
			
		||||
@ -1074,10 +1204,18 @@ pub struct ExpressionStatement {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub expression: Value,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(ExpressionStatement);
 | 
			
		||||
 | 
			
		||||
impl ExpressionStatement {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.expression.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
@ -1088,6 +1226,8 @@ pub struct CallExpression {
 | 
			
		||||
    pub callee: Identifier,
 | 
			
		||||
    pub arguments: Vec<Value>,
 | 
			
		||||
    pub optional: bool,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(CallExpression);
 | 
			
		||||
@ -1106,9 +1246,19 @@ impl CallExpression {
 | 
			
		||||
            callee: Identifier::new(name),
 | 
			
		||||
            arguments,
 | 
			
		||||
            optional: false,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.callee.compute_digest());
 | 
			
		||||
        hasher.update(slf.arguments.len().to_ne_bytes());
 | 
			
		||||
        for argument in slf.arguments.iter_mut() {
 | 
			
		||||
            hasher.update(argument.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(if slf.optional { [1] } else { [0] });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    /// Is at least one argument the '%' i.e. the substitution operator?
 | 
			
		||||
    pub fn has_substitution_arg(&self) -> bool {
 | 
			
		||||
        self.arguments
 | 
			
		||||
@ -1346,6 +1496,8 @@ pub struct VariableDeclaration {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub declarations: Vec<VariableDeclarator>,
 | 
			
		||||
    pub kind: VariableKind, // Change to enum if there are specific values
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl From<&VariableDeclaration> for Vec<CompletionItem> {
 | 
			
		||||
@ -1385,15 +1537,23 @@ impl From<&VariableDeclaration> for Vec<CompletionItem> {
 | 
			
		||||
impl_value_meta!(VariableDeclaration);
 | 
			
		||||
 | 
			
		||||
impl VariableDeclaration {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.declarations.len().to_ne_bytes());
 | 
			
		||||
        for declarator in &mut slf.declarations {
 | 
			
		||||
            hasher.update(declarator.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(slf.kind.digestable_id());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn new(declarations: Vec<VariableDeclarator>, kind: VariableKind) -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            declarations,
 | 
			
		||||
            kind,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn get_lsp_folding_range(&self) -> Option<FoldingRange> {
 | 
			
		||||
        let recasted = self.recast(&FormatOptions::default(), 0);
 | 
			
		||||
        // If the recasted value only has one line, don't fold it.
 | 
			
		||||
@ -1574,6 +1734,15 @@ pub enum VariableKind {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl VariableKind {
 | 
			
		||||
    fn digestable_id(&self) -> [u8; 1] {
 | 
			
		||||
        match self {
 | 
			
		||||
            VariableKind::Let => [1],
 | 
			
		||||
            VariableKind::Const => [2],
 | 
			
		||||
            VariableKind::Fn => [3],
 | 
			
		||||
            VariableKind::Var => [4],
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn to_completion_items() -> Result<Vec<CompletionItem>> {
 | 
			
		||||
        let mut settings = schemars::gen::SchemaSettings::openapi3();
 | 
			
		||||
        settings.inline_subschemas = true;
 | 
			
		||||
@ -1613,6 +1782,8 @@ pub struct VariableDeclarator {
 | 
			
		||||
    pub id: Identifier,
 | 
			
		||||
    /// The value of the variable.
 | 
			
		||||
    pub init: Value,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(VariableDeclarator);
 | 
			
		||||
@ -1624,9 +1795,15 @@ impl VariableDeclarator {
 | 
			
		||||
            end: 0,
 | 
			
		||||
            id: Identifier::new(name),
 | 
			
		||||
            init,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.id.compute_digest());
 | 
			
		||||
        hasher.update(slf.init.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn get_constraint_level(&self) -> ConstraintLevel {
 | 
			
		||||
        self.init.get_constraint_level()
 | 
			
		||||
    }
 | 
			
		||||
@ -1641,6 +1818,8 @@ pub struct Literal {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub value: LiteralValue,
 | 
			
		||||
    pub raw: String,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(Literal);
 | 
			
		||||
@ -1652,9 +1831,14 @@ impl Literal {
 | 
			
		||||
            end: 0,
 | 
			
		||||
            raw: JValue::from(value.clone()).to_string(),
 | 
			
		||||
            value,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.value.digestable_id());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    /// Get the constraint level for this literal.
 | 
			
		||||
    /// Literals are always not constrained.
 | 
			
		||||
    pub fn get_constraint_level(&self) -> ConstraintLevel {
 | 
			
		||||
@ -1712,6 +1896,8 @@ pub struct Identifier {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub name: String,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(Identifier);
 | 
			
		||||
@ -1722,9 +1908,16 @@ impl Identifier {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            name: name.to_string(),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        let name = slf.name.as_bytes();
 | 
			
		||||
        hasher.update(name.len().to_ne_bytes());
 | 
			
		||||
        hasher.update(name);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    /// Get the constraint level for this identifier.
 | 
			
		||||
    /// Identifier are always fully constrained.
 | 
			
		||||
    pub fn get_constraint_level(&self) -> ConstraintLevel {
 | 
			
		||||
@ -1750,6 +1943,8 @@ pub struct TagDeclarator {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    #[serde(rename = "value")]
 | 
			
		||||
    pub name: String,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(TagDeclarator);
 | 
			
		||||
@ -1820,9 +2015,16 @@ impl TagDeclarator {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            name: name.to_string(),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        let name = slf.name.as_bytes();
 | 
			
		||||
        hasher.update(name.len().to_ne_bytes());
 | 
			
		||||
        hasher.update(name);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn recast(&self) -> String {
 | 
			
		||||
        // TagDeclarators are always prefixed with a dollar sign.
 | 
			
		||||
        format!("${}", self.name)
 | 
			
		||||
@ -1882,14 +2084,24 @@ impl TagDeclarator {
 | 
			
		||||
pub struct PipeSubstitution {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(PipeSubstitution);
 | 
			
		||||
 | 
			
		||||
impl PipeSubstitution {
 | 
			
		||||
    pub fn new() -> Self {
 | 
			
		||||
        Self { start: 0, end: 0 }
 | 
			
		||||
        Self {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(b"PipeSubstitution");
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Default for PipeSubstitution {
 | 
			
		||||
@ -1912,6 +2124,8 @@ pub struct ArrayExpression {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub elements: Vec<Value>,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(ArrayExpression);
 | 
			
		||||
@ -1928,9 +2142,17 @@ impl ArrayExpression {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            elements,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.elements.len().to_ne_bytes());
 | 
			
		||||
        for value in slf.elements.iter_mut() {
 | 
			
		||||
            hasher.update(value.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn replace_value(&mut self, source_range: SourceRange, new_value: Value) {
 | 
			
		||||
        for element in &mut self.elements {
 | 
			
		||||
            element.replace_value(source_range, new_value.clone());
 | 
			
		||||
@ -2068,6 +2290,8 @@ pub struct ObjectExpression {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub properties: Vec<ObjectProperty>,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl ObjectExpression {
 | 
			
		||||
@ -2076,9 +2300,17 @@ impl ObjectExpression {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 0,
 | 
			
		||||
            properties,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.properties.len().to_ne_bytes());
 | 
			
		||||
        for prop in slf.properties.iter_mut() {
 | 
			
		||||
            hasher.update(prop.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn replace_value(&mut self, source_range: SourceRange, new_value: Value) {
 | 
			
		||||
        for property in &mut self.properties {
 | 
			
		||||
            property.value.replace_value(source_range, new_value.clone());
 | 
			
		||||
@ -2229,11 +2461,18 @@ pub struct ObjectProperty {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub key: Identifier,
 | 
			
		||||
    pub value: Value,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(ObjectProperty);
 | 
			
		||||
 | 
			
		||||
impl ObjectProperty {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.key.compute_digest());
 | 
			
		||||
        hasher.update(slf.value.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn get_lsp_symbols(&self, code: &str) -> Vec<DocumentSymbol> {
 | 
			
		||||
        let source_range: SourceRange = self.clone().into();
 | 
			
		||||
        let inner_source_range: SourceRange = self.key.clone().into();
 | 
			
		||||
@ -2273,6 +2512,13 @@ pub enum MemberObject {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl MemberObject {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        match self {
 | 
			
		||||
            MemberObject::MemberExpression(me) => me.compute_digest(),
 | 
			
		||||
            MemberObject::Identifier(id) => id.compute_digest(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Returns a hover value that includes the given character position.
 | 
			
		||||
    pub fn get_hover_value_for_position(&self, pos: usize, code: &str) -> Option<Hover> {
 | 
			
		||||
        match self {
 | 
			
		||||
@ -2320,6 +2566,13 @@ pub enum LiteralIdentifier {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl LiteralIdentifier {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        match self {
 | 
			
		||||
            LiteralIdentifier::Identifier(id) => id.compute_digest(),
 | 
			
		||||
            LiteralIdentifier::Literal(lit) => lit.compute_digest(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn start(&self) -> usize {
 | 
			
		||||
        match self {
 | 
			
		||||
            LiteralIdentifier::Identifier(identifier) => identifier.start,
 | 
			
		||||
@ -2357,11 +2610,19 @@ pub struct MemberExpression {
 | 
			
		||||
    pub object: MemberObject,
 | 
			
		||||
    pub property: LiteralIdentifier,
 | 
			
		||||
    pub computed: bool,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(MemberExpression);
 | 
			
		||||
 | 
			
		||||
impl MemberExpression {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.object.compute_digest());
 | 
			
		||||
        hasher.update(slf.property.compute_digest());
 | 
			
		||||
        hasher.update(if slf.computed { [1] } else { [0] });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    /// Get the constraint level for a member expression.
 | 
			
		||||
    /// This is always fully constrained.
 | 
			
		||||
    pub fn get_constraint_level(&self) -> ConstraintLevel {
 | 
			
		||||
@ -2522,6 +2783,8 @@ pub struct BinaryExpression {
 | 
			
		||||
    pub operator: BinaryOperator,
 | 
			
		||||
    pub left: BinaryPart,
 | 
			
		||||
    pub right: BinaryPart,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(BinaryExpression);
 | 
			
		||||
@ -2534,9 +2797,16 @@ impl BinaryExpression {
 | 
			
		||||
            operator,
 | 
			
		||||
            left,
 | 
			
		||||
            right,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.operator.digestable_id());
 | 
			
		||||
        hasher.update(slf.left.compute_digest());
 | 
			
		||||
        hasher.update(slf.right.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn replace_value(&mut self, source_range: SourceRange, new_value: Value) {
 | 
			
		||||
        self.left.replace_value(source_range, new_value.clone());
 | 
			
		||||
        self.right.replace_value(source_range, new_value);
 | 
			
		||||
@ -2730,6 +3000,17 @@ impl Associativity {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl BinaryOperator {
 | 
			
		||||
    pub fn digestable_id(&self) -> [u8; 3] {
 | 
			
		||||
        match self {
 | 
			
		||||
            BinaryOperator::Add => *b"add",
 | 
			
		||||
            BinaryOperator::Sub => *b"sub",
 | 
			
		||||
            BinaryOperator::Mul => *b"mul",
 | 
			
		||||
            BinaryOperator::Div => *b"div",
 | 
			
		||||
            BinaryOperator::Mod => *b"mod",
 | 
			
		||||
            BinaryOperator::Pow => *b"pow",
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Follow JS definitions of each operator.
 | 
			
		||||
    /// Taken from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence#table>
 | 
			
		||||
    pub fn precedence(&self) -> u8 {
 | 
			
		||||
@ -2758,6 +3039,8 @@ pub struct UnaryExpression {
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub operator: UnaryOperator,
 | 
			
		||||
    pub argument: BinaryPart,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(UnaryExpression);
 | 
			
		||||
@ -2769,9 +3052,15 @@ impl UnaryExpression {
 | 
			
		||||
            end: argument.end(),
 | 
			
		||||
            operator,
 | 
			
		||||
            argument,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.operator.digestable_id());
 | 
			
		||||
        hasher.update(slf.argument.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn replace_value(&mut self, source_range: SourceRange, new_value: Value) {
 | 
			
		||||
        self.argument.replace_value(source_range, new_value);
 | 
			
		||||
    }
 | 
			
		||||
@ -2848,6 +3137,15 @@ pub enum UnaryOperator {
 | 
			
		||||
    Not,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl UnaryOperator {
 | 
			
		||||
    pub fn digestable_id(&self) -> [u8; 3] {
 | 
			
		||||
        match self {
 | 
			
		||||
            UnaryOperator::Neg => *b"neg",
 | 
			
		||||
            UnaryOperator::Not => *b"not",
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
@ -2859,6 +3157,8 @@ pub struct PipeExpression {
 | 
			
		||||
    // The rest will be CallExpression, and the AST type should reflect this.
 | 
			
		||||
    pub body: Vec<Value>,
 | 
			
		||||
    pub non_code_meta: NonCodeMeta,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(PipeExpression);
 | 
			
		||||
@ -2876,9 +3176,18 @@ impl PipeExpression {
 | 
			
		||||
            end: 0,
 | 
			
		||||
            body,
 | 
			
		||||
            non_code_meta: Default::default(),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.body.len().to_ne_bytes());
 | 
			
		||||
        for value in slf.body.iter_mut() {
 | 
			
		||||
            hasher.update(value.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(slf.non_code_meta.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn replace_value(&mut self, source_range: SourceRange, new_value: Value) {
 | 
			
		||||
        for value in &mut self.body {
 | 
			
		||||
            value.replace_value(source_range, new_value.clone());
 | 
			
		||||
@ -3044,6 +3353,20 @@ pub enum FnArgPrimitive {
 | 
			
		||||
    ExtrudeGroup,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl FnArgPrimitive {
 | 
			
		||||
    pub fn digestable_id(&self) -> &[u8] {
 | 
			
		||||
        match self {
 | 
			
		||||
            FnArgPrimitive::String => b"string",
 | 
			
		||||
            FnArgPrimitive::Number => b"number",
 | 
			
		||||
            FnArgPrimitive::Boolean => b"boolean",
 | 
			
		||||
            FnArgPrimitive::Tag => b"tag",
 | 
			
		||||
            FnArgPrimitive::SketchGroup => b"sketchgroup",
 | 
			
		||||
            FnArgPrimitive::SketchSurface => b"sketchsurface",
 | 
			
		||||
            FnArgPrimitive::ExtrudeGroup => b"extrudegroup",
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
#[serde(tag = "type")]
 | 
			
		||||
@ -3058,6 +3381,32 @@ pub enum FnArgType {
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl FnArgType {
 | 
			
		||||
    pub fn compute_digest(&mut self) -> Digest {
 | 
			
		||||
        let mut hasher = Sha256::new();
 | 
			
		||||
 | 
			
		||||
        match self {
 | 
			
		||||
            FnArgType::Primitive(prim) => {
 | 
			
		||||
                hasher.update(b"FnArgType::Primitive");
 | 
			
		||||
                hasher.update(prim.digestable_id())
 | 
			
		||||
            }
 | 
			
		||||
            FnArgType::Array(prim) => {
 | 
			
		||||
                hasher.update(b"FnArgType::Array");
 | 
			
		||||
                hasher.update(prim.digestable_id())
 | 
			
		||||
            }
 | 
			
		||||
            FnArgType::Object { properties } => {
 | 
			
		||||
                hasher.update(b"FnArgType::Object");
 | 
			
		||||
                hasher.update(properties.len().to_ne_bytes());
 | 
			
		||||
                for prop in properties.iter_mut() {
 | 
			
		||||
                    hasher.update(prop.compute_digest());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        hasher.finalize().into()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Parameter of a KCL function.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
#[databake(path = kcl_lib::ast::types)]
 | 
			
		||||
@ -3072,6 +3421,24 @@ pub struct Parameter {
 | 
			
		||||
    pub type_: Option<FnArgType>,
 | 
			
		||||
    /// Is the parameter optional?
 | 
			
		||||
    pub optional: bool,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Parameter {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.identifier.compute_digest());
 | 
			
		||||
        match &mut slf.type_ {
 | 
			
		||||
            Some(arg) => {
 | 
			
		||||
                hasher.update(b"Parameter::type_::Some");
 | 
			
		||||
                hasher.update(arg.compute_digest())
 | 
			
		||||
            }
 | 
			
		||||
            None => {
 | 
			
		||||
                hasher.update(b"Parameter::type_::None");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(if slf.optional { [1] } else { [0] })
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
 | 
			
		||||
@ -3085,6 +3452,8 @@ pub struct FunctionExpression {
 | 
			
		||||
    pub body: Program,
 | 
			
		||||
    #[serde(skip)]
 | 
			
		||||
    pub return_type: Option<FnArgType>,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(FunctionExpression);
 | 
			
		||||
@ -3114,12 +3483,30 @@ impl FunctionExpression {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.params.len().to_ne_bytes());
 | 
			
		||||
        for param in slf.params.iter_mut() {
 | 
			
		||||
            hasher.update(param.compute_digest());
 | 
			
		||||
        }
 | 
			
		||||
        hasher.update(slf.body.compute_digest());
 | 
			
		||||
        match &mut slf.return_type {
 | 
			
		||||
            Some(rt) => {
 | 
			
		||||
                hasher.update(b"FunctionExpression::return_type::Some");
 | 
			
		||||
                hasher.update(rt.compute_digest());
 | 
			
		||||
            }
 | 
			
		||||
            None => {
 | 
			
		||||
                hasher.update(b"FunctionExpression::return_type::None");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    pub fn into_parts(self) -> Result<FunctionExpressionParts, RequiredParamAfterOptionalParam> {
 | 
			
		||||
        let Self {
 | 
			
		||||
            start,
 | 
			
		||||
            end,
 | 
			
		||||
            params,
 | 
			
		||||
            body,
 | 
			
		||||
            digest: _,
 | 
			
		||||
            return_type: _,
 | 
			
		||||
        } = self;
 | 
			
		||||
        let mut params_required = Vec::with_capacity(params.len());
 | 
			
		||||
@ -3200,10 +3587,18 @@ pub struct ReturnStatement {
 | 
			
		||||
    pub start: usize,
 | 
			
		||||
    pub end: usize,
 | 
			
		||||
    pub argument: Value,
 | 
			
		||||
 | 
			
		||||
    pub digest: Option<Digest>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl_value_meta!(ReturnStatement);
 | 
			
		||||
 | 
			
		||||
impl ReturnStatement {
 | 
			
		||||
    compute_digest!(|slf, hasher| {
 | 
			
		||||
        hasher.update(slf.argument.compute_digest());
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Describes information about a hover.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
 | 
			
		||||
#[serde(rename_all = "camelCase")]
 | 
			
		||||
@ -4933,28 +5328,34 @@ const firstExtrude = startSketchOn('XY')
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 35,
 | 
			
		||||
                            end: 40,
 | 
			
		||||
                            name: "thing".to_owned()
 | 
			
		||||
                            name: "thing".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Primitive(FnArgPrimitive::Number)),
 | 
			
		||||
                        optional: false
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 50,
 | 
			
		||||
                            end: 56,
 | 
			
		||||
                            name: "things".to_owned()
 | 
			
		||||
                            name: "things".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Array(FnArgPrimitive::String)),
 | 
			
		||||
                        optional: false
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 68,
 | 
			
		||||
                            end: 72,
 | 
			
		||||
                            name: "more".to_owned()
 | 
			
		||||
                            name: "more".to_owned(),
 | 
			
		||||
                            digest: None
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Primitive(FnArgPrimitive::String)),
 | 
			
		||||
                        optional: true
 | 
			
		||||
                        optional: true,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    }
 | 
			
		||||
                ]
 | 
			
		||||
            })
 | 
			
		||||
@ -4989,28 +5390,34 @@ const firstExtrude = startSketchOn('XY')
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 18,
 | 
			
		||||
                            end: 23,
 | 
			
		||||
                            name: "thing".to_owned()
 | 
			
		||||
                            name: "thing".to_owned(),
 | 
			
		||||
                            digest: None
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Primitive(FnArgPrimitive::Number)),
 | 
			
		||||
                        optional: false
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 33,
 | 
			
		||||
                            end: 39,
 | 
			
		||||
                            name: "things".to_owned()
 | 
			
		||||
                            name: "things".to_owned(),
 | 
			
		||||
                            digest: None
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Array(FnArgPrimitive::String)),
 | 
			
		||||
                        optional: false
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 51,
 | 
			
		||||
                            end: 55,
 | 
			
		||||
                            name: "more".to_owned()
 | 
			
		||||
                            name: "more".to_owned(),
 | 
			
		||||
                            digest: None
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: Some(FnArgType::Primitive(FnArgPrimitive::String)),
 | 
			
		||||
                        optional: true
 | 
			
		||||
                        optional: true,
 | 
			
		||||
                        digest: None
 | 
			
		||||
                    }
 | 
			
		||||
                ]
 | 
			
		||||
            })
 | 
			
		||||
@ -5103,8 +5510,10 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        body: Vec::new(),
 | 
			
		||||
                        non_code_meta: Default::default(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    return_type: None,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -5118,17 +5527,21 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "foo".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    }],
 | 
			
		||||
                    body: Program {
 | 
			
		||||
                        start: 0,
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        body: Vec::new(),
 | 
			
		||||
                        non_code_meta: Default::default(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    return_type: None,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -5142,17 +5555,21 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "foo".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: true,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    }],
 | 
			
		||||
                    body: Program {
 | 
			
		||||
                        start: 0,
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        body: Vec::new(),
 | 
			
		||||
                        non_code_meta: Default::default(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    return_type: None,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -5167,18 +5584,22 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
                                start: 0,
 | 
			
		||||
                                end: 0,
 | 
			
		||||
                                name: "foo".to_owned(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            },
 | 
			
		||||
                            type_: None,
 | 
			
		||||
                            optional: false,
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        Parameter {
 | 
			
		||||
                            identifier: Identifier {
 | 
			
		||||
                                start: 0,
 | 
			
		||||
                                end: 0,
 | 
			
		||||
                                name: "bar".to_owned(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            },
 | 
			
		||||
                            type_: None,
 | 
			
		||||
                            optional: true,
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                    ],
 | 
			
		||||
                    body: Program {
 | 
			
		||||
@ -5186,8 +5607,10 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        body: Vec::new(),
 | 
			
		||||
                        non_code_meta: Default::default(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    return_type: None,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
        ]
 | 
			
		||||
@ -5212,6 +5635,7 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
            expression,
 | 
			
		||||
            start: _,
 | 
			
		||||
            end: _,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }) = program.body.first().unwrap()
 | 
			
		||||
        else {
 | 
			
		||||
            panic!("expected a function!");
 | 
			
		||||
@ -5275,4 +5699,35 @@ const thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#;
 | 
			
		||||
            r#"syntax: KclErrorDetails { source_ranges: [SourceRange([57, 59])], message: "Unexpected token" }"#
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn test_parse_digest() {
 | 
			
		||||
        let prog1_string = r#"startSketchOn('XY')
 | 
			
		||||
    |> startProfileAt([0, 0], %)
 | 
			
		||||
    |> line([5, 5], %)
 | 
			
		||||
"#;
 | 
			
		||||
        let prog1_tokens = crate::token::lexer(prog1_string).unwrap();
 | 
			
		||||
        let prog1_parser = crate::parser::Parser::new(prog1_tokens);
 | 
			
		||||
        let prog1_digest = prog1_parser.ast().unwrap().compute_digest();
 | 
			
		||||
 | 
			
		||||
        let prog2_string = r#"startSketchOn('XY')
 | 
			
		||||
    |> startProfileAt([0, 2], %)
 | 
			
		||||
    |> line([5, 5], %)
 | 
			
		||||
"#;
 | 
			
		||||
        let prog2_tokens = crate::token::lexer(prog2_string).unwrap();
 | 
			
		||||
        let prog2_parser = crate::parser::Parser::new(prog2_tokens);
 | 
			
		||||
        let prog2_digest = prog2_parser.ast().unwrap().compute_digest();
 | 
			
		||||
 | 
			
		||||
        assert!(prog1_digest != prog2_digest);
 | 
			
		||||
 | 
			
		||||
        let prog3_string = r#"startSketchOn('XY')
 | 
			
		||||
    |> startProfileAt([0, 0], %)
 | 
			
		||||
    |> line([5, 5], %)
 | 
			
		||||
"#;
 | 
			
		||||
        let prog3_tokens = crate::token::lexer(prog3_string).unwrap();
 | 
			
		||||
        let prog3_parser = crate::parser::Parser::new(prog3_tokens);
 | 
			
		||||
        let prog3_digest = prog3_parser.ast().unwrap().compute_digest();
 | 
			
		||||
 | 
			
		||||
        assert_eq!(prog1_digest, prog3_digest);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,23 @@ pub enum LiteralValue {
 | 
			
		||||
    Bool(bool),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl LiteralValue {
 | 
			
		||||
    pub fn digestable_id(&self) -> Vec<u8> {
 | 
			
		||||
        match self {
 | 
			
		||||
            LiteralValue::IInteger(i) => i.to_ne_bytes().into(),
 | 
			
		||||
            LiteralValue::Fractional(frac) => frac.to_ne_bytes().into(),
 | 
			
		||||
            LiteralValue::String(st) => st.as_bytes().into(),
 | 
			
		||||
            LiteralValue::Bool(b) => {
 | 
			
		||||
                if *b {
 | 
			
		||||
                    vec![1]
 | 
			
		||||
                } else {
 | 
			
		||||
                    vec![0]
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl From<Literal> for Value {
 | 
			
		||||
    fn from(literal: Literal) -> Self {
 | 
			
		||||
        Value::Literal(Box::new(literal))
 | 
			
		||||
 | 
			
		||||
@ -344,6 +344,7 @@ pub fn get_type_string_from_schema(schema: &schemars::schema::Schema) -> Result<
 | 
			
		||||
                } else if format == "double"
 | 
			
		||||
                    || format == "uint"
 | 
			
		||||
                    || format == "int64"
 | 
			
		||||
                    || format == "uint8"
 | 
			
		||||
                    || format == "uint32"
 | 
			
		||||
                    || format == "uint64"
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
@ -710,6 +710,7 @@ impl MemoryItem {
 | 
			
		||||
                    name,
 | 
			
		||||
                    start: u.meta[0].source_range.start(),
 | 
			
		||||
                    end: u.meta[0].source_range.end(),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            _ => Err(KclError::Semantic(KclErrorDetails {
 | 
			
		||||
@ -729,6 +730,7 @@ impl MemoryItem {
 | 
			
		||||
                        name,
 | 
			
		||||
                        start: u.meta[0].source_range.start(),
 | 
			
		||||
                        end: u.meta[0].source_range.end(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    }))
 | 
			
		||||
                } else {
 | 
			
		||||
                    Ok(None)
 | 
			
		||||
@ -961,7 +963,7 @@ pub enum FilletOrChamfer {
 | 
			
		||||
        length: f64,
 | 
			
		||||
        /// The engine id of the edge to chamfer.
 | 
			
		||||
        edge_id: uuid::Uuid,
 | 
			
		||||
        tag: Option<TagDeclarator>,
 | 
			
		||||
        tag: Box<Option<TagDeclarator>>,
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -983,7 +985,7 @@ impl FilletOrChamfer {
 | 
			
		||||
    pub fn tag(&self) -> Option<TagDeclarator> {
 | 
			
		||||
        match self {
 | 
			
		||||
            FilletOrChamfer::Fillet { .. } => None,
 | 
			
		||||
            FilletOrChamfer::Chamfer { tag, .. } => tag.clone(),
 | 
			
		||||
            FilletOrChamfer::Chamfer { tag, .. } => *tag.clone(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -2379,6 +2381,7 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
                start: 0,
 | 
			
		||||
                end: 0,
 | 
			
		||||
                name: s.to_owned(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        fn opt_param(s: &'static str) -> Parameter {
 | 
			
		||||
@ -2386,6 +2389,7 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
                identifier: ident(s),
 | 
			
		||||
                type_: None,
 | 
			
		||||
                optional: true,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        fn req_param(s: &'static str) -> Parameter {
 | 
			
		||||
@ -2393,6 +2397,7 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
                identifier: ident(s),
 | 
			
		||||
                type_: None,
 | 
			
		||||
                optional: false,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        fn additional_program_memory(items: &[(String, MemoryItem)]) -> ProgramMemory {
 | 
			
		||||
@ -2476,8 +2481,10 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
                    end: 0,
 | 
			
		||||
                    body: Vec::new(),
 | 
			
		||||
                    non_code_meta: Default::default(),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
                return_type: None,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            };
 | 
			
		||||
            let actual = assign_args_to_params(func_expr, args, ProgramMemory::new());
 | 
			
		||||
            assert_eq!(
 | 
			
		||||
 | 
			
		||||
@ -34,6 +34,7 @@ fn evaluate(rpn: Vec<BinaryExpressionToken>) -> Result<BinaryExpression, KclErro
 | 
			
		||||
                    operator,
 | 
			
		||||
                    left,
 | 
			
		||||
                    right,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }))
 | 
			
		||||
            }
 | 
			
		||||
            BinaryExpressionToken::Operand(o) => o,
 | 
			
		||||
@ -129,6 +130,7 @@ mod tests {
 | 
			
		||||
                end: 0,
 | 
			
		||||
                value: n.into(),
 | 
			
		||||
                raw: n.to_string(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }))
 | 
			
		||||
        }
 | 
			
		||||
        let tests: Vec<Vec<BinaryExpressionToken>> = vec![
 | 
			
		||||
@ -146,6 +148,7 @@ mod tests {
 | 
			
		||||
                    operator: BinaryOperator::Sub,
 | 
			
		||||
                    left: lit(1),
 | 
			
		||||
                    right: lit(5),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }))
 | 
			
		||||
                .into(),
 | 
			
		||||
                BinaryOperator::Pow.into(),
 | 
			
		||||
 | 
			
		||||
@ -87,6 +87,7 @@ fn non_code_node(i: TokenSlice) -> PResult<NonCodeNode> {
 | 
			
		||||
                    } else {
 | 
			
		||||
                        NonCodeValue::BlockComment { value, style }
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }),
 | 
			
		||||
                _ => None,
 | 
			
		||||
            })
 | 
			
		||||
@ -124,6 +125,7 @@ fn non_code_node_no_leading_whitespace(i: TokenSlice) -> PResult<NonCodeNode> {
 | 
			
		||||
                start: token.start,
 | 
			
		||||
                end: token.end,
 | 
			
		||||
                value,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
@ -193,6 +195,7 @@ fn pipe_expression(i: TokenSlice) -> PResult<PipeExpression> {
 | 
			
		||||
        end: values.last().unwrap().end().max(max_noncode_end),
 | 
			
		||||
        body: values,
 | 
			
		||||
        non_code_meta,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -213,6 +216,7 @@ fn bool_value(i: TokenSlice) -> PResult<Literal> {
 | 
			
		||||
        end: token.end,
 | 
			
		||||
        value: LiteralValue::Bool(value),
 | 
			
		||||
        raw: value.to_string(),
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -242,6 +246,7 @@ pub fn string_literal(i: TokenSlice) -> PResult<Literal> {
 | 
			
		||||
        end: token.end,
 | 
			
		||||
        value,
 | 
			
		||||
        raw: token.value.clone(),
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -274,6 +279,7 @@ pub(crate) fn unsigned_number_literal(i: TokenSlice) -> PResult<Literal> {
 | 
			
		||||
        end: token.end,
 | 
			
		||||
        value,
 | 
			
		||||
        raw: token.value.clone(),
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -431,6 +437,7 @@ fn shebang(i: TokenSlice) -> PResult<NonCodeNode> {
 | 
			
		||||
        value: NonCodeValue::Shebang {
 | 
			
		||||
            value: format!("#!{}", value),
 | 
			
		||||
        },
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -452,7 +459,12 @@ fn array(i: TokenSlice) -> PResult<ArrayExpression> {
 | 
			
		||||
        .parse_next(i)?;
 | 
			
		||||
    ignore_whitespace(i);
 | 
			
		||||
    let end = close_bracket(i)?.end;
 | 
			
		||||
    Ok(ArrayExpression { start, end, elements })
 | 
			
		||||
    Ok(ArrayExpression {
 | 
			
		||||
        start,
 | 
			
		||||
        end,
 | 
			
		||||
        elements,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Parse n..m into a vec of numbers [n, n+1, ..., m]
 | 
			
		||||
@ -468,6 +480,7 @@ fn integer_range(i: TokenSlice) -> PResult<Vec<Value>> {
 | 
			
		||||
                end: token0.end,
 | 
			
		||||
                value: num.into(),
 | 
			
		||||
                raw: num.to_string(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }))
 | 
			
		||||
        })
 | 
			
		||||
        .collect())
 | 
			
		||||
@ -491,6 +504,7 @@ fn object_property(i: TokenSlice) -> PResult<ObjectProperty> {
 | 
			
		||||
        end: val.end(),
 | 
			
		||||
        key,
 | 
			
		||||
        value: val,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -506,7 +520,12 @@ fn object(i: TokenSlice) -> PResult<ObjectExpression> {
 | 
			
		||||
    ignore_trailing_comma(i);
 | 
			
		||||
    ignore_whitespace(i);
 | 
			
		||||
    let end = close_brace(i)?.end;
 | 
			
		||||
    Ok(ObjectExpression { start, end, properties })
 | 
			
		||||
    Ok(ObjectExpression {
 | 
			
		||||
        start,
 | 
			
		||||
        end,
 | 
			
		||||
        properties,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Parse the % symbol, used to substitute a curried argument from a |> (pipe).
 | 
			
		||||
@ -516,6 +535,7 @@ fn pipe_sub(i: TokenSlice) -> PResult<PipeSubstitution> {
 | 
			
		||||
            Ok(PipeSubstitution {
 | 
			
		||||
                start: token.start,
 | 
			
		||||
                end: token.end,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })
 | 
			
		||||
        } else {
 | 
			
		||||
            Err(KclError::Syntax(KclErrorDetails {
 | 
			
		||||
@ -555,6 +575,7 @@ fn function_expression(i: TokenSlice) -> PResult<FunctionExpression> {
 | 
			
		||||
        params,
 | 
			
		||||
        body,
 | 
			
		||||
        return_type,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -602,6 +623,7 @@ fn member_expression(i: TokenSlice) -> PResult<MemberExpression> {
 | 
			
		||||
        object: MemberObject::Identifier(Box::new(id)),
 | 
			
		||||
        computed,
 | 
			
		||||
        property,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    // Each remaining member wraps the current member expression inside another member expression.
 | 
			
		||||
@ -616,6 +638,7 @@ fn member_expression(i: TokenSlice) -> PResult<MemberExpression> {
 | 
			
		||||
                object: MemberObject::MemberExpression(Box::new(accumulated)),
 | 
			
		||||
                computed,
 | 
			
		||||
                property,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }
 | 
			
		||||
        }))
 | 
			
		||||
}
 | 
			
		||||
@ -681,7 +704,12 @@ fn noncode_just_after_code(i: TokenSlice) -> PResult<NonCodeNode> {
 | 
			
		||||
    Ok(nc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// the large_enum_variant lint below introduces a LOT of code complexity in a
 | 
			
		||||
// match!() that's super clean that isn't worth it for the marginal space
 | 
			
		||||
// savings. revisit if that's a lie.
 | 
			
		||||
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
#[allow(clippy::large_enum_variant)]
 | 
			
		||||
enum WithinFunction {
 | 
			
		||||
    BodyItem((BodyItem, Option<NonCodeNode>)),
 | 
			
		||||
    NonCode(NonCodeNode),
 | 
			
		||||
@ -762,6 +790,7 @@ pub fn function_body(i: TokenSlice) -> PResult<Program> {
 | 
			
		||||
                    start: ws_token.start,
 | 
			
		||||
                    end: ws_token.end,
 | 
			
		||||
                    value: NonCodeValue::NewLine,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@ -843,6 +872,7 @@ pub fn function_body(i: TokenSlice) -> PResult<Program> {
 | 
			
		||||
        end,
 | 
			
		||||
        body,
 | 
			
		||||
        non_code_meta,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -869,6 +899,7 @@ pub fn return_stmt(i: TokenSlice) -> PResult<ReturnStatement> {
 | 
			
		||||
        start,
 | 
			
		||||
        end: argument.end(),
 | 
			
		||||
        argument,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1006,8 +1037,10 @@ fn declaration(i: TokenSlice) -> PResult<VariableDeclaration> {
 | 
			
		||||
            end,
 | 
			
		||||
            id,
 | 
			
		||||
            init: val,
 | 
			
		||||
            digest: None,
 | 
			
		||||
        }],
 | 
			
		||||
        kind,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1020,6 +1053,7 @@ impl TryFrom<Token> for Identifier {
 | 
			
		||||
                start: token.start,
 | 
			
		||||
                end: token.end,
 | 
			
		||||
                name: token.value,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })
 | 
			
		||||
        } else {
 | 
			
		||||
            Err(KclError::Syntax(KclErrorDetails {
 | 
			
		||||
@ -1050,6 +1084,7 @@ impl TryFrom<Token> for TagDeclarator {
 | 
			
		||||
                start: token.start - 1,
 | 
			
		||||
                end: token.end,
 | 
			
		||||
                name: token.value,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })
 | 
			
		||||
        } else {
 | 
			
		||||
            Err(KclError::Syntax(KclErrorDetails {
 | 
			
		||||
@ -1116,6 +1151,7 @@ fn unary_expression(i: TokenSlice) -> PResult<UnaryExpression> {
 | 
			
		||||
        end: argument.end(),
 | 
			
		||||
        operator,
 | 
			
		||||
        argument,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1193,6 +1229,7 @@ fn expression(i: TokenSlice) -> PResult<ExpressionStatement> {
 | 
			
		||||
        start: val.start(),
 | 
			
		||||
        end: val.end(),
 | 
			
		||||
        expression: val,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1410,6 +1447,7 @@ fn parameters(i: TokenSlice) -> PResult<Vec<Parameter>> {
 | 
			
		||||
                identifier,
 | 
			
		||||
                type_,
 | 
			
		||||
                optional,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })
 | 
			
		||||
        })
 | 
			
		||||
        .collect::<Result<_, _>>()
 | 
			
		||||
@ -1499,6 +1537,7 @@ fn fn_call(i: TokenSlice) -> PResult<CallExpression> {
 | 
			
		||||
                                start: literal.start,
 | 
			
		||||
                                end: literal.end,
 | 
			
		||||
                                name: name.to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            };
 | 
			
		||||
                            let tag = tag
 | 
			
		||||
                                .into_valid_binding_name()
 | 
			
		||||
@ -1537,6 +1576,7 @@ fn fn_call(i: TokenSlice) -> PResult<CallExpression> {
 | 
			
		||||
                                start: literal.start,
 | 
			
		||||
                                end: literal.end,
 | 
			
		||||
                                name: name.to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            };
 | 
			
		||||
 | 
			
		||||
                            // Replace the literal with the tag.
 | 
			
		||||
@ -1565,6 +1605,7 @@ fn fn_call(i: TokenSlice) -> PResult<CallExpression> {
 | 
			
		||||
        callee: fn_name,
 | 
			
		||||
        arguments: args,
 | 
			
		||||
        optional: false,
 | 
			
		||||
        digest: None,
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1740,19 +1781,25 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                            start: 32,
 | 
			
		||||
                            end: 33,
 | 
			
		||||
                            value: 2u32.into(),
 | 
			
		||||
                            raw: "2".to_owned()
 | 
			
		||||
                        }))
 | 
			
		||||
                            raw: "2".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        })),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    })],
 | 
			
		||||
                    non_code_meta: NonCodeMeta {
 | 
			
		||||
                        non_code_nodes: Default::default(),
 | 
			
		||||
                        start: vec![NonCodeNode {
 | 
			
		||||
                            start: 7,
 | 
			
		||||
                            end: 25,
 | 
			
		||||
                            value: NonCodeValue::NewLine
 | 
			
		||||
                        }]
 | 
			
		||||
                            value: NonCodeValue::NewLine,
 | 
			
		||||
                            digest: None
 | 
			
		||||
                        }],
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
                return_type: None,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
@ -1800,7 +1847,8 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                value: NonCodeValue::BlockComment {
 | 
			
		||||
                    value: "this is a comment".to_owned(),
 | 
			
		||||
                    style: CommentStyle::Line
 | 
			
		||||
                }
 | 
			
		||||
                },
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }],
 | 
			
		||||
            non_code_meta.start,
 | 
			
		||||
        );
 | 
			
		||||
@ -1812,12 +1860,14 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                    value: NonCodeValue::InlineComment {
 | 
			
		||||
                        value: "block\n  comment".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block
 | 
			
		||||
                    }
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
                NonCodeNode {
 | 
			
		||||
                    start: 82,
 | 
			
		||||
                    end: 86,
 | 
			
		||||
                    value: NonCodeValue::NewLine
 | 
			
		||||
                    value: NonCodeValue::NewLine,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ]),
 | 
			
		||||
            non_code_meta.non_code_nodes.get(&0),
 | 
			
		||||
@ -1829,7 +1879,8 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                value: NonCodeValue::BlockComment {
 | 
			
		||||
                    value: "this is also a comment".to_owned(),
 | 
			
		||||
                    style: CommentStyle::Line
 | 
			
		||||
                }
 | 
			
		||||
                },
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }]),
 | 
			
		||||
            non_code_meta.non_code_nodes.get(&1),
 | 
			
		||||
        );
 | 
			
		||||
@ -1896,7 +1947,8 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                start: 9,
 | 
			
		||||
                end: 10,
 | 
			
		||||
                value: 3u32.into(),
 | 
			
		||||
                raw: "3".to_owned()
 | 
			
		||||
                raw: "3".to_owned(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            }))
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
@ -2030,6 +2082,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hi".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Line,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2041,6 +2094,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2052,6 +2106,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2063,6 +2118,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2075,6 +2131,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2089,6 +2146,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2103,6 +2161,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "hello".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
@ -2115,6 +2174,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        value: "block\n                    comment".to_owned(),
 | 
			
		||||
                        style: CommentStyle::Block,
 | 
			
		||||
                    },
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
        ]
 | 
			
		||||
@ -2258,18 +2318,22 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                end: 1,
 | 
			
		||||
                value: 5u32.into(),
 | 
			
		||||
                raw: "5".to_owned(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })),
 | 
			
		||||
            right: BinaryPart::Literal(Box::new(Literal {
 | 
			
		||||
                start: 4,
 | 
			
		||||
                end: 7,
 | 
			
		||||
                value: "a".into(),
 | 
			
		||||
                raw: r#""a""#.to_owned(),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        };
 | 
			
		||||
        let expected = vec![BodyItem::ExpressionStatement(ExpressionStatement {
 | 
			
		||||
            start: 0,
 | 
			
		||||
            end: 7,
 | 
			
		||||
            expression: Value::BinaryExpression(Box::new(expr)),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        })];
 | 
			
		||||
        assert_eq!(expected, actual);
 | 
			
		||||
    }
 | 
			
		||||
@ -2371,6 +2435,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        end: 1,
 | 
			
		||||
                        value: 5u32.into(),
 | 
			
		||||
                        raw: "5".to_string(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    })),
 | 
			
		||||
                    operator: BinaryOperator::Add,
 | 
			
		||||
                    right: BinaryPart::Literal(Box::new(Literal {
 | 
			
		||||
@ -2378,10 +2443,14 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
                        end: 4,
 | 
			
		||||
                        value: 6u32.into(),
 | 
			
		||||
                        raw: "6".to_string(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    })),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                })),
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })],
 | 
			
		||||
            non_code_meta: NonCodeMeta::default(),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        assert_eq!(result, expected_result);
 | 
			
		||||
@ -2650,9 +2719,11 @@ e
 | 
			
		||||
                        start: 0,
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        name: "a".to_owned(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    type_: None,
 | 
			
		||||
                    optional: true,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }],
 | 
			
		||||
                true,
 | 
			
		||||
            ),
 | 
			
		||||
@ -2662,9 +2733,11 @@ e
 | 
			
		||||
                        start: 0,
 | 
			
		||||
                        end: 0,
 | 
			
		||||
                        name: "a".to_owned(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    type_: None,
 | 
			
		||||
                    optional: false,
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }],
 | 
			
		||||
                true,
 | 
			
		||||
            ),
 | 
			
		||||
@ -2675,18 +2748,22 @@ e
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "a".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "b".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: true,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                ],
 | 
			
		||||
                true,
 | 
			
		||||
@ -2698,18 +2775,22 @@ e
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "a".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: true,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    Parameter {
 | 
			
		||||
                        identifier: Identifier {
 | 
			
		||||
                            start: 0,
 | 
			
		||||
                            end: 0,
 | 
			
		||||
                            name: "b".to_owned(),
 | 
			
		||||
                            digest: None,
 | 
			
		||||
                        },
 | 
			
		||||
                        type_: None,
 | 
			
		||||
                        optional: false,
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                ],
 | 
			
		||||
                false,
 | 
			
		||||
@ -2741,6 +2822,7 @@ e
 | 
			
		||||
                        start: 6,
 | 
			
		||||
                        end: 13,
 | 
			
		||||
                        name: "myArray".to_string(),
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    },
 | 
			
		||||
                    init: Value::ArrayExpression(Box::new(ArrayExpression {
 | 
			
		||||
                        start: 16,
 | 
			
		||||
@ -2751,73 +2833,88 @@ e
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 0u32.into(),
 | 
			
		||||
                                raw: "0".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 1u32.into(),
 | 
			
		||||
                                raw: "1".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 2u32.into(),
 | 
			
		||||
                                raw: "2".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 3u32.into(),
 | 
			
		||||
                                raw: "3".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 4u32.into(),
 | 
			
		||||
                                raw: "4".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 5u32.into(),
 | 
			
		||||
                                raw: "5".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 6u32.into(),
 | 
			
		||||
                                raw: "6".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 7u32.into(),
 | 
			
		||||
                                raw: "7".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 8u32.into(),
 | 
			
		||||
                                raw: "8".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 9u32.into(),
 | 
			
		||||
                                raw: "9".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                            Value::Literal(Box::new(Literal {
 | 
			
		||||
                                start: 17,
 | 
			
		||||
                                end: 18,
 | 
			
		||||
                                value: 10u32.into(),
 | 
			
		||||
                                raw: "10".to_string(),
 | 
			
		||||
                                digest: None,
 | 
			
		||||
                            })),
 | 
			
		||||
                        ],
 | 
			
		||||
                        digest: None,
 | 
			
		||||
                    })),
 | 
			
		||||
                    digest: None,
 | 
			
		||||
                }],
 | 
			
		||||
                kind: VariableKind::Const,
 | 
			
		||||
                digest: None,
 | 
			
		||||
            })],
 | 
			
		||||
            non_code_meta: NonCodeMeta::default(),
 | 
			
		||||
            digest: None,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        assert_eq!(result, expected_result);
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
@ -21,6 +22,8 @@ expression: actual
 | 
			
		||||
    "start": 4,
 | 
			
		||||
    "end": 5,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
    "raw": "2",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
@ -21,6 +22,8 @@ expression: actual
 | 
			
		||||
    "start": 2,
 | 
			
		||||
    "end": 3,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
    "raw": "2",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
@ -21,6 +22,8 @@ expression: actual
 | 
			
		||||
    "start": 3,
 | 
			
		||||
    "end": 4,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
    "raw": "2",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -27,7 +28,8 @@ expression: actual
 | 
			
		||||
      "start": 4,
 | 
			
		||||
      "end": 5,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
      "raw": "2",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -35,7 +37,10 @@ expression: actual
 | 
			
		||||
      "start": 8,
 | 
			
		||||
      "end": 9,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "raw": "3",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -27,7 +28,8 @@ expression: actual
 | 
			
		||||
      "start": 6,
 | 
			
		||||
      "end": 7,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
      "raw": "2",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -35,7 +37,10 @@ expression: actual
 | 
			
		||||
      "start": 10,
 | 
			
		||||
      "end": 11,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "raw": "3",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,8 @@ expression: actual
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 1,
 | 
			
		||||
      "value": 1,
 | 
			
		||||
      "raw": "1"
 | 
			
		||||
      "raw": "1",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
@ -33,7 +34,8 @@ expression: actual
 | 
			
		||||
        "start": 6,
 | 
			
		||||
        "end": 7,
 | 
			
		||||
        "value": 2,
 | 
			
		||||
        "raw": "2"
 | 
			
		||||
        "raw": "2",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
@ -41,9 +43,12 @@ expression: actual
 | 
			
		||||
        "start": 10,
 | 
			
		||||
        "end": 11,
 | 
			
		||||
        "value": 3,
 | 
			
		||||
        "raw": "3"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
        "raw": "3",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
@ -51,6 +56,8 @@ expression: actual
 | 
			
		||||
    "start": 16,
 | 
			
		||||
    "end": 17,
 | 
			
		||||
    "value": 4,
 | 
			
		||||
    "raw": "4"
 | 
			
		||||
  }
 | 
			
		||||
    "raw": "4",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -33,7 +34,8 @@ expression: actual
 | 
			
		||||
        "start": 6,
 | 
			
		||||
        "end": 7,
 | 
			
		||||
        "value": 2,
 | 
			
		||||
        "raw": "2"
 | 
			
		||||
        "raw": "2",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
@ -41,8 +43,10 @@ expression: actual
 | 
			
		||||
        "start": 10,
 | 
			
		||||
        "end": 11,
 | 
			
		||||
        "value": 3,
 | 
			
		||||
        "raw": "3"
 | 
			
		||||
      }
 | 
			
		||||
        "raw": "3",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -50,7 +54,10 @@ expression: actual
 | 
			
		||||
      "start": 16,
 | 
			
		||||
      "end": 17,
 | 
			
		||||
      "value": 4,
 | 
			
		||||
      "raw": "4"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "raw": "4",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -39,7 +40,8 @@ expression: actual
 | 
			
		||||
          "start": 7,
 | 
			
		||||
          "end": 8,
 | 
			
		||||
          "value": 2,
 | 
			
		||||
          "raw": "2"
 | 
			
		||||
          "raw": "2",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
@ -47,8 +49,10 @@ expression: actual
 | 
			
		||||
          "start": 11,
 | 
			
		||||
          "end": 12,
 | 
			
		||||
          "value": 3,
 | 
			
		||||
          "raw": "3"
 | 
			
		||||
        }
 | 
			
		||||
          "raw": "3",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
@ -56,8 +60,10 @@ expression: actual
 | 
			
		||||
        "start": 17,
 | 
			
		||||
        "end": 18,
 | 
			
		||||
        "value": 4,
 | 
			
		||||
        "raw": "4"
 | 
			
		||||
      }
 | 
			
		||||
        "raw": "4",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -65,7 +71,10 @@ expression: actual
 | 
			
		||||
      "start": 21,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "value": 5,
 | 
			
		||||
      "raw": "5"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "raw": "5",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
    "raw": "1",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -27,7 +28,8 @@ expression: actual
 | 
			
		||||
      "start": 8,
 | 
			
		||||
      "end": 9,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
      "raw": "2",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -35,7 +37,10 @@ expression: actual
 | 
			
		||||
      "start": 12,
 | 
			
		||||
      "end": 13,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "raw": "3",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,23 +30,28 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 8,
 | 
			
		||||
          "name": "distance"
 | 
			
		||||
          "name": "distance",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 11,
 | 
			
		||||
          "end": 12,
 | 
			
		||||
          "name": "p"
 | 
			
		||||
        }
 | 
			
		||||
          "name": "p",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Identifier",
 | 
			
		||||
        "type": "Identifier",
 | 
			
		||||
        "start": 15,
 | 
			
		||||
        "end": 18,
 | 
			
		||||
        "name": "FOS"
 | 
			
		||||
      }
 | 
			
		||||
        "name": "FOS",
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
@ -54,8 +59,10 @@ expression: actual
 | 
			
		||||
      "start": 21,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "value": 6,
 | 
			
		||||
      "raw": "6"
 | 
			
		||||
    }
 | 
			
		||||
      "raw": "6",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
@ -68,14 +75,18 @@ expression: actual
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "start": 26,
 | 
			
		||||
      "end": 36,
 | 
			
		||||
      "name": "sigmaAllow"
 | 
			
		||||
      "name": "sigmaAllow",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "start": 39,
 | 
			
		||||
      "end": 44,
 | 
			
		||||
      "name": "width"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      "name": "width",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,8 @@ expression: actual
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
    "raw": "2",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
@ -21,6 +22,8 @@ expression: actual
 | 
			
		||||
    "start": 7,
 | 
			
		||||
    "end": 8,
 | 
			
		||||
    "value": 3,
 | 
			
		||||
    "raw": "3"
 | 
			
		||||
  }
 | 
			
		||||
    "raw": "3",
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 15,
 | 
			
		||||
            "name": "boxSketch"
 | 
			
		||||
            "name": "boxSketch",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 18,
 | 
			
		||||
                  "end": 31,
 | 
			
		||||
                  "name": "startSketchAt"
 | 
			
		||||
                  "name": "startSketchAt",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -52,7 +54,8 @@ expression: actual
 | 
			
		||||
                        "start": 33,
 | 
			
		||||
                        "end": 34,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -60,12 +63,15 @@ expression: actual
 | 
			
		||||
                        "start": 36,
 | 
			
		||||
                        "end": 37,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -76,7 +82,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 47,
 | 
			
		||||
                  "end": 51,
 | 
			
		||||
                  "name": "line"
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -91,7 +98,8 @@ expression: actual
 | 
			
		||||
                        "start": 53,
 | 
			
		||||
                        "end": 54,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -99,18 +107,22 @@ expression: actual
 | 
			
		||||
                        "start": 56,
 | 
			
		||||
                        "end": 58,
 | 
			
		||||
                        "value": 10,
 | 
			
		||||
                        "raw": "10"
 | 
			
		||||
                        "raw": "10",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 61,
 | 
			
		||||
                    "end": 62
 | 
			
		||||
                    "end": 62,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -121,7 +133,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 71,
 | 
			
		||||
                  "end": 84,
 | 
			
		||||
                  "name": "tangentialArc"
 | 
			
		||||
                  "name": "tangentialArc",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -142,8 +155,10 @@ expression: actual
 | 
			
		||||
                          "start": 87,
 | 
			
		||||
                          "end": 88,
 | 
			
		||||
                          "value": 5,
 | 
			
		||||
                          "raw": "5"
 | 
			
		||||
                        }
 | 
			
		||||
                          "raw": "5",
 | 
			
		||||
                          "digest": null
 | 
			
		||||
                        },
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -151,18 +166,22 @@ expression: actual
 | 
			
		||||
                        "start": 90,
 | 
			
		||||
                        "end": 91,
 | 
			
		||||
                        "value": 5,
 | 
			
		||||
                        "raw": "5"
 | 
			
		||||
                        "raw": "5",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 94,
 | 
			
		||||
                    "end": 95
 | 
			
		||||
                    "end": 95,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -173,7 +192,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 104,
 | 
			
		||||
                  "end": 108,
 | 
			
		||||
                  "name": "line"
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -188,7 +208,8 @@ expression: actual
 | 
			
		||||
                        "start": 110,
 | 
			
		||||
                        "end": 111,
 | 
			
		||||
                        "value": 5,
 | 
			
		||||
                        "raw": "5"
 | 
			
		||||
                        "raw": "5",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "UnaryExpression",
 | 
			
		||||
@ -202,19 +223,24 @@ expression: actual
 | 
			
		||||
                          "start": 114,
 | 
			
		||||
                          "end": 116,
 | 
			
		||||
                          "value": 15,
 | 
			
		||||
                          "raw": "15"
 | 
			
		||||
                        }
 | 
			
		||||
                          "raw": "15",
 | 
			
		||||
                          "digest": null
 | 
			
		||||
                        },
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 119,
 | 
			
		||||
                    "end": 120
 | 
			
		||||
                    "end": 120,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -225,7 +251,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 129,
 | 
			
		||||
                  "end": 136,
 | 
			
		||||
                  "name": "extrude"
 | 
			
		||||
                  "name": "extrude",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -234,30 +261,39 @@ expression: actual
 | 
			
		||||
                    "start": 137,
 | 
			
		||||
                    "end": 139,
 | 
			
		||||
                    "value": 10,
 | 
			
		||||
                    "raw": "10"
 | 
			
		||||
                    "raw": "10",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 141,
 | 
			
		||||
                    "end": 142
 | 
			
		||||
                    "end": 142,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 8,
 | 
			
		||||
            "name": "sg"
 | 
			
		||||
            "name": "sg",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "UnaryExpression",
 | 
			
		||||
@ -33,16 +34,22 @@ expression: actual
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "scale"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "name": "scale",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 9,
 | 
			
		||||
                  "end": 11,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 14,
 | 
			
		||||
                      "end": 15,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "UnaryExpression",
 | 
			
		||||
@ -65,21 +68,30 @@ expression: actual
 | 
			
		||||
                        "start": 18,
 | 
			
		||||
                        "end": 19,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                      }
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 13,
 | 
			
		||||
            "name": "myArray"
 | 
			
		||||
            "name": "myArray",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
@ -34,7 +35,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
                "raw": "0",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -42,7 +44,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 1,
 | 
			
		||||
                "raw": "1"
 | 
			
		||||
                "raw": "1",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -50,7 +53,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 2,
 | 
			
		||||
                "raw": "2"
 | 
			
		||||
                "raw": "2",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -58,7 +62,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 3,
 | 
			
		||||
                "raw": "3"
 | 
			
		||||
                "raw": "3",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -66,7 +71,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 4,
 | 
			
		||||
                "raw": "4"
 | 
			
		||||
                "raw": "4",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -74,7 +80,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
                "raw": "5",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -82,7 +89,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 6,
 | 
			
		||||
                "raw": "6"
 | 
			
		||||
                "raw": "6",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -90,7 +98,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 7,
 | 
			
		||||
                "raw": "7"
 | 
			
		||||
                "raw": "7",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -98,7 +107,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 8,
 | 
			
		||||
                "raw": "8"
 | 
			
		||||
                "raw": "8",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -106,7 +116,8 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 9,
 | 
			
		||||
                "raw": "9"
 | 
			
		||||
                "raw": "9",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -114,17 +125,23 @@ expression: actual
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 10,
 | 
			
		||||
                "raw": "10"
 | 
			
		||||
                "raw": "10",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 8,
 | 
			
		||||
            "end": 24,
 | 
			
		||||
            "name": "firstPrimeNumber"
 | 
			
		||||
            "name": "firstPrimeNumber",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
@ -43,19 +44,26 @@ expression: actual
 | 
			
		||||
                    "start": 50,
 | 
			
		||||
                    "end": 51,
 | 
			
		||||
                    "value": 2,
 | 
			
		||||
                    "raw": "2"
 | 
			
		||||
                  }
 | 
			
		||||
                    "raw": "2",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
                "start": [],
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
      "kind": "fn",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
@ -71,15 +79,20 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 62,
 | 
			
		||||
          "end": 78,
 | 
			
		||||
          "name": "firstPrimeNumber"
 | 
			
		||||
          "name": "firstPrimeNumber",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 3,
 | 
			
		||||
            "end": 8,
 | 
			
		||||
            "name": "thing"
 | 
			
		||||
            "name": "thing",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
@ -34,9 +35,11 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 12,
 | 
			
		||||
                  "end": 17,
 | 
			
		||||
                  "name": "param"
 | 
			
		||||
                  "name": "param",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "body": {
 | 
			
		||||
@ -54,19 +57,26 @@ expression: actual
 | 
			
		||||
                    "start": 39,
 | 
			
		||||
                    "end": 43,
 | 
			
		||||
                    "value": true,
 | 
			
		||||
                    "raw": "true"
 | 
			
		||||
                  }
 | 
			
		||||
                    "raw": "true",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
                "start": [],
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
      "kind": "fn",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
@ -82,7 +92,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 54,
 | 
			
		||||
          "end": 59,
 | 
			
		||||
          "name": "thing"
 | 
			
		||||
          "name": "thing",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -91,15 +102,20 @@ expression: actual
 | 
			
		||||
            "start": 60,
 | 
			
		||||
            "end": 65,
 | 
			
		||||
            "value": false,
 | 
			
		||||
            "raw": "false"
 | 
			
		||||
            "raw": "false",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "name": "mySketch"
 | 
			
		||||
            "name": "mySketch",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 30,
 | 
			
		||||
                  "name": "startSketchAt"
 | 
			
		||||
                  "name": "startSketchAt",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -52,7 +54,8 @@ expression: actual
 | 
			
		||||
                        "start": 32,
 | 
			
		||||
                        "end": 33,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -60,12 +63,15 @@ expression: actual
 | 
			
		||||
                        "start": 34,
 | 
			
		||||
                        "end": 35,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -76,7 +82,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 49,
 | 
			
		||||
                  "end": 55,
 | 
			
		||||
                  "name": "lineTo"
 | 
			
		||||
                  "name": "lineTo",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -91,7 +98,8 @@ expression: actual
 | 
			
		||||
                        "start": 57,
 | 
			
		||||
                        "end": 58,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -99,25 +107,30 @@ expression: actual
 | 
			
		||||
                        "start": 60,
 | 
			
		||||
                        "end": 61,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 64,
 | 
			
		||||
                    "end": 65
 | 
			
		||||
                    "end": 65,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "start": 67,
 | 
			
		||||
                    "end": 75,
 | 
			
		||||
                    "value": "myPath"
 | 
			
		||||
                    "value": "myPath",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -128,7 +141,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 88,
 | 
			
		||||
                  "end": 94,
 | 
			
		||||
                  "name": "lineTo"
 | 
			
		||||
                  "name": "lineTo",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -143,7 +157,8 @@ expression: actual
 | 
			
		||||
                        "start": 96,
 | 
			
		||||
                        "end": 97,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -151,18 +166,22 @@ expression: actual
 | 
			
		||||
                        "start": 99,
 | 
			
		||||
                        "end": 100,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 103,
 | 
			
		||||
                    "end": 104
 | 
			
		||||
                    "end": 104,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -173,7 +192,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 117,
 | 
			
		||||
                  "end": 123,
 | 
			
		||||
                  "name": "lineTo"
 | 
			
		||||
                  "name": "lineTo",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -188,7 +208,8 @@ expression: actual
 | 
			
		||||
                        "start": 125,
 | 
			
		||||
                        "end": 126,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -196,25 +217,30 @@ expression: actual
 | 
			
		||||
                        "start": 128,
 | 
			
		||||
                        "end": 129,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 132,
 | 
			
		||||
                    "end": 133
 | 
			
		||||
                    "end": 133,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "start": 135,
 | 
			
		||||
                    "end": 146,
 | 
			
		||||
                    "value": "rightPath"
 | 
			
		||||
                    "value": "rightPath",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -225,31 +251,40 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 159,
 | 
			
		||||
                  "end": 164,
 | 
			
		||||
                  "name": "close"
 | 
			
		||||
                  "name": "close",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 165,
 | 
			
		||||
                    "end": 166
 | 
			
		||||
                    "end": 166,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "name": "mySketch"
 | 
			
		||||
            "name": "mySketch",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 30,
 | 
			
		||||
                  "name": "startSketchAt"
 | 
			
		||||
                  "name": "startSketchAt",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -52,7 +54,8 @@ expression: actual
 | 
			
		||||
                        "start": 32,
 | 
			
		||||
                        "end": 33,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -60,12 +63,15 @@ expression: actual
 | 
			
		||||
                        "start": 34,
 | 
			
		||||
                        "end": 35,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -76,7 +82,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 41,
 | 
			
		||||
                  "end": 47,
 | 
			
		||||
                  "name": "lineTo"
 | 
			
		||||
                  "name": "lineTo",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -91,7 +98,8 @@ expression: actual
 | 
			
		||||
                        "start": 49,
 | 
			
		||||
                        "end": 50,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -99,18 +107,22 @@ expression: actual
 | 
			
		||||
                        "start": 52,
 | 
			
		||||
                        "end": 53,
 | 
			
		||||
                        "value": 1,
 | 
			
		||||
                        "raw": "1"
 | 
			
		||||
                        "raw": "1",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 56,
 | 
			
		||||
                    "end": 57
 | 
			
		||||
                    "end": 57,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -121,31 +133,40 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 62,
 | 
			
		||||
                  "end": 67,
 | 
			
		||||
                  "name": "close"
 | 
			
		||||
                  "name": "close",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 68,
 | 
			
		||||
                    "end": 69
 | 
			
		||||
                    "end": 69,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myBox"
 | 
			
		||||
            "name": "myBox",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
@ -31,7 +32,8 @@ expression: actual
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 27,
 | 
			
		||||
              "name": "startSketchAt"
 | 
			
		||||
              "name": "startSketchAt",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
@ -39,18 +41,24 @@ expression: actual
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 28,
 | 
			
		||||
                "end": 29,
 | 
			
		||||
                "name": "p"
 | 
			
		||||
                "name": "p",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false
 | 
			
		||||
          }
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myBox"
 | 
			
		||||
            "name": "myBox",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "f"
 | 
			
		||||
                  "name": "f",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -46,10 +48,12 @@ expression: actual
 | 
			
		||||
                    "start": 16,
 | 
			
		||||
                    "end": 17,
 | 
			
		||||
                    "value": 1,
 | 
			
		||||
                    "raw": "1"
 | 
			
		||||
                    "raw": "1",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -60,7 +64,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 22,
 | 
			
		||||
                  "end": 23,
 | 
			
		||||
                  "name": "g"
 | 
			
		||||
                  "name": "g",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -69,30 +74,39 @@ expression: actual
 | 
			
		||||
                    "start": 24,
 | 
			
		||||
                    "end": 25,
 | 
			
		||||
                    "value": 2,
 | 
			
		||||
                    "raw": "2"
 | 
			
		||||
                    "raw": "2",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 27,
 | 
			
		||||
                    "end": 28
 | 
			
		||||
                    "end": 28,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myBox"
 | 
			
		||||
            "name": "myBox",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 27,
 | 
			
		||||
                  "name": "startSketchAt"
 | 
			
		||||
                  "name": "startSketchAt",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -45,10 +47,12 @@ expression: actual
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 28,
 | 
			
		||||
                    "end": 29,
 | 
			
		||||
                    "name": "p"
 | 
			
		||||
                    "name": "p",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -59,7 +63,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 34,
 | 
			
		||||
                  "end": 38,
 | 
			
		||||
                  "name": "line"
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -74,39 +79,50 @@ expression: actual
 | 
			
		||||
                        "start": 40,
 | 
			
		||||
                        "end": 41,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Identifier",
 | 
			
		||||
                        "type": "Identifier",
 | 
			
		||||
                        "start": 43,
 | 
			
		||||
                        "end": 44,
 | 
			
		||||
                        "name": "l"
 | 
			
		||||
                        "name": "l",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 47,
 | 
			
		||||
                    "end": 48
 | 
			
		||||
                    "end": 48,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 9,
 | 
			
		||||
                  "end": 11,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 14,
 | 
			
		||||
                      "end": 15,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -59,20 +62,28 @@ expression: actual
 | 
			
		||||
                      "start": 17,
 | 
			
		||||
                      "end": 18,
 | 
			
		||||
                      "value": 1,
 | 
			
		||||
                      "raw": "1"
 | 
			
		||||
                      "raw": "1",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 9,
 | 
			
		||||
                  "end": 11,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 14,
 | 
			
		||||
                      "end": 15,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -59,10 +62,13 @@ expression: actual
 | 
			
		||||
                      "start": 17,
 | 
			
		||||
                      "end": 18,
 | 
			
		||||
                      "value": 1,
 | 
			
		||||
                      "raw": "1"
 | 
			
		||||
                      "raw": "1",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
@ -72,7 +78,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 21,
 | 
			
		||||
                  "end": 25,
 | 
			
		||||
                  "name": "from"
 | 
			
		||||
                  "name": "from",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -86,7 +93,8 @@ expression: actual
 | 
			
		||||
                      "start": 28,
 | 
			
		||||
                      "end": 29,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -94,20 +102,28 @@ expression: actual
 | 
			
		||||
                      "start": 31,
 | 
			
		||||
                      "end": 32,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 8,
 | 
			
		||||
                  "end": 10,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 12,
 | 
			
		||||
                      "end": 13,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -59,20 +62,28 @@ expression: actual
 | 
			
		||||
                      "start": 15,
 | 
			
		||||
                      "end": 16,
 | 
			
		||||
                      "value": 1,
 | 
			
		||||
                      "raw": "1"
 | 
			
		||||
                      "raw": "1",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 9,
 | 
			
		||||
                  "end": 11,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 14,
 | 
			
		||||
                      "end": 15,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -59,10 +62,13 @@ expression: actual
 | 
			
		||||
                      "start": 17,
 | 
			
		||||
                      "end": 18,
 | 
			
		||||
                      "value": 1,
 | 
			
		||||
                      "raw": "1"
 | 
			
		||||
                      "raw": "1",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
@ -72,7 +78,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 21,
 | 
			
		||||
                  "end": 25,
 | 
			
		||||
                  "name": "from"
 | 
			
		||||
                  "name": "from",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -86,7 +93,8 @@ expression: actual
 | 
			
		||||
                      "start": 28,
 | 
			
		||||
                      "end": 29,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -94,20 +102,28 @@ expression: actual
 | 
			
		||||
                      "start": 31,
 | 
			
		||||
                      "end": 32,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 6,
 | 
			
		||||
          "name": "lineTo"
 | 
			
		||||
          "name": "lineTo",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 9,
 | 
			
		||||
                  "end": 11,
 | 
			
		||||
                  "name": "to"
 | 
			
		||||
                  "name": "to",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -51,7 +53,8 @@ expression: actual
 | 
			
		||||
                      "start": 14,
 | 
			
		||||
                      "end": 15,
 | 
			
		||||
                      "value": 0,
 | 
			
		||||
                      "raw": "0"
 | 
			
		||||
                      "raw": "0",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -59,10 +62,13 @@ expression: actual
 | 
			
		||||
                      "start": 17,
 | 
			
		||||
                      "end": 18,
 | 
			
		||||
                      "value": 1,
 | 
			
		||||
                      "raw": "1"
 | 
			
		||||
                      "raw": "1",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
@ -72,7 +78,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "name": "from"
 | 
			
		||||
                  "name": "from",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "ArrayExpression",
 | 
			
		||||
@ -86,7 +93,8 @@ expression: actual
 | 
			
		||||
                      "start": 27,
 | 
			
		||||
                      "end": 28,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -94,20 +102,28 @@ expression: actual
 | 
			
		||||
                      "start": 30,
 | 
			
		||||
                      "end": 31,
 | 
			
		||||
                      "value": 3,
 | 
			
		||||
                      "raw": "3"
 | 
			
		||||
                      "raw": "3",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "name": "mySketch"
 | 
			
		||||
            "name": "mySketch",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
@ -31,7 +32,8 @@ expression: actual
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 17,
 | 
			
		||||
              "end": 30,
 | 
			
		||||
              "name": "startSketchAt"
 | 
			
		||||
              "name": "startSketchAt",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
@ -46,7 +48,8 @@ expression: actual
 | 
			
		||||
                    "start": 32,
 | 
			
		||||
                    "end": 33,
 | 
			
		||||
                    "value": 0,
 | 
			
		||||
                    "raw": "0"
 | 
			
		||||
                    "raw": "0",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
@ -54,20 +57,27 @@ expression: actual
 | 
			
		||||
                    "start": 34,
 | 
			
		||||
                    "end": 35,
 | 
			
		||||
                    "value": 0,
 | 
			
		||||
                    "raw": "0"
 | 
			
		||||
                    "raw": "0",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ]
 | 
			
		||||
                ],
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false
 | 
			
		||||
          }
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 3,
 | 
			
		||||
          "name": "log"
 | 
			
		||||
          "name": "log",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -29,7 +30,8 @@ expression: actual
 | 
			
		||||
            "start": 4,
 | 
			
		||||
            "end": 5,
 | 
			
		||||
            "value": 5,
 | 
			
		||||
            "raw": "5"
 | 
			
		||||
            "raw": "5",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
@ -37,22 +39,28 @@ expression: actual
 | 
			
		||||
            "start": 7,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "value": "hello",
 | 
			
		||||
            "raw": "\"hello\""
 | 
			
		||||
            "raw": "\"hello\"",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 16,
 | 
			
		||||
            "end": 27,
 | 
			
		||||
            "name": "aIdentifier"
 | 
			
		||||
            "name": "aIdentifier",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,8 @@ expression: actual
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 1,
 | 
			
		||||
          "value": 5,
 | 
			
		||||
          "raw": "5"
 | 
			
		||||
          "raw": "5",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
@ -31,13 +32,18 @@ expression: actual
 | 
			
		||||
          "start": 4,
 | 
			
		||||
          "end": 7,
 | 
			
		||||
          "value": "a",
 | 
			
		||||
          "raw": "\"a\""
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
          "raw": "\"a\"",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 4,
 | 
			
		||||
          "name": "line"
 | 
			
		||||
          "name": "line",
 | 
			
		||||
          "digest": null
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
@ -35,30 +36,38 @@ expression: actual
 | 
			
		||||
                "start": 6,
 | 
			
		||||
                "end": 7,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
                "raw": "0",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 9,
 | 
			
		||||
                "end": 10,
 | 
			
		||||
                "name": "l"
 | 
			
		||||
                "name": "l",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            ],
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "PipeSubstitution",
 | 
			
		||||
            "type": "PipeSubstitution",
 | 
			
		||||
            "start": 13,
 | 
			
		||||
            "end": 14
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "digest": null
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false
 | 
			
		||||
      }
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "digest": null
 | 
			
		||||
      },
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "name": "cylinder"
 | 
			
		||||
            "name": "cylinder",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -37,7 +38,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 30,
 | 
			
		||||
                  "name": "startSketchOn"
 | 
			
		||||
                  "name": "startSketchOn",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -46,10 +48,12 @@ expression: actual
 | 
			
		||||
                    "start": 31,
 | 
			
		||||
                    "end": 35,
 | 
			
		||||
                    "value": "XY",
 | 
			
		||||
                    "raw": "'XY'"
 | 
			
		||||
                    "raw": "'XY'",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -60,7 +64,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 44,
 | 
			
		||||
                  "end": 50,
 | 
			
		||||
                  "name": "circle"
 | 
			
		||||
                  "name": "circle",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -75,7 +80,8 @@ expression: actual
 | 
			
		||||
                        "start": 52,
 | 
			
		||||
                        "end": 53,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -83,9 +89,11 @@ expression: actual
 | 
			
		||||
                        "start": 54,
 | 
			
		||||
                        "end": 55,
 | 
			
		||||
                        "value": 0,
 | 
			
		||||
                        "raw": "0"
 | 
			
		||||
                        "raw": "0",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ]
 | 
			
		||||
                    ],
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
@ -93,16 +101,19 @@ expression: actual
 | 
			
		||||
                    "start": 58,
 | 
			
		||||
                    "end": 60,
 | 
			
		||||
                    "value": 22,
 | 
			
		||||
                    "raw": "22"
 | 
			
		||||
                    "raw": "22",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 62,
 | 
			
		||||
                    "end": 63
 | 
			
		||||
                    "end": 63,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -113,7 +124,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 72,
 | 
			
		||||
                  "end": 79,
 | 
			
		||||
                  "name": "extrude"
 | 
			
		||||
                  "name": "extrude",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -122,30 +134,39 @@ expression: actual
 | 
			
		||||
                    "start": 80,
 | 
			
		||||
                    "end": 82,
 | 
			
		||||
                    "value": 14,
 | 
			
		||||
                    "raw": "14"
 | 
			
		||||
                    "raw": "14",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 84,
 | 
			
		||||
                    "end": 85
 | 
			
		||||
                    "end": 85,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 3,
 | 
			
		||||
            "end": 4,
 | 
			
		||||
            "name": "f"
 | 
			
		||||
            "name": "f",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
@ -34,9 +35,11 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 8,
 | 
			
		||||
                  "end": 13,
 | 
			
		||||
                  "name": "angle"
 | 
			
		||||
                  "name": "angle",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "optional": true
 | 
			
		||||
                "optional": true,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "body": {
 | 
			
		||||
@ -57,7 +60,8 @@ expression: actual
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "start": 28,
 | 
			
		||||
                      "end": 35,
 | 
			
		||||
                      "name": "default"
 | 
			
		||||
                      "name": "default",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    "arguments": [
 | 
			
		||||
                      {
 | 
			
		||||
@ -65,7 +69,8 @@ expression: actual
 | 
			
		||||
                        "type": "Identifier",
 | 
			
		||||
                        "start": 36,
 | 
			
		||||
                        "end": 41,
 | 
			
		||||
                        "name": "angle"
 | 
			
		||||
                        "name": "angle",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
@ -73,26 +78,36 @@ expression: actual
 | 
			
		||||
                        "start": 43,
 | 
			
		||||
                        "end": 46,
 | 
			
		||||
                        "value": 360,
 | 
			
		||||
                        "raw": "360"
 | 
			
		||||
                        "raw": "360",
 | 
			
		||||
                        "digest": null
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "optional": false
 | 
			
		||||
                  }
 | 
			
		||||
                    "optional": false,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
                "start": [],
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
      "kind": "fn",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
            "name": "myVar",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
@ -31,7 +32,8 @@ expression: actual
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "min"
 | 
			
		||||
              "name": "min",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
@ -40,7 +42,8 @@ expression: actual
 | 
			
		||||
                "start": 18,
 | 
			
		||||
                "end": 19,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
                "raw": "5",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "UnaryExpression",
 | 
			
		||||
@ -57,7 +60,8 @@ expression: actual
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 23,
 | 
			
		||||
                    "end": 29,
 | 
			
		||||
                    "name": "legLen"
 | 
			
		||||
                    "name": "legLen",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
@ -66,7 +70,8 @@ expression: actual
 | 
			
		||||
                      "start": 30,
 | 
			
		||||
                      "end": 31,
 | 
			
		||||
                      "value": 5,
 | 
			
		||||
                      "raw": "5"
 | 
			
		||||
                      "raw": "5",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -74,22 +79,30 @@ expression: actual
 | 
			
		||||
                      "start": 33,
 | 
			
		||||
                      "end": 34,
 | 
			
		||||
                      "value": 4,
 | 
			
		||||
                      "raw": "4"
 | 
			
		||||
                      "raw": "4",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "optional": false
 | 
			
		||||
                }
 | 
			
		||||
                  "optional": false,
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false
 | 
			
		||||
          }
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
            "name": "myVar",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
@ -31,7 +32,8 @@ expression: actual
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "min"
 | 
			
		||||
              "name": "min",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
@ -49,7 +51,8 @@ expression: actual
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 19,
 | 
			
		||||
                    "end": 25,
 | 
			
		||||
                    "name": "legLen"
 | 
			
		||||
                    "name": "legLen",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
@ -58,7 +61,8 @@ expression: actual
 | 
			
		||||
                      "start": 26,
 | 
			
		||||
                      "end": 27,
 | 
			
		||||
                      "value": 5,
 | 
			
		||||
                      "raw": "5"
 | 
			
		||||
                      "raw": "5",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
@ -66,11 +70,14 @@ expression: actual
 | 
			
		||||
                      "start": 29,
 | 
			
		||||
                      "end": 30,
 | 
			
		||||
                      "value": 4,
 | 
			
		||||
                      "raw": "4"
 | 
			
		||||
                      "raw": "4",
 | 
			
		||||
                      "digest": null
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "optional": false
 | 
			
		||||
                }
 | 
			
		||||
                  "optional": false,
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
@ -78,18 +85,24 @@ expression: actual
 | 
			
		||||
                "start": 33,
 | 
			
		||||
                "end": 34,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
                "raw": "5",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false
 | 
			
		||||
          }
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
            "name": "myVar",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
@ -40,7 +41,8 @@ expression: actual
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "value": 5,
 | 
			
		||||
                  "raw": "5"
 | 
			
		||||
                  "raw": "5",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "right": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
@ -48,8 +50,10 @@ expression: actual
 | 
			
		||||
                  "start": 18,
 | 
			
		||||
                  "end": 19,
 | 
			
		||||
                  "value": 6,
 | 
			
		||||
                  "raw": "6"
 | 
			
		||||
                }
 | 
			
		||||
                  "raw": "6",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
@ -60,7 +64,8 @@ expression: actual
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 29,
 | 
			
		||||
                  "name": "myFunc"
 | 
			
		||||
                  "name": "myFunc",
 | 
			
		||||
                  "digest": null
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
@ -69,30 +74,39 @@ expression: actual
 | 
			
		||||
                    "start": 30,
 | 
			
		||||
                    "end": 32,
 | 
			
		||||
                    "value": 45,
 | 
			
		||||
                    "raw": "45"
 | 
			
		||||
                    "raw": "45",
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 34,
 | 
			
		||||
                    "end": 35
 | 
			
		||||
                    "end": 35,
 | 
			
		||||
                    "digest": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "digest": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "start": [],
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ expression: actual
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "x"
 | 
			
		||||
            "name": "x",
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
@ -39,24 +40,32 @@ expression: actual
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 11,
 | 
			
		||||
                "end": 15,
 | 
			
		||||
                "name": "leg2"
 | 
			
		||||
              }
 | 
			
		||||
                "name": "leg2",
 | 
			
		||||
                "digest": null
 | 
			
		||||
              },
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 18,
 | 
			
		||||
              "end": 27,
 | 
			
		||||
              "name": "thickness"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
              "name": "thickness",
 | 
			
		||||
              "digest": null
 | 
			
		||||
            },
 | 
			
		||||
            "digest": null
 | 
			
		||||
          },
 | 
			
		||||
          "digest": null
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
      "kind": "const",
 | 
			
		||||
      "digest": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
    "start": [],
 | 
			
		||||
    "digest": null
 | 
			
		||||
  },
 | 
			
		||||
  "digest": null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user