aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/Intersection/op.htm
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/Intersection/op.htm')
-rw-r--r--experimental/Intersection/op.htm4806
1 files changed, 0 insertions, 4806 deletions
diff --git a/experimental/Intersection/op.htm b/experimental/Intersection/op.htm
deleted file mode 100644
index 2fc5577f83..0000000000
--- a/experimental/Intersection/op.htm
+++ /dev/null
@@ -1,4806 +0,0 @@
-<!-- path visualizer -->
-<html>
-<head>
-<div style="height:0">
-
-<div id="testSimplifyQuadratic1">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.close();
- path.moveTo(1, 0);
- path.quadTo(0, 0, 0, 1);
- path.close();
- testSimplify(path, true, out, bitmap);
-}
-</div>
-
-<div id="testSimplifyQuadratic2">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(20, 0, 20, 20);
- path.close();
- path.moveTo(20, 0);
- path.quadTo(0, 0, 0, 20);
- path.close();
- testSimplify(path, true, out, bitmap);
-}
-</div>
-
-<div id="testSimplifyQuadratic3">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(20, 0, 20, 20);
- path.close();
- path.moveTo(0, 20);
- path.quadTo(0, 0, 20, 0);
- path.close();
- testSimplify(path, true, out, bitmap);
-}
-</div>
-
-<div id="testSimplifyQuadratic4">
- SkPath path, out;
- path.moveTo(0, 20);
- path.quadTo(20, 0, 40, 20);
- path.close();
- path.moveTo(40, 10);
- path.quadTo(20, 30, 0, 10);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic5">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 0, 0, 1);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic6">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(1, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic7">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 2);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic8">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 2);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic9">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 2, 2);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic10">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 1);
- path.quadTo(1, 1, 1, 2);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic11">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 1);
- path.quadTo(2, 2, 3, 3);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic12">
- SkPath path, out;
- path.moveTo(0, 0);
- path.lineTo(0, 2);
- path.lineTo(0, 0);
- path.close();
- path.moveTo(3, 0);
- path.quadTo(1, 1, 0, 2);
- path.lineTo(3, 0);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic13">
- SkPath path, out;
-path.moveTo(0, 0);
-path.quadTo(0, 0, 1, 0);
-path.lineTo(1, 1);
-path.lineTo(0, 0);
-path.close();
-path.moveTo(0, 0);
-path.quadTo(3, 0, 1, 1);
-path.lineTo(0, 0);
-path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic14">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 1, 2, 1);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic15">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 3);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(0, 1);
- path.lineTo(1, 1);
- path.quadTo(0, 3, 3, 3);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic16">
- SkPath path, out;
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic17">
- SkPath path, out;
- path.moveTo(8, 8);
- path.quadTo(10, 10, 8, -10);
- path.close();
- path.moveTo(8, 8);
- path.quadTo(12, 12, 14, 4);
- path.close();
- path.moveTo(8, 8);
- path.quadTo(9, 9, 10, 8);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-}
-</div>
-
-<div id="testSimplifyQuadratic18">
- SkPath path, out;
- path.moveTo(8.0000000000000071, 8.0000000000000071);
- path.quadTo(8.7289570079366854, 8.7289570079366889, 9.3914917259458743, 9.0593802763083691);
- path.close();
- path.moveTo(8.0000000000000142, 8.0000000000000142);
- path.quadTo(8.1250000000000107, 8.1250000000000071, 8.2500000000000071, 8.2187500000000053);
- path.close();
- testSimplify(path, true, out, bitmap);
- drawAsciiPaths(path, out, true);
-</div>
-
-<div id="testSimplifyQuadratic19">
- SkPath path, simple;
- path.moveTo(0,4);
- path.lineTo(6,4);
- path.lineTo(3,1);
- path.close();
- path.moveTo(2,3);
- path.lineTo(3,2);
- path.lineTo(4,3);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testSimplifyQuadratic20">
- SkPath path, simple;
- path.moveTo(0,4);
- path.lineTo(6,4);
- path.lineTo(3,1);
- path.close();
- path.moveTo(2,3);
- path.lineTo(4,3);
- path.lineTo(3,2);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testSimplifyQuadratic21">
- SkPath path, simple;
- path.moveTo(0,4);
- path.lineTo(8,4);
- path.lineTo(4,0);
- path.close();
- path.moveTo(2,2);
- path.lineTo(3,3);
- path.lineTo(4,2);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testLine5">
- path.moveTo(3,0);
- path.lineTo(6,2);
- path.lineTo(0,2);
- path.close();
- path.moveTo(3,0);
- path.lineTo(6,2);
- path.lineTo(0,2);
- path.close();
-</div>
-
-<div id="testLine6">
- SkPath path, simple;
- path.moveTo(0,0);
- path.lineTo(4,0);
- path.lineTo(2,2);
- path.close();
- path.moveTo(2,0);
- path.lineTo(6,0);
- path.lineTo(4,2);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testLine7">
- SkPath path, simple;
- path.moveTo(0,0);
- path.lineTo(4,0);
- path.lineTo(2,2);
- path.close();
- path.moveTo(6,0);
- path.lineTo(2,0);
- path.lineTo(4,2);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testLine7b">
- path.moveTo(0,0);
- path.lineTo(4,0);
- path.close();
- path.moveTo(6,0);
- path.lineTo(2,0);
- path.lineTo(4,2);
- path.close();
-</div>
-
-<div id="testLine9">
- SkPath path, simple;
- path.moveTo(0,4);
- path.lineTo(4,4);
- path.lineTo(2,2);
- path.close();
- path.moveTo(6,4);
- path.lineTo(2,4);
- path.lineTo(4,2);
- path.close();
- testSimplifyx(path);
-</div>
-
-<div id="testLine12">
- path.moveTo(0,4);
- path.lineTo(6,4);
- path.lineTo(3,1);
- path.close();
- path.moveTo(2,3);
- path.lineTo(3,2);
- path.lineTo(4,3);
- path.close();
-</div>
-
-<div id="testLine13">
- path.moveTo(6,4);
- path.lineTo(0,4);
- path.lineTo(3,1);
- path.close();
- path.moveTo(3,2);
- path.lineTo(2,3);
- path.lineTo(4,3);
- path.close();
-</div>
-
-<div id="testLine16">
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine17">
- SkPath path, simple;
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine19">
- SkPath path, simple;
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(12, 16, 21, 21, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine22">
- path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine24">
- path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine28">
- SkPath path, simple;
- path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine29">
- SkPath path, simple;
- path.addRect(0, 18, 12, 12, SkPath::kCW_Direction);
- path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine30">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 4, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine31">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 4, 9, 9, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine32">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine33">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine34">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine35">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
- path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine36">
- path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
- path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine37">
- path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
- path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine38">
- path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(6, 12, 18, 18, SkPath::kCW_Direction);
- path.addRect(12, 12, 21, 21, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine39">
- path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(12, 6, 24, 24, SkPath::kCW_Direction);
- path.addRect(12, 4, 21, 21, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine40">
- path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(12, 18, 24, 24, SkPath::kCW_Direction);
- path.addRect(4, 16, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine41">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(18, 24, 30, 30, SkPath::kCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine42">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(8, 16, 17, 17, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine43">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 24, 18, 18, SkPath::kCW_Direction);
- path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine44">
- path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
- path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(18, 32, 27, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine45">
- path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(18, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine46">
- path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
- path.addRect(24, 32, 33, 36, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine47">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine48">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 6, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine49">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine50">
- path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine51">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine52">
- path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
- path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine53">
- path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
- path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
- path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine54">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 0, 18, 18, SkPath::kCW_Direction);
- path.addRect(8, 4, 17, 17, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine55">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 6, 18, 18, SkPath::kCW_Direction);
- path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine56">
- path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
- path.addRect(18, 20, 30, 30, SkPath::kCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine57">
- path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
- path.addRect(20, 0, 30, 40, SkPath::kCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine58">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 0, 12, 12, SkPath::kCCW_Direction);
- path.addRect(0, 12, 9, 9, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine59">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 6, 18, 18, SkPath::kCCW_Direction);
- path.addRect(4, 4, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine60">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(6, 12, 18, 18, SkPath::kCCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine61">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine62">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 12, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine63">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(0, 10, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 6, 12, 12, SkPath::kCCW_Direction);
- path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine64">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
- path.addRect(18, 6, 30, 30, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine65">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(10, 0, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 0, 36, 36, SkPath::kCW_Direction);
- path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine66">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(0, 30, 20, 20, SkPath::kCW_Direction);
- path.addRect(12, 20, 24, 30, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine67">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 20, 36, 30, SkPath::kCW_Direction);
- path.addRect(32, 0, 36, 41, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68a">
- path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
- path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68b">
- path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
- path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68c">
- path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCW_Direction);
- path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68d">
- path.addRect(0, 0, 8, 8, SkPath::kCCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
- path.addRect(1, 2, 4, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68e">
- path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
- path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
- path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine68f">
- path.addRect(0, 0, 8, 8, SkPath::kCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
- path.addRect(2, 2, 6, 6, SkPath::kCCW_Direction);
- path.addRect(1, 2, 2, 2, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine69">
- path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
- path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine70">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 24, 12, 12, SkPath::kCW_Direction);
- path.addRect(12, 32, 21, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine71">
- path.addRect(0, 0, 20, 20, SkPath::kCW_Direction);
- path.addRect(12, 0, 24, 24, SkPath::kCW_Direction);
- path.addRect(12, 32, 21, 36, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine72">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(10, 40, 30, 30, SkPath::kCW_Direction);
- path.addRect(6, 20, 18, 30, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine73">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(0, 40, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
- path.addRect(0, 0, 9, 9, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine74">
- path.addRect(20, 30, 40, 40, SkPath::kCW_Direction);
- path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
- path.addRect(32, 24, 36, 41, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine75">
- path.addRect(0, 0, 60, 60, SkPath::kCW_Direction);
- path.addRect(10, 0, 30, 30, SkPath::kCCW_Direction);
- path.addRect(18, 0, 30, 30, SkPath::kCCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine76">
- path.addRect(36, 0, 66, 60, SkPath::kCW_Direction);
- path.addRect(10, 20, 40, 30, SkPath::kCW_Direction);
- path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
- path.addRect(32, 6, 36, 41, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine77">
- path.addRect(20, 0, 40, 40, SkPath::kCW_Direction);
- path.addRect(24, 6, 36, 36, SkPath::kCCW_Direction);
- path.addRect(24, 32, 33, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine78">
- path.addRect(0, 0, 30, 60, SkPath::kCW_Direction);
- path.addRect(10, 20, 30, 30, SkPath::kCCW_Direction);
- path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction);
- path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine79">
- path.addRect(0, 36, 60, 30, SkPath::kCW_Direction);
- path.addRect(10, 30, 40, 30, SkPath::kCW_Direction);
- path.addRect(0, 20, 12, 30, SkPath::kCCW_Direction);
- path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine81">
- path.addRect(-1, -1, 3, 3, SkPath::kCW_Direction);
- path.addRect(0, 0, 1, 1, SkPath::kCW_Direction);
- path.addRect(1, 1, 2, 2, SkPath::kCCW_Direction);
-</div>
-
-<div id="testDegenerate1">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(2, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(2, 0);
- path.close();
-</div>
-
-<div id="testDegenerate2">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(0, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(0, 1);
- path.close();
-</div>
-
-<div id="testDegenerate3">
- path.moveTo(0, 0);
- path.lineTo(2, 0);
- path.lineTo(1, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(3, 0);
- path.close();
-</div>
-
-<div id="testDegenerate4">
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 1);
- path.lineTo(1, 2);
- path.close();
-</div>
-
-<div id="testNondegenerate1">
- path.moveTo(0, 0);
- path.lineTo(3, 0);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(1, 1);
- path.lineTo(2, 1);
- path.lineTo(1, 2);
- path.close();
-</div>
-
-<div id="testNondegenerate2">
- path.moveTo(1, 0);
- path.lineTo(0, 1);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 2);
- path.lineTo(0, 3);
- path.lineTo(1, 2);
- path.close();
-</div>
-
-<div id="testNondegenerate3">
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(2, 1);
- path.close();
- path.moveTo(0, 1);
- path.lineTo(1, 1);
- path.lineTo(0, 2);
- path.close();
-</div>
-
-<div id="testNondegenerate4">
- path.moveTo(1, 0);
- path.lineTo(0, 1);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 2);
- path.lineTo(0, 3);
- path.lineTo(1, 3);
- path.close();
-</div>
-
-<div id="testQuadralateral5">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 2);
- path.lineTo(3, 2);
- path.lineTo(3, 3);
- path.close();
-</div>
-
-<div id="testQuadralateral6">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(2, 0);
- path.lineTo(0, 2);
- path.lineTo(2, 2);
- path.close();
-</div>
-
-<div id="testFauxQuadralateral6">
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(2, 0);
- path.lineTo(1.333, 0.667);
- path.close();
- path.moveTo(1.333, 0.667);
- path.lineTo(0, 2);
- path.lineTo(2, 2);
- path.close();
-</div>
-
-<div id="testFauxQuadralateral6a">
- path.moveTo(0, 0);
- path.lineTo(3, 0);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(3, 0);
- path.lineTo(6, 0);
- path.lineTo(4, 2);
- path.close();
- path.moveTo(4, 2);
- path.lineTo(0, 6);
- path.lineTo(6, 6);
- path.close();
-</div>
-
-<div id="testFauxQuadralateral6b">
- path.moveTo(0, 0);
- path.lineTo(3, 0);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(3, 0);
- path.lineTo(6, 0);
- path.lineTo(4, 2);
- path.close();
- path.moveTo(4, 2);
- path.lineTo(6, 6);
- path.lineTo(0, 6);
- path.close();
-</div>
-
-<div id="testFauxQuadralateral6c">
- path.moveTo(0, 0);
- path.lineTo(3, 3);
- path.lineTo(3, 0);
- path.close();
- path.moveTo(3, 0);
- path.lineTo(6, 0);
- path.lineTo(4, 2);
- path.close();
- path.moveTo(4, 2);
- path.lineTo(0, 6);
- path.lineTo(6, 6);
- path.close();
-</div>
-
-<div id="testFauxQuadralateral6d">
- path.moveTo(0, 0);
- path.lineTo(3, 3);
- path.lineTo(3, 0);
- path.close();
- path.moveTo(3, 0);
- path.lineTo(6, 0);
- path.lineTo(4, 2);
- path.close();
- path.moveTo(4, 2);
- path.lineTo(6, 6);
- path.lineTo(0, 6);
-</div>
-
-<div id="testQuadralateral6a">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(3, 0);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(3, 0);
- path.lineTo(6, 0);
- path.lineTo(0, 6);
- path.lineTo(6, 6);
-</div>
-
-<div id="testQuadralateral7">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(2, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 1);
- path.lineTo(2, 2);
- path.lineTo(1, 3);
- path.close();
-</div>
-
-<div id="testQuadralateral8">
- path.moveTo(0, 0);
- path.lineTo(3, 1);
- path.lineTo(1, 3);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(2, 1);
- path.lineTo(0, 2);
- path.lineTo(3, 2);
- path.lineTo(2, 3);
- path.close();
-</div>
-
-<div id="testQuadralateral9">
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(1, 2);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(1, 1);
- path.lineTo(2, 1);
- path.lineTo(1, 3);
- path.lineTo(2, 3);
- path.close();
-</div>
-
-<div id="testLine1x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 0, 13, 13, SkPath::kCW_Direction);
-</div>
-
-<div id="testLine2x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.addRect(0, 20, 20, 20, SkPath::kCW_Direction);
- path.addRect(0, 20, 12, 30, SkPath::kCW_Direction);
- path.addRect(12, 0, 21, 21, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine3x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
- path.addRect(18, 20, 30, 30, SkPath::kCCW_Direction);
- path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine4x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.addRect(10, 30, 30, 30, SkPath::kCW_Direction);
- path.addRect(24, 20, 36, 30, SkPath::kCCW_Direction);
- path.addRect(0, 32, 9, 36, SkPath::kCCW_Direction);
-</div>
-
-<div id="testQuadratic1">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(1, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.close();
-</div>
-
-<div id="testQuadratic2">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(3, 0);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic3">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic4x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic5">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic6">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(2, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic7">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(3, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(3, 0, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic8">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic9">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(3, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(1, 2, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic9a">
- path.moveTo(1.08000004, 0.720000029);
- path.lineTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(3, 1);
- path.lineTo(1.01568651, 0.338562161);
- path.quadTo(1.03542483, 0.541699469, 1.08000004, 0.720000029);
- path.close();
- path.moveTo(1.08000004, 0.720000029);
- path.lineTo(3, 2);
- path.quadTo(1.39999998, 2, 1.08000004, 0.720000029);
- path.close();
-
-</div>
-
-<div id="testQuadratic10a">
-path.moveTo(15.5, 15.5);
-path.lineTo(46.5, 15.5);
-path.quadTo(0, 31, 0, 46.5);
-path.lineTo(15.5, 15.5);
-path.close();
-</div>
-
-<div id="testQuadratic10b">
-path.moveTo(5.16666698, 36.1666641);
-path.lineTo(15.5, 15.5);
-path.lineTo(46.5, 15.5);
-path.quadTo(15.5, 25.8333321, 5.16666698, 36.1666641);
-path.close();
-path.moveTo(5.16666698, 36.1666641);
-path.lineTo(0, 46.5);
-path.quadTo(0, 41.3333359, 5.16666698, 36.1666641);
-path.close();
-</div>
-
-<div id="testQuadratic11a">
-path.moveTo(0, 0);
-path.lineTo(15.5, 31);
-path.lineTo(0, 0);
-path.close();
-path.moveTo(0, 15.5);
-path.lineTo(15.5, 15.5);
-path.quadTo(15.5, 15.5, 46.5, 31);
-path.lineTo(0, 15.5);
-path.close();
-</div>
-
-<div id="testQuadratic11b">
-path.moveTo(9.30000019, 18.6000004);
-path.lineTo(0, 15.5);
-path.lineTo(7.75, 15.5);
-path.lineTo(15.5, 15.5);
-path.lineTo(46.5, 31);
-path.lineTo(9.30000019, 18.6000004);
-path.close();
-</div>
-
-<div id="testQuadratic12">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(0, 1);
- path.quadTo(1, 1, 0, 3);
- path.close();
-</div>
-
-<div id="testQuadratic13a">
-path.moveTo(0, 0);
-path.quadTo(0, 0, 15.5, 0);
-path.lineTo(15.5, 31);
-path.lineTo(0, 0);
-path.close();
-path.moveTo(0, 0);
-path.quadTo(15.5, 46.5, 46.5, 46.5);
-path.lineTo(0, 0);
-path.close();
-</div>
-
-<div id="testQuadratic13b">
-path.moveTo(14.8800001, 29.7600002);
-path.quadTo(6.20000029, 18.6000004, 0, 0);
-path.lineTo(14.8800001, 29.7600002);
-path.close();
-path.moveTo(15.5, 30.5437222);
-path.lineTo(15.5, 31);
-path.lineTo(14.8800001, 29.7600002);
-path.quadTo(15.1884346, 30.156559, 15.5, 30.5437222);
-path.close();
-path.moveTo(15.5, 15.5);
-path.lineTo(0, 0);
-path.lineTo(15.5, 0);
-path.lineTo(15.5, 15.5);
-path.close();
-path.moveTo(15.5, 30.5437222);
-path.lineTo(15.5, 15.5);
-path.lineTo(46.5, 46.5);
-path.quadTo(28.34062, 46.5, 15.5, 30.5437222);
-path.close();
-</div>
-
-<div id="testQuadratic14">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(3, 2, 3, 3);
- path.close();
-</div>
-
-<div id="testQuadratic15">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 1, 0);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(0, 1);
- path.quadTo(1, 1, 0, 3);
- path.close();
-</div>
-
-<div id="testQuadratic16a">
-path.moveTo(0, 0);
-path.quadTo(0, 0, 31, 0);
-path.lineTo(46.5, 31);
-path.lineTo(0, 0);
-path.close();
-path.moveTo(46.5, 15.5);
-path.lineTo(0, 31);
-path.quadTo(0, 31, 15.5, 31);
-path.lineTo(46.5, 15.5);
-path.close();
-</div>
-
-<div id="testQuadratic16b">
-path.moveTo(31, 20.6666679);
-path.lineTo(0, 0);
-path.lineTo(31, 0);
-path.lineTo(39.8571434, 17.7142868);
-path.lineTo(31, 20.6666679);
-path.close();
-path.moveTo(33.214283, 22.1428585);
-path.lineTo(15.5, 31);
-path.lineTo(0, 31);
-path.lineTo(31, 20.6666679);
-path.lineTo(33.214283, 22.1428585);
-path.close();
-path.moveTo(40.2999992, 18.6000004);
-path.lineTo(46.5, 31);
-path.lineTo(33.214283, 22.1428585);
-path.lineTo(40.2999992, 18.6000004);
-path.close();
-path.moveTo(39.8571434, 17.7142868);
-path.lineTo(46.5, 15.5);
-path.lineTo(40.2999992, 18.6000004);
-path.lineTo(39.8571434, 17.7142868);
-path.close();
-</div>
-
-<div id="testQuadratic17x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(0, 0, 3, 1);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(3, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic18">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.close();
-</div>
-
-<div id="testQuadratic19">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic20">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic21">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic22">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 1, 2, 1);
- path.close();
-</div>
-
-<div id="testQuadratic23">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 2, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic24">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(2, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic25">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic26">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic27">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.lineTo(2, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic28">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 2);
- path.quadTo(1, 2, 0, 3);
- path.close();
-</div>
-
-<div id="testQuadratic29">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 2, 1);
- path.lineTo(0, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.close();
-</div>
-
-<div id="testQuadratic30">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 2);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic31">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 2);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic32">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 2, 3);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(3, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic33">
- path.moveTo(0, 0);
- path.quadTo(2, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 1);
- path.quadTo(2, 1, 2, 2);
- path.close();
-</div>
-
-<div id="testQuadratic34">
- path.moveTo(0, 0);
- path.quadTo(2, 0, 0, 1);
- path.lineTo(0, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 1);
- path.quadTo(2, 1, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic35">
- path.moveTo(0, 0);
- path.quadTo(0, 1, 1, 1);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(2, 0);
- path.lineTo(3, 0);
- path.quadTo(0, 1, 1, 1);
- path.close();
-</div>
-
-<div id="testQuadratic36">
- path.moveTo(0, 0);
- path.quadTo(2, 1, 2, 3);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(3, 1);
- path.lineTo(1, 2);
- path.quadTo(3, 2, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic37">
- path.moveTo(0, 0);
- path.quadTo(0, 2, 1, 2);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(3, 1);
- path.quadTo(0, 2, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic38">
- path.moveTo(1, 0);
- path.quadTo(0, 1, 1, 1);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 2);
- path.quadTo(2, 2, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic39">
-path.moveTo(15.5, 0);
-path.quadTo(46.5, 15.5, 46.5, 31);
-path.lineTo(15.5, 0);
-path.close();
-path.moveTo(46.5, 15.5);
-path.lineTo(0, 31);
-path.quadTo(0, 31, 15.5, 31);
-path.lineTo(46.5, 15.5);
- path.close();
-</div>
-
-<div id="testQuadratic39a">
-path.moveTo(34.875, 19.375);
-path.lineTo(15.5, 0);
-path.quadTo(32.9687576, 8.73437881, 40.5937271, 17.4687576);
-path.lineTo(34.875, 19.375);
-path.close();
-path.moveTo(36.1666641, 20.6666679);
-path.lineTo(15.5, 31);
-path.lineTo(0, 31);
-path.lineTo(34.875, 19.375);
-path.lineTo(36.1666641, 20.6666679);
-path.close();
-path.moveTo(41.1812401, 18.15938);
-path.quadTo(46.5, 24.5796909, 46.5, 31);
-path.lineTo(36.1666641, 20.6666679);
-path.lineTo(41.1812401, 18.15938);
-path.close();
-path.moveTo(40.5937271, 17.4687576);
-path.lineTo(46.5, 15.5);
-path.lineTo(41.1812401, 18.15938);
-path.quadTo(40.8951759, 17.8140678, 40.5937271, 17.4687576);
- path.close();
-</div>
-
-<div id="testQuadratic40x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(2, 0);
- path.quadTo(3, 0, 2, 2);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(3, 1);
- path.lineTo(0, 2);
- path.quadTo(0, 2, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic40xa">
-path.moveTo(31, 0);
-path.quadTo(41.3333359, 0, 37.8888893, 13.7777777);
-path.lineTo(31, 0);
-path.close();
-path.moveTo(37.8888893, 13.7777777);
-path.quadTo(37.2993202, 16.1360455, 36.3061028, 18.8979664);
-path.lineTo(0, 31);
-path.lineTo(15.5, 31);
-path.lineTo(35.5182915, 20.9908543);
-path.quadTo(33.7454262, 25.5091457, 31, 31);
-path.lineTo(46.5, 31);
-path.lineTo(40.2999992, 18.6000004);
-path.lineTo(46.5, 15.5);
-path.lineTo(39.8571434, 17.7142868);
-path.lineTo(37.8888893, 13.7777777);
-path.close();
-path.moveTo(36.3061028, 18.8979664);
-path.quadTo(35.9396667, 19.9169388, 35.5182915, 20.9908543);
-path.lineTo(40.2999992, 18.6000004);
-path.lineTo(39.8571434, 17.7142868);
-path.lineTo(36.3061028, 18.8979664);
-</div>
-
-<div id="testQuadratic40xb">
-path.moveTo(31, 0);
-path.quadTo(46.5, 0, 31, 31);
-path.lineTo(46.5, 31);
-path.lineTo(31, 0);
-path.close();
-path.moveTo(46.5, 15.5);
-path.lineTo(0, 31);
-path.quadTo(0, 31, 15.5, 31);
-path.lineTo(46.5, 15.5);
-path.close();
-</div>
-
-<div id="testQuadratic41o">
-path.moveTo(419.33905, 236.377808);
-path.quadTo(398.847778, 242.58728, 384.255524, 242.58728);
-path.quadTo(359.417633, 242.58728, 343.738708, 226.080429);
-path.quadTo(328.059784, 209.573578, 328.059784, 183.286819);
-path.quadTo(328.059784, 157.724487, 341.875854, 141.372879);
-path.quadTo(355.691956, 125.021263, 377.218109, 125.021263);
-path.quadTo(397.605896, 125.021263, 408.731201, 139.51004);
-path.quadTo(419.856506, 153.99881, 419.856506, 180.699539);
-path.lineTo(419.752991, 187.012497);
-path.lineTo(348.861511, 187.012497);
-path.quadTo(353.311646, 227.063599, 388.084686, 227.063599);
-path.quadTo(400.814117, 227.063599, 419.33905, 220.233185);
-path.lineTo(419.33905, 236.377808);
-path.close();
-path.moveTo(349.792938, 171.695801);
-path.lineTo(399.365234, 171.695801);
-path.quadTo(399.365234, 140.337967, 375.976227, 140.337967);
-path.quadTo(352.483704, 140.337967, 349.792938, 171.695801);
-path.close();
-path.moveTo(378.682587, 277.360321);
-path.lineTo(381.062897, 259.66333);
-path.quadTo(398.759888, 268.046112, 415.939423, 268.046112);
-path.quadTo(450.402008, 268.046112, 450.402008, 231.513718);
-path.lineTo(450.402008, 213.816727);
-path.quadTo(439.12146, 237.41272, 413.352142, 237.41272);
-path.quadTo(393.171356, 237.41272, 381.269867, 222.716965);
-path.quadTo(369.368378, 208.02121, 369.368378, 183.079834);
-path.quadTo(369.368378, 157.414017, 382.92572, 141.269379);
-path.quadTo(396.483093, 125.124756, 418.009247, 125.124756);
-path.quadTo(436.844666, 125.124756, 450.402008, 140.441467);
-path.lineTo(450.402008, 127.608543);
-path.lineTo(470.89325, 127.608543);
-path.lineTo(470.89325, 209.366608);
-path.quadTo(470.89325, 235.756866, 468.150757, 248.43454);
-path.quadTo(465.408234, 261.112213, 457.853363, 269.184509);
-path.quadTo(444.502991, 283.362823, 416.353394, 283.362823);
-path.quadTo(396.690063, 283.362823, 378.682587, 277.360321);
-path.close();
-path.moveTo(450.402008, 201.087311);
-path.lineTo(450.402008, 154.412781);
-path.quadTo(436.948151, 140.441467, 421.113983, 140.441467);
-path.quadTo(407.039185, 140.441467, 399.070374, 151.722);
-path.quadTo(391.101532, 163.002533, 391.101532, 182.665863);
-path.quadTo(391.101532, 219.612228, 417.07782, 219.612228);
-path.quadTo(434.774841, 219.612228, 450.402008, 201.087311);
-path.close();
-path.moveTo(482.9328, 236.377808);
-path.quadTo(462.441528, 242.58728, 447.849274, 242.58728);
-path.quadTo(423.011383, 242.58728, 407.332458, 226.080429);
-path.quadTo(391.653534, 209.573578, 391.653534, 183.286819);
-path.quadTo(391.653534, 157.724487, 405.469604, 141.372879);
-path.quadTo(419.285706, 125.021263, 440.811859, 125.021263);
-path.quadTo(461.199646, 125.021263, 472.324951, 139.51004);
-path.quadTo(483.450256, 153.99881, 483.450256, 180.699539);
-path.lineTo(483.346741, 187.012497);
-path.lineTo(412.455261, 187.012497);
-path.quadTo(416.905396, 227.063599, 451.678436, 227.063599);
-path.quadTo(464.407867, 227.063599, 482.9328, 220.233185);
-path.lineTo(482.9328, 236.377808);
-path.close();
-path.moveTo(413.386688, 171.695801);
-path.lineTo(462.958984, 171.695801);
-path.quadTo(462.958984, 140.337967, 439.569977, 140.337967);
-path.quadTo(416.077454, 140.337967, 413.386688, 171.695801);
-path.close();
-</div>
-
-<div id="testQuadratic41s">
-path.moveTo(341.875854, 141.372879);
-path.quadTo(355.691956,125.021263, 377.218109,125.021263);
-path.quadTo(388.787811,125.021263, 397.374664,129.687164);
-path.quadTo(406.565979,125.124756, 418.009247,125.124756);
-path.quadTo(423.583374,125.124756, 428.695251,126.466187);
-path.quadTo(434.412903,125.021263, 440.811859,125.021263);
-path.quadTo(449.427277,125.021263, 456.388672,127.608543);
-path.lineTo(470.89325,127.608543);
-path.lineTo(470.89325,137.749908);
-path.quadTo(471.627319,138.601486, 472.324951,139.51004);
-path.quadTo(483.450256,153.99881, 483.450256,180.699539);
-path.lineTo(483.346741,187.012497);
-path.lineTo(470.89325,187.012497);
-path.lineTo(470.89325,209.366608);
-path.quadTo(470.89325,217.414856, 470.638184,224.187729);
-path.quadTo(476.428223,222.631516, 482.9328,220.233185);
-path.lineTo(482.9328,236.377808);
-path.quadTo(475.87207,238.517426, 469.511749,239.919785);
-path.quadTo(468.946777,244.754791, 468.150757,248.43454);
-path.quadTo(465.408234,261.112213, 457.853363,269.184509);
-path.quadTo(444.502991,283.362823, 416.353394,283.362823);
-path.quadTo(396.690063,283.362823, 378.682587,277.360321);
-path.lineTo(381.062897,259.66333);
-path.quadTo(398.759888,268.046112, 415.939423,268.046112);
-path.quadTo(444.719147,268.046112, 449.464905,242.568665);
-path.quadTo(448.648254,242.58728, 447.849274,242.58728);
-path.quadTo(433.084625,242.58728, 421.556366,236.754425);
-path.quadTo(418.89566,237.203537, 416.046783,237.346252);
-path.quadTo(397.661652,242.58728, 384.255524,242.58728);
-path.quadTo(359.417633,242.58728, 343.738708,226.080429);
-path.quadTo(328.059784,209.573578, 328.059784,183.286819);
-path.quadTo(328.059784,157.724487, 341.875854,141.372879);
-path.close();
-path.moveTo(442.014923, 226.179474);
-path.quadTo(445.951935,226.953491, 450.402008,227.049881);
-path.lineTo(450.402008,213.816727);
-path.quadTo(446.904755,221.132065, 442.014923,226.179474);
-path.close();
-path.moveTo(395.347717, 206.501785);
-path.quadTo(392.200165,197.593536, 391.734406,187.012497);
-path.lineTo(391.197113,187.012497);
-path.quadTo(391.738647,198.938644, 395.347717,206.501785);
-path.close();
-path.moveTo(391.808533, 171.695801);
-path.lineTo(392.428436,171.695801);
-path.quadTo(393.693451,162.656265, 397.02359,154.9935);
-path.quadTo(397.023804,154.992996, 397.024048,154.992493);
-path.quadTo(393.175995,143.845093, 383.003235,141.177292);
-path.quadTo(382.964447,141.223267, 382.92572,141.269379);
-</div>
-
-<div id="testQuadratic42o">
-path.moveTo(421.962158, 236.285355);
-path.quadTo(400.947845, 242.65332, 385.983124, 242.65332);
-path.quadTo(360.511261, 242.65332, 344.432129, 225.725143);
-path.quadTo(328.352997, 208.796951, 328.352997, 181.839218);
-path.quadTo(328.352997, 155.62442, 342.521729, 138.855438);
-path.quadTo(356.69046, 122.086449, 378.766083, 122.086449);
-path.quadTo(399.674255, 122.086449, 411.083527, 136.945038);
-path.quadTo(422.492798, 151.803635, 422.492798, 179.185898);
-path.lineTo(422.386688, 185.660004);
-path.lineTo(349.685699, 185.660004);
-path.quadTo(354.24942, 226.733398, 389.910034, 226.733398);
-path.quadTo(402.964386, 226.733398, 421.962158, 219.728638);
-path.lineTo(421.962158, 236.285355);
-path.close();
-path.moveTo(350.6409, 169.952347);
-path.lineTo(401.478516, 169.952347);
-path.quadTo(401.478516, 137.794098, 377.492493, 137.794098);
-path.quadTo(353.40036, 137.794098, 350.6409, 169.952347);
-path.close();
-path.moveTo(379.213562, 278.313934);
-path.lineTo(381.654602, 260.165222);
-path.quadTo(399.803314, 268.761993, 417.421356, 268.761993);
-path.quadTo(452.763611, 268.761993, 452.763611, 231.297104);
-path.lineTo(452.763611, 213.148392);
-path.quadTo(441.195129, 237.34668, 414.768036, 237.34668);
-path.quadTo(394.072144, 237.34668, 381.866882, 222.275818);
-path.quadTo(369.661591, 207.204956, 369.661591, 181.626953);
-path.quadTo(369.661591, 155.306015, 383.565002, 138.749298);
-path.quadTo(397.468384, 122.192581, 419.544037, 122.192581);
-path.quadTo(438.860199, 122.192581, 452.763611, 137.900238);
-path.lineTo(452.763611, 124.739769);
-path.lineTo(473.777893, 124.739769);
-path.lineTo(473.777893, 208.584686);
-path.quadTo(473.777893, 235.64856, 470.965363, 248.649826);
-path.quadTo(468.152863, 261.651093, 460.405151, 269.929443);
-path.quadTo(446.71402, 284.469666, 417.845886, 284.469666);
-path.quadTo(397.680664, 284.469666, 379.213562, 278.313934);
-path.close();
-path.moveTo(452.763611, 200.094055);
-path.lineTo(452.763611, 152.228165);
-path.quadTo(438.966339, 137.900238, 422.727997, 137.900238);
-path.quadTo(408.293945, 137.900238, 400.121704, 149.468719);
-path.quadTo(391.949493, 161.037186, 391.949493, 181.202423);
-path.quadTo(391.949493, 219.091827, 418.588837, 219.091827);
-path.quadTo(436.737549, 219.091827, 452.763611, 200.094055);
-path.close();
-path.moveTo(485.555908, 236.285355);
-path.quadTo(464.541595, 242.65332, 449.576874, 242.65332);
-path.quadTo(424.105011, 242.65332, 408.025879, 225.725143);
-path.quadTo(391.946747, 208.796951, 391.946747, 181.839218);
-path.quadTo(391.946747, 155.62442, 406.115479, 138.855438);
-path.quadTo(420.28421, 122.086449, 442.359833, 122.086449);
-path.quadTo(463.268005, 122.086449, 474.677277, 136.945038);
-path.quadTo(486.086548, 151.803635, 486.086548, 179.185898);
-path.lineTo(485.980438, 185.660004);
-path.lineTo(413.279449, 185.660004);
-path.quadTo(417.84317, 226.733398, 453.503784, 226.733398);
-path.quadTo(466.558136, 226.733398, 485.555908, 219.728638);
-path.lineTo(485.555908, 236.285355);
-path.close();
-path.moveTo(414.23465, 169.952347);
-path.lineTo(465.072266, 169.952347);
-path.quadTo(465.072266, 137.794098, 441.086243, 137.794098);
-path.quadTo(416.99411, 137.794098, 414.23465, 169.952347);
-path.close();
-</div>
-
-<div id="testQuadratic42s">
-path.moveTo(342.521729, 138.855438);
-path.quadTo(356.69046,122.086449, 378.766083,122.086449);
-path.quadTo(390.293488,122.086449, 398.933502,126.603004);
-path.quadTo(408.150299,122.192581, 419.544037,122.192581);
-path.quadTo(425.108429,122.192581, 430.223633,123.496056);
-path.quadTo(435.959412,122.086449, 442.359833,122.086449);
-path.quadTo(451.19516,122.086449, 458.334229,124.739769);
-path.lineTo(473.777893,124.739769);
-path.lineTo(473.777893,135.814713);
-path.quadTo(474.234741,136.368698, 474.677277,136.945038);
-path.quadTo(486.086548,151.803635, 486.086548,179.185898);
-path.lineTo(485.980438,185.660004);
-path.lineTo(473.777893,185.660004);
-path.lineTo(473.777893,208.584686);
-path.quadTo(473.777893,216.745773, 473.522156,223.628113);
-path.quadTo(479.207153,222.069519, 485.555908,219.728638);
-path.lineTo(485.555908,236.285355);
-path.quadTo(478.638306,238.381592, 472.376221,239.787796);
-path.quadTo(471.792389,244.826782, 470.965363,248.649826);
-path.quadTo(468.152863,261.651093, 460.405151,269.929443);
-path.quadTo(446.71402,284.469666, 417.845886,284.469666);
-path.quadTo(397.680664,284.469666, 379.213562,278.313934);
-path.lineTo(381.654602,260.165222);
-path.quadTo(399.803314,268.761993, 417.421356,268.761993);
-path.quadTo(446.944275,268.761993, 451.80542,242.619034);
-path.quadTo(450.674866,242.65332, 449.576874,242.65332);
-path.quadTo(434.524628,242.65332, 422.75238,236.741913);
-path.quadTo(420.864227,237.041901, 418.884674,237.193085);
-path.quadTo(399.840271,242.65332, 385.983124,242.65332);
-path.quadTo(360.511261,242.65332, 344.432129,225.725143);
-path.quadTo(328.352997,208.796951, 328.352997,181.839218);
-path.quadTo(328.352997,155.62442, 342.521729,138.855438);
-path.close();
-path.moveTo(383.823944, 138.443222);
-path.quadTo(380.900299,137.794098, 377.492493,137.794098);
-path.quadTo(353.40036,137.794098, 350.6409,169.952347);
-path.lineTo(370.408203,169.952347);
-path.quadTo(372.883484,151.469254, 383.565002,138.749298);
-path.quadTo(383.694122,138.595551, 383.823944,138.443222);
-path.close();
-path.moveTo(369.740021, 185.660004);
-path.lineTo(349.685699,185.660004);
-path.quadTo(353.983734,224.342361, 385.863525,226.594208);
-path.quadTo(383.762756,224.616837, 381.866882,222.275818);
-path.quadTo(370.639954,208.41301, 369.740021,185.660004);
-path.close();
-path.moveTo(413.279449, 185.660004);
-path.quadTo(415.737305,207.780716, 427.214905,217.987976);
-path.quadTo(440.600586,214.512451, 452.763611,200.094055);
-path.lineTo(452.763611,185.660004);
-</div>
-
-<div id="testQuadratic43o">
-path.moveTo(288.755981, 240);
-path.lineTo(288.755981, 102.232819);
-path.lineTo(315.843994, 102.232819);
-path.lineTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(417.493835, 102.232819);
-path.lineTo(417.493835, 240);
-path.lineTo(399.248962, 240);
-path.lineTo(399.248962, 127.92453);
-path.lineTo(361.269928, 230.784485);
-path.lineTo(342.373474, 230.784485);
-path.lineTo(305.511444, 127.645271);
-path.lineTo(305.511444, 240);
-path.lineTo(288.755981, 240);
-path.close();
-path.moveTo(397.864014, 236.741989);
-path.quadTo(379.433014, 242.327148, 366.307892, 242.327148);
-path.quadTo(343.967255, 242.327148, 329.864746, 227.479935);
-path.quadTo(315.762238, 212.632736, 315.762238, 188.988907);
-path.quadTo(315.762238, 165.996674, 328.189209, 151.289093);
-path.quadTo(340.61618, 136.581512, 359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.quadTo(398.329468, 162.645584, 398.329468, 186.661758);
-path.lineTo(398.236359, 192.339996);
-path.lineTo(334.472504, 192.339996);
-path.quadTo(338.475189, 228.364258, 369.752075, 228.364258);
-path.quadTo(381.20163, 228.364258, 397.864014, 222.220581);
-path.lineTo(397.864014, 236.741989);
-path.close();
-path.moveTo(335.310272, 178.563278);
-path.lineTo(379.898438, 178.563278);
-path.quadTo(379.898438, 150.358246, 358.861023, 150.358246);
-path.quadTo(337.730499, 150.358246, 335.310272, 178.563278);
-path.close();
-path.moveTo(346.052765, 240);
-path.lineTo(346.052765, 138.908661);
-path.lineTo(364.390686, 138.908661);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.quadTo(398.832489, 136.674606, 401.904327, 137.140045);
-path.lineTo(401.904327, 154.267853);
-path.quadTo(397.156952, 152.685394, 393.526611, 152.685394);
-path.quadTo(376.119537, 152.685394, 364.390686, 173.350464);
-path.lineTo(364.390686, 240);
-path.lineTo(346.052765, 240);
-path.close();
-path.moveTo(362.792297, 273.604034);
-path.lineTo(364.933289, 257.68634);
-path.quadTo(380.850983, 265.226288, 396.303253, 265.226288);
-path.quadTo(427.300842, 265.226288, 427.300842, 232.366959);
-path.lineTo(427.300842, 216.449265);
-path.quadTo(417.15448, 237.672852, 393.976105, 237.672852);
-path.quadTo(375.824341, 237.672852, 365.119446, 224.454651);
-path.quadTo(354.414581, 211.23645, 354.414581, 188.802734);
-path.quadTo(354.414581, 165.717422, 366.608826, 151.196014);
-path.quadTo(378.803101, 136.674606, 398.164948, 136.674606);
-path.quadTo(415.106598, 136.674606, 427.300842, 150.451324);
-path.lineTo(427.300842, 138.908661);
-path.lineTo(445.731873, 138.908661);
-path.lineTo(445.731873, 212.446564);
-path.quadTo(445.731873, 236.183472, 443.265106, 247.586502);
-path.quadTo(440.798309, 258.989532, 434.003052, 266.250244);
-path.quadTo(421.994965, 279.002991, 396.675598, 279.002991);
-path.quadTo(378.989258, 279.002991, 362.792297, 273.604034);
-path.close();
-path.moveTo(427.300842, 204.999695);
-path.lineTo(427.300842, 163.017929);
-path.quadTo(415.199677, 150.451324, 400.95755, 150.451324);
-path.quadTo(388.297852, 150.451324, 381.130249, 160.597687);
-path.quadTo(373.962616, 170.744064, 373.962616, 188.430389);
-path.quadTo(373.962616, 221.662079, 397.327179, 221.662079);
-path.quadTo(413.244873, 221.662079, 427.300842, 204.999695);
-path.close();
-path.moveTo(461.457764, 236.741989);
-path.quadTo(443.026764, 242.327148, 429.901642, 242.327148);
-path.quadTo(407.561005, 242.327148, 393.458496, 227.479935);
-path.quadTo(379.355988, 212.632736, 379.355988, 188.988907);
-path.quadTo(379.355988, 165.996674, 391.782959, 151.289093);
-path.quadTo(404.20993, 136.581512, 423.571808, 136.581512);
-path.quadTo(441.909729, 136.581512, 451.916473, 149.613556);
-path.quadTo(461.923218, 162.645584, 461.923218, 186.661758);
-path.lineTo(461.830109, 192.339996);
-path.lineTo(398.066254, 192.339996);
-path.quadTo(402.068939, 228.364258, 433.345825, 228.364258);
-path.quadTo(444.79538, 228.364258, 461.457764, 222.220581);
-path.lineTo(461.457764, 236.741989);
-path.close();
-path.moveTo(398.904022, 178.563278);
-path.lineTo(443.492188, 178.563278);
-path.quadTo(443.492188, 150.358246, 422.454773, 150.358246);
-path.quadTo(401.324249, 150.358246, 398.904022, 178.563278);
-path.close();
-</div>
-
-<div id="testQuadratic43s">
-path.moveTo(288.755981, 240);
-path.lineTo(288.755981,102.232819);
-path.lineTo(315.843994,102.232819);
-path.lineTo(331.979736,147.294876);
-path.quadTo(343.453125,136.581512, 359.978058,136.581512);
-path.quadTo(370.869446,136.581512, 378.822021,141.178574);
-path.quadTo(378.893585,141.140915, 378.965302,141.103577);
-path.lineTo(393.291473,102.232819);
-path.lineTo(417.493835,102.232819);
-path.lineTo(417.493835,136.965759);
-path.quadTo(420.44223,136.581512, 423.571808,136.581512);
-path.quadTo(431.320984,136.581512, 437.582458,138.908661);
-path.lineTo(445.731873,138.908661);
-path.lineTo(445.731873,143.392502);
-path.quadTo(449.143951,146.002823, 451.916473,149.613556);
-path.quadTo(461.923218,162.645584, 461.923218,186.661758);
-path.lineTo(461.830109,192.339996);
-path.lineTo(445.731873,192.339996);
-path.lineTo(445.731873,212.446564);
-path.quadTo(445.731873,220.39856, 445.455017,226.966339);
-path.quadTo(452.7435,225.43367, 461.457764,222.220581);
-path.lineTo(461.457764,236.741989);
-path.quadTo(452.250824,239.531982, 444.367889,240.928268);
-path.quadTo(443.897583,244.662796, 443.265106,247.586502);
-path.quadTo(440.798309,258.989532, 434.003052,266.250244);
-path.quadTo(421.994965,279.002991, 396.675598,279.002991);
-path.quadTo(378.989258,279.002991, 362.792297,273.604034);
-path.lineTo(364.933289,257.68634);
-path.quadTo(380.850983,265.226288, 396.303253,265.226288);
-path.quadTo(422.230743,265.226288, 426.471558,242.237076);
-path.quadTo(419.570892,241.869324, 413.503387,240);
-path.lineTo(399.248962,240);
-path.lineTo(399.248962,237.37915);
-path.quadTo(397.047638,237.633072, 394.711517,237.667465);
-path.quadTo(378.296356,242.327148, 366.307892,242.327148);
-path.quadTo(357.463165,242.327148, 349.909637,240);
-path.lineTo(346.052765,240);
-path.lineTo(346.052765,238.625916);
-path.quadTo(336.926056,234.914124, 329.864746,227.479935);
-path.quadTo(315.762238,212.632736, 315.762238,188.988907);
-path.quadTo(315.762238,176.540054, 319.405273,166.519882);
-path.lineTo(305.511444,127.645271);
-path.lineTo(305.511444,240);
-path.lineTo(288.755981,240);
-path.close();
-path.moveTo(375.464813, 192.339996);
-path.lineTo(374.267029,195.583939);
-path.quadTo(375.987579,214.575378, 387.432068,219.736267);
-path.quadTo(380.122528,208.101486, 379.428741,192.339996);
-path.lineTo(375.464813,192.339996);
-path.close();
-path.moveTo(427.300842, 178.563278);
-path.lineTo(427.300842,163.017929);
-path.quadTo(422.561523,158.096329, 417.493835,155.102234);
-path.lineTo(417.493835,178.563278);
-path.lineTo(427.300842,178.563278);
-path.close();
-path.moveTo(427.300842, 192.339996);
-path.lineTo(417.493835,192.339996);
-path.lineTo(417.493835,214.429169);
-path.quadTo(422.505676,210.684036, 427.300842,204.999695);
-path.lineTo(427.300842,192.339996);
-path.close();
-path.moveTo(420.700134, 226.556015);
-path.quadTo(423.794342,227.54834, 427.300842,227.996094);
-path.lineTo(427.300842,216.449265);
-path.quadTo(424.497772,222.312531, 420.700134,226.556015);
-path.close();
-path.moveTo(368.744965, 228.354782);
-path.quadTo(366.836426,226.574738, 365.119446,224.454651);
-path.quadTo(364.748657,223.996796, 364.390686,223.527878);
-path.lineTo(364.390686,228.077774);
-path.quadTo(366.495239,228.312164, 368.744965,228.354782);
-path.close();
-path.moveTo(399.248962, 199.701065);
-path.lineTo(399.248962,192.339996);
-path.lineTo(398.236359,192.339996);
-path.lineTo(398.066254,192.339996);
-path.quadTo(398.498535,196.230621, 399.248962,199.701065);
-path.close();
-path.moveTo(399.248962, 178.563278);
-path.lineTo(399.248962,175.376892);
-path.quadTo(399.04483,176.922348, 398.904022,178.563278);
-path.lineTo(399.248962,178.563278);
-path.close();
-path.moveTo(399.248962, 136.688828);
-path.lineTo(399.248962,127.92453);
-path.lineTo(396.018158,136.674606);
-path.quadTo(396.029053,136.674606, 396.039917,136.674606);
-path.quadTo(396.513672,136.674606, 396.995453,136.688004);
-path.quadTo(397.576904,136.674606, 398.164948,136.674606);
-path.quadTo(398.709412,136.674606, 399.248962,136.688828);
-path.close();
-path.moveTo(346.052765, 178.563278);
-path.lineTo(346.052765,154.02713);
-path.quadTo(340.97113,157.621338, 338.22525,164.736588);
-path.lineTo(343.1763,178.563278);
-path.lineTo(346.052765,178.563278);
-path.close();
-path.moveTo(364.390686, 150.922379);
-path.lineTo(364.390686,154.048065);
-path.quadTo(365.340851,152.726639, 366.38147,151.468765);
-path.quadTo(365.420258,151.14975, 364.390686,150.922379);
-path.close();
-path.moveTo(367.863586, 152.032623);
-path.quadTo(367.144043,151.721848, 366.38147,151.468765);
-</div>
-
-<div id="testQuadratic44o">
-path.moveTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(399.248962, 127.92453);
-path.lineTo(361.269928, 230.784485);
-path.lineTo(354.009216, 208.816208);
-path.close();
-path.moveTo(328.189209, 151.289093);
-path.quadTo(340.61618, 136.581512, 359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.lineTo(328.189209, 151.289093);
-path.close();
-path.moveTo(346.052765, 138.908661);
-path.lineTo(364.390686, 138.908661);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.lineTo(346.052765, 138.908661);
-path.close();
-</div>
-
-<div id="testQuadratic44s">
-path.moveTo(380.33902, 137.376312);
-path.lineTo(393.291473,102.232819);
-path.lineTo(399.248962,127.92453);
-path.lineTo(396.018158,136.674606);
-path.quadTo(396.029053,136.674606, 396.039917,136.674606);
-path.lineTo(396.017792,136.675598);
-path.lineTo(361.269928,230.784485);
-path.lineTo(354.009216,208.816208);
-path.lineTo(375.699249,149.965286);
-path.lineTo(369.22699,150.14563);
-path.quadTo(373.524384,144.511566, 378.917297,141.233871);
-path.lineTo(380.33902,137.376312);
-path.close();
-path.moveTo(380.33902, 137.376312);
-path.lineTo(378.917297,141.233856);
-path.quadTo(375.048248,138.978912, 370.480499,137.816925);
-path.lineTo(380.33902,137.376312);
-path.close();
-path.moveTo(392.55661, 136.830276);
-path.lineTo(380.33902,137.376312);
-</div>
-
-<div id="testQuadratic45o">
-path.moveTo(315.843994, 102.232819);
-path.lineTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(399.248962, 127.92453);
-path.lineTo(361.269928, 230.784485);
-path.lineTo(342.373474, 230.784485);
-path.lineTo(305.511444, 127.645271);
-path.lineTo(315.843994, 102.232819);
-path.close();
-path.moveTo(366.307892, 242.327148);
-path.quadTo(343.967255, 242.327148, 329.864746, 227.479935);
-path.quadTo(315.762238, 212.632736, 315.762238, 188.988907);
-path.quadTo(315.762238, 165.996674, 328.189209, 151.289093);
-path.quadTo(340.61618, 136.581512, 359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.quadTo(398.329468, 162.645584, 398.329468, 186.661758);
-path.lineTo(398.236359, 192.339996);
-path.lineTo(334.472504, 192.339996);
-path.quadTo(338.475189, 228.364258, 369.752075, 228.364258);
-path.quadTo(381.20163, 228.364258, 397.864014, 222.220581);
-path.lineTo(366.307892, 242.327148);
-path.close();
-path.moveTo(335.310272, 178.563278);
-path.lineTo(379.898438, 178.563278);
-path.quadTo(379.898438, 150.358246, 358.861023, 150.358246);
-path.quadTo(337.730499, 150.358246, 335.310272, 178.563278);
-path.close();
-path.moveTo(346.052765, 240);
-path.lineTo(346.052765, 138.908661);
-path.lineTo(364.390686, 138.908661);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.lineTo(401.904327, 154.267853);
-path.quadTo(397.156952, 152.685394, 393.526611, 152.685394);
-path.quadTo(376.119537, 152.685394, 364.390686, 173.350464);
-path.lineTo(364.390686, 240);
-path.lineTo(346.052765, 240);
-path.close();
-path.moveTo(396.303253, 265.226288);
-path.quadTo(427.300842, 265.226288, 427.300842, 232.366959);
-path.lineTo(427.300842, 216.449265);
-path.quadTo(417.15448, 237.672852, 393.976105, 237.672852);
-path.quadTo(375.824341, 237.672852, 365.119446, 224.454651);
-path.quadTo(354.414581, 211.23645, 354.414581, 188.802734);
-path.quadTo(354.414581, 165.717422, 366.608826, 151.196014);
-path.quadTo(378.803101, 136.674606, 398.164948, 136.674606);
-path.lineTo(396.303253, 265.226288);
-path.close();
-path.moveTo(400.95755, 150.451324);
-path.quadTo(388.297852, 150.451324, 381.130249, 160.597687);
-path.quadTo(373.962616, 170.744064, 373.962616, 188.430389);
-path.quadTo(373.962616, 221.662079, 397.327179, 221.662079);
-path.lineTo(400.95755, 150.451324);
-path.close();
-path.moveTo(429.901642, 242.327148);
-path.quadTo(407.561005, 242.327148, 393.458496, 227.479935);
-path.quadTo(379.355988, 212.632736, 379.355988, 188.988907);
-path.quadTo(379.355988, 165.996674, 391.782959, 151.289093);
-path.quadTo(404.20993, 136.581512, 423.571808, 136.581512);
-path.lineTo(429.901642, 242.327148);
-path.close();
-</div>
-
-<div id="testQuadratic45s">
-path.moveTo(305.511444, 127.645271);
-path.lineTo(315.843994,102.232819);
-path.lineTo(331.979736,147.294876);
-path.quadTo(343.453125,136.581512, 359.978058,136.581512);
-path.quadTo(370.869446,136.581512, 378.822021,141.178574);
-path.quadTo(378.893585,141.140915, 378.965302,141.103577);
-path.lineTo(393.291473,102.232819);
-path.lineTo(399.248962,127.92453);
-path.lineTo(396.018158,136.674606);
-path.quadTo(396.029053,136.674606, 396.039917,136.674606);
-path.lineTo(396.054596,136.718628);
-path.quadTo(397.098907,136.674606, 398.164948,136.674606);
-path.lineTo(398.076477,142.784256);
-path.lineTo(398.697632,144.647751);
-path.quadTo(409.233032,136.581512, 423.571808,136.581512);
-path.lineTo(429.901642,242.327148);
-path.quadTo(428.161621,242.327148, 426.471558,242.237076);
-path.quadTo(427.300842,237.741562, 427.300842,232.366959);
-path.lineTo(427.300842,216.449265);
-path.quadTo(419.710114,232.327133, 404.8255,236.326401);
-path.quadTo(400.557983,233.971252, 396.803375,230.691772);
-path.lineTo(396.7034,237.596863);
-path.quadTo(395.363068,237.672852, 393.976105,237.672852);
-path.quadTo(385.309937,237.672852, 378.341187,234.659912);
-path.lineTo(366.307892,242.327148);
-path.quadTo(357.463165,242.327148, 349.909637,240);
-path.lineTo(346.052765,240);
-path.lineTo(346.052765,238.625916);
-path.quadTo(336.926056,234.914124, 329.864746,227.479935);
-path.quadTo(315.762238,212.632736, 315.762238,188.988907);
-path.quadTo(315.762238,176.540054, 319.405273,166.519882);
-path.lineTo(305.511444,127.645271);
-path.close();
-path.moveTo(375.464813, 192.339996);
-path.lineTo(374.267029,195.583939);
-path.quadTo(375.987579,214.575378, 387.432068,219.736267);
-path.quadTo(380.122528,208.101486, 379.428741,192.339996);
-path.lineTo(375.464813,192.339996);
-path.close();
-path.moveTo(397.925934, 153.178131);
-path.lineTo(397.615479,174.615356);
-path.quadTo(398.329468,180.246704, 398.329468,186.661758);
-path.lineTo(398.236359,192.339996);
-path.lineTo(397.358795,192.339996);
-path.lineTo(396.934174,221.659714);
-path.quadTo(397.129852,221.662079, 397.327179,221.662079);
-path.lineTo(400.781189,153.910889);
-path.quadTo(399.295654,153.462463, 397.925934,153.178131);
-path.close();
-path.moveTo(400.914398, 151.298019);
-path.lineTo(400.632721,150.453003);
-path.quadTo(400.794678,150.451324, 400.95755,150.451324);
-path.lineTo(400.914398,151.298019);
-path.close();
-path.moveTo(368.744965, 228.354782);
-path.quadTo(366.836426,226.574738, 365.119446,224.454651);
-path.quadTo(364.748657,223.996796, 364.390686,223.527878);
-path.lineTo(364.390686,228.077774);
-path.quadTo(366.495239,228.312164, 368.744965,228.354782);
-path.close();
-path.moveTo(346.052765, 178.563278);
-path.lineTo(346.052765,154.02713);
-path.quadTo(340.97113,157.621338, 338.22525,164.736588);
-path.lineTo(343.1763,178.563278);
-path.lineTo(346.052765,178.563278);
-path.close();
-path.moveTo(364.390686, 150.922379);
-path.lineTo(364.390686,154.048065);
-path.quadTo(365.340851,152.726639, 366.38147,151.468765);
-path.quadTo(365.420258,151.14975, 364.390686,150.922379);
-path.close();
-path.moveTo(367.863586, 152.032623);
-path.quadTo(367.144043,151.721848, 366.38147,151.468765);
-</div>
-
-<div id="testQuadratic46o">
-path.moveTo(366.608826, 151.196014);
-path.quadTo(378.803101, 136.674606, 398.164948, 136.674606);
-path.lineTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.lineTo(350, 120);
-path.lineTo(366.608826, 151.196014);
-path.close();
-</div>
-
-<div id="testQuadratic46s">
-path.moveTo(369.285553, 126.984779);
-path.lineTo(393.291473,102.232819);
-path.lineTo(382.416199,131.740402);
-path.lineTo(396.039917,136.674606);
-path.quadTo(387.290802,136.674606, 380.294495,140.44487);
-path.quadTo(379.623352,140.760971, 378.965302,141.103577);
-path.lineTo(378.917297,141.233856);
-path.quadTo(378.86972,141.206131, 378.822021,141.178574);
-path.quadTo(372.011871,144.761871, 366.608826,151.196014);
-path.lineTo(350,120);
-path.lineTo(369.285553,126.984779);
-path.close();
-path.moveTo(374.00174, 154.571106);
-path.lineTo(378.917297,141.233871);
-path.quadTo(378.917297,141.233871, 378.917297,141.233856);
-path.quadTo(384.294891,144.368011, 388.322723,149.613556);
-path.lineTo(374.00174,154.571106);
-path.close();
-path.moveTo(378.917297, 141.233871);
-path.quadTo(370.233887,146.511475, 364.390686,157.898193);
-path.lineTo(374.00174,154.571106);
-path.lineTo(354.009216,208.816208);
-path.lineTo(398.164948,136.674606);
-path.quadTo(388.299255,136.674606, 380.294495,140.44487);
-</div>
-
-<div id="testQuadratic47o">
-path.moveTo(343.939362, 212.598053);
-path.lineTo(378.457642, 118.940636);
-path.lineTo(383.692657, 141.516571);
-path.lineTo(350.319519, 231.902115);
-path.lineTo(343.939362, 212.598053);
-path.close();
-path.moveTo(325.429016, 162.047577);
-path.quadTo(336.348907, 149.123688, 353.36264, 149.123688);
-path.quadTo(369.476624, 149.123688, 378.269806, 160.575241);
-path.lineTo(325.429016, 162.047577);
-path.close();
-path.moveTo(370.867188, 186.014069);
-path.quadTo(370.867188, 161.229614, 352.381104, 161.229614);
-path.quadTo(333.813202, 161.229614, 331.686493, 186.014069);
-path.lineTo(370.867188, 186.014069);
-path.close();
-path.moveTo(353.161499, 195.011719);
-path.quadTo(353.161499, 174.726105, 363.876862, 161.96579);
-path.lineTo(353.161499, 195.011719);
-path.close();
-</div>
-
-<div id="testQuadratic47s">
-path.moveTo(366.466309, 151.476364);
-path.lineTo(378.457642,118.940636);
-path.lineTo(383.692657,141.516571);
-path.lineTo(377.159943,159.209305);
-path.quadTo(377.728729,159.87059, 378.269806,160.575241);
-path.lineTo(376.638824,160.620682);
-path.lineTo(370.26593,177.8806);
-path.quadTo(368.708496,168.390671, 363.116943,164.309357);
-path.lineTo(356.079041,186.014069);
-path.lineTo(367.262817,186.014069);
-path.lineTo(350.319519,231.902115);
-path.lineTo(343.939362,212.598053);
-path.lineTo(353.736816,186.014923);
-path.lineTo(353.737122,186.014069);
-path.lineTo(353.736938,186.014069);
-path.quadTo(353.736877,186.014496, 353.736816,186.014923);
-path.quadTo(353.161499,190.31131, 353.161499,195.011719);
-</div>
-
-<div id="testQuadratic48o">
-path.moveTo(366.608826, 151.196014);
-path.quadTo(378.803101, 136.674606, 398.164948, 136.674606);
-path.lineTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.lineTo(350, 120);
-path.lineTo(366.608826, 151.196014);
-path.close();
-</div>
-
-<div id="testQuadratic48s">
-path.moveTo(369.285553, 126.984779);
-path.lineTo(393.291473,102.232819);
-path.lineTo(382.416199,131.740402);
-path.lineTo(396.039917,136.674606);
-path.quadTo(387.290802,136.674606, 380.294495,140.44487);
-path.quadTo(379.623352,140.760971, 378.965302,141.103577);
-path.lineTo(378.917297,141.233856);
-path.quadTo(378.86972,141.206131, 378.822021,141.178574);
-path.quadTo(372.011871,144.761871, 366.608826,151.196014);
-path.lineTo(350,120);
-path.lineTo(369.285553,126.984779);
-path.close();
-</div>
-
-<div id="testQuadratic49s">
-path.moveTo(366.400513, 204.162521);
-path.lineTo(411.545044, 81.6732483);
-path.lineTo(366.400513, 204.162521);
-path.close();
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188, 121.147957, 368.11853, 121.147957);
-path.quadTo(389.193115, 121.147957, 400.693176, 136.124817);
-path.lineTo(331.585693, 138.050415);
-path.close();
-path.moveTo(369.863983, 145.645813);
-path.quadTo(382.380371, 121.254936, 406.236359, 121.254936);
-path.lineTo(369.863983, 145.645813);
-path.close();
-path.moveTo(369.970581, 137.94342);
-path.quadTo(383.98465, 121.254936, 406.235992, 121.254936);
-path.lineTo(369.970581, 137.94342);
-path.close();
-</div>
-
-<div id="testQuadratic50o">
-path.moveTo(366.400513, 204.162521);
-path.lineTo(411.545044, 81.6732483);
-path.lineTo(366.400513, 204.162521);
-path.close();
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188, 121.147957, 368.11853, 121.147957);
-path.quadTo(389.193115, 121.147957, 400.693176, 136.124817);
-path.lineTo(331.585693, 138.050415);
-path.close();
-path.moveTo(369.863983, 145.645813);
-path.quadTo(382.380371, 121.254936, 406.236359, 121.254936);
-path.lineTo(369.863983, 145.645813);
-path.close();
-path.moveTo(369.970581, 137.94342);
-path.quadTo(383.98465, 121.254936, 406.235992, 121.254936);
-path.lineTo(369.970581, 137.94342);
-path.close();
-</div>
-
-<div id="testQuadratic50s">
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188,121.147957, 368.11853,121.147957);
-path.quadTo(378.797424,121.147957, 387.017914,124.993469);
-path.quadTo(391.577667,123.030998, 396.645874,122.098694);
-path.quadTo(401.232697,121.254936, 406.235992,121.254936);
-path.lineTo(395.061676,126.397095);
-path.lineTo(391.979187,127.81559);
-path.quadTo(393.010406,128.517273, 393.994415,129.292801);
-path.quadTo(394.053131,129.339066, 394.111664,129.385605);
-path.lineTo(393.910492,129.520508);
-path.lineTo(383.340973,136.608322);
-path.lineTo(375.350006,136.830978);
-path.quadTo(376.20224,135.708145, 377.092102,134.66626);
-path.lineTo(372.197113,136.918823);
-</div>
-
-<div id="testQuadratic51">
-path.moveTo(369.863983, 145.645813);
-path.quadTo(382.380371, 121.254936, 406.236359, 121.254936);
-path.lineTo(369.863983, 145.645813);
-path.close();
-path.moveTo(369.970581, 137.94342);
-path.quadTo(383.98465, 121.254936, 406.235992, 121.254936);
-path.lineTo(369.970581, 137.94342);
-path.close();
-</div>
-
-<div id="testQuadratic52o">
-path.moveTo(366.400513, 204.162521);
-path.lineTo(411.545044, 81.6732483);
-path.lineTo(366.400513, 204.162521);
-path.close();
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188, 121.147957, 368.11853, 121.147957);
-path.quadTo(389.193115, 121.147957, 400.693176, 136.124817);
-path.lineTo(331.585693, 138.050415);
-path.close();
-path.moveTo(369.863983, 145.645813);
-path.quadTo(382.380371, 121.254936, 406.236359, 121.254936);
-path.lineTo(369.863983, 145.645813);
-path.close();
-path.moveTo(369.970581, 137.94342);
-path.quadTo(383.98465, 121.254936, 406.235992, 121.254936);
-path.lineTo(369.970581, 137.94342);
-path.close();
-</div>
-
-<div id="testQuadratic52s">
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188,121.147957, 368.11853,121.147957);
-path.quadTo(378.797424,121.147957, 387.017914,124.993469);
-path.quadTo(391.577667,123.030998, 396.645874,122.098694);
-path.quadTo(401.232697,121.254936, 406.235992,121.254936);
-path.close();
-path.moveTo(383.340973, 136.608322);
-path.lineTo(369.863983,145.645813);
-path.quadTo(372.378204,140.746292, 375.350006,136.830978);
-path.lineTo(372.197113,136.918823);
-path.lineTo(369.970581,137.94342);
-path.quadTo(370.390961,137.442825, 370.818756,136.95723);
-path.lineTo(331.585693,138.050415);
-path.quadTo(345.867188,121.147957, 368.11853,121.147957);
-path.quadTo(378.797424,121.147957, 387.017914,124.993469);
-path.quadTo(391.577667,123.030998, 396.645874,122.098694);
-path.quadTo(401.232697,121.254936, 406.235992,121.254936);
-path.close();
-path.moveTo(383.340973, 136.608322);
-path.lineTo(391.380798,136.384293);
-path.lineTo(400.693176,136.124817);
-path.quadTo(397.721985,132.255341, 394.111664,129.385605);
-path.lineTo(406.236359,121.254936);
-path.quadTo(406.236176,121.254936, 406.235992,121.254936);
-path.lineTo(406.235992,121.254936);
-path.quadTo(401.232697,121.254936, 396.645874,122.098694);
-path.quadTo(391.577667,123.030998, 387.017914,124.993469);
-path.quadTo(378.797424,121.147957, 368.11853,121.147957);
-path.quadTo(345.867188,121.147957, 331.585693,138.050415);
-path.lineTo(370.818756,136.95723);
-path.quadTo(370.390961,137.442825, 369.970581,137.94342);
-path.lineTo(372.197113,136.918823);
-path.lineTo(375.350006,136.830978);
-path.quadTo(372.378204,140.746292, 369.863983,145.645813);
-path.lineTo(383.340973,136.608322);
-path.close();
-</div>
-
-<div id="testQuadratic52sa">
-path.moveTo(331.585693, 138.050415);
-path.quadTo(345.867188,121.147957, 368.11853,121.147957);
-path.quadTo(378.797424,121.147957, 387.017914,124.993469);
-path.quadTo(391.577667,123.030998, 396.645874,122.098694);
-path.quadTo(401.232697,121.254936, 406.235992,121.254936);
-path.close();
-</div>
-
-<div id="testQuadratic52sb">
-path.moveTo(383.340973, 136.608322);
-path.lineTo(369.863983,145.645813);
-path.quadTo(372.378204,140.746292, 375.350006,136.830978);
-path.lineTo(372.197113,136.918823);
-path.lineTo(369.970581,137.94342);
-path.quadTo(370.390961,137.442825, 370.818756,136.95723);
-path.lineTo(331.585693,138.050415);
-path.quadTo(345.867188,121.147957, 368.11853,121.147957);
-path.quadTo(378.797424,121.147957, 387.017914,124.993469);
-path.quadTo(391.577667,123.030998, 396.645874,122.098694);
-path.quadTo(401.232697,121.254936, 406.235992,121.254936);
-path.close();
-</div>
-
-<div id="testQuadratic52sc">
-path.moveTo(383.340973, 136.608322);
-path.lineTo(391.380798,136.384293);
-path.lineTo(400.693176,136.124817);
-path.quadTo(397.721985,132.255341, 394.111664,129.385605);
-path.lineTo(406.236359,121.254936);
-path.quadTo(406.236176,121.254936, 406.235992,121.254936);
-path.lineTo(406.235992,121.254936);
-path.quadTo(401.232697,121.254936, 396.645874,122.098694);
-path.quadTo(391.577667,123.030998, 387.017914,124.993469);
-path.quadTo(378.797424,121.147957, 368.11853,121.147957);
-path.quadTo(345.867188,121.147957, 331.585693,138.050415);
-path.lineTo(370.818756,136.95723);
-path.quadTo(370.390961,137.442825, 369.970581,137.94342);
-path.lineTo(372.197113,136.918823);
-path.lineTo(375.350006,136.830978);
-path.quadTo(372.378204,140.746292, 369.863983,145.645813);
-path.lineTo(383.340973,136.608322);
-path.close();
-</div>
-
-<div id="testQuadratic53o">
-path.moveTo(303.12088, 141.299606);
-path.lineTo(330.463562, 217.659027);
-path.lineTo(303.12088, 141.299606);
-path.close();
-path.moveTo(371.919067, 205.854996);
-path.lineTo(326.236786, 205.854996);
-path.quadTo(329.104431, 231.663818, 351.512085, 231.663818);
-path.lineTo(371.919067, 205.854996);
-path.close();
-</div>
-
-<div id="testQuadratic53s">
-path.moveTo(326.236786,205.854996);
-path.lineTo(326.236786,205.854996);
-path.close();
-path.moveTo(371.919067,205.854996);
-path.lineTo(326.236786,205.854996);
-</div>
-
-<div id="testQuadratic54">
-path.moveTo(303.12088, 141.299606);
-path.lineTo(330.463562, 217.659027);
-path.lineTo(358.606506, 141.299606);
-path.lineTo(303.12088, 141.299606);
-path.close();
-path.moveTo(371.919067, 205.854996);
-path.lineTo(326.236786, 205.854996);
-path.quadTo(329.104431, 231.663818, 351.512085, 231.663818);
-path.lineTo(371.919067, 205.854996);
-path.close();
-</div>
-
-<div id="testQuadratic55o">
-path.moveTo(303.12088, 141.299606);
-path.lineTo(330.463562, 217.659027);
-path.lineTo(358.606506, 141.299606);
-path.lineTo(303.12088, 141.299606);
-path.close();
-path.moveTo(326.236786, 205.854996);
-path.quadTo(329.104431, 231.663818, 351.512085, 231.663818);
-path.lineTo(326.236786, 205.854996);
-path.close();
-</div>
-
-<div id="testQuadratic55s">
-path.moveTo(326.236786,205.854996);
-path.lineTo(303.12088,141.299606);
-path.lineTo(358.606506,141.299606);
-path.lineTo(332.468719,212.218475);
-path.lineTo(351.512085,231.663818);
-path.quadTo(329.104431,231.663818, 326.236786,205.854996);
-path.close();
-</div>
-
-<div id="testQuadratic56o">
-path.moveTo(366.608826, 151.196014);
-path.quadTo(378.803101, 136.674606, 398.164948, 136.674606);
-path.lineTo(354.009216, 208.816208);
-path.lineTo(393.291473, 102.232819);
-path.lineTo(359.978058, 136.581512);
-path.quadTo(378.315979, 136.581512, 388.322723, 149.613556);
-path.lineTo(364.390686, 157.898193);
-path.quadTo(375.281769, 136.674606, 396.039917, 136.674606);
-path.lineTo(350, 120);
-path.lineTo(366.608826, 151.196014);
-path.close();
-</div>
-
-<div id="testQuadratic56s">
-path.moveTo(369.285553,126.984779);
-path.lineTo(393.291473,102.232819);
-path.lineTo(382.416199,131.740402);
-path.lineTo(396.039917,136.674606);
-path.quadTo(387.290802,136.674606, 380.294495,140.44487);
-path.quadTo(379.623352,140.760971, 378.965302,141.103577);
-path.lineTo(378.917297,141.233856);
-path.quadTo(378.86972,141.206131, 378.822021,141.178574);
-path.quadTo(372.011871,144.761871, 366.608826,151.196014);
-path.lineTo(350,120);
-path.lineTo(369.285553,126.984779);
-path.close();
-path.moveTo(378.917297,141.233871);
-path.lineTo(378.917297,141.233856);
-path.quadTo(378.86972,141.206131, 378.822021,141.178574);
-path.quadTo(372.011871,144.761871, 366.608826,151.196014);
-</div>
-
-<div id="testQuadratic57o">
-path.moveTo(303.12088, 141.299606);
-path.lineTo(330.463562, 217.659027);
-path.lineTo(358.606506, 141.299606);
-path.lineTo(362.874634, 159.705902);
-path.lineTo(335.665344, 233.397751);
-path.lineTo(322.12738, 233.397751);
-path.lineTo(295.718353, 159.505829);
-path.lineTo(295.718353, 240);
-path.lineTo(303.12088, 141.299606);
-path.close();
-path.moveTo(322.935669, 231.030273);
-path.quadTo(312.832214, 220.393295, 312.832214, 203.454178);
-path.quadTo(312.832214, 186.981888, 321.73526, 176.444946);
-path.quadTo(330.638306, 165.90802, 344.509705, 165.90802);
-path.lineTo(371.919067, 205.854996);
-path.lineTo(326.236786, 205.854996);
-path.quadTo(329.104431, 231.663818, 351.512085, 231.663818);
-path.lineTo(322.935669, 231.030273);
-path.close();
-path.moveTo(326.837006, 195.984955);
-path.lineTo(358.78125, 195.984955);
-path.lineTo(343.709442, 175.778046);
-path.quadTo(328.570923, 175.778046, 326.837006, 195.984955);
-path.close();
-</div>
-
-<div id="testQuadratic57s">
-path.moveTo(300.708282,173.46756);
-path.lineTo(303.12088,141.299606);
-path.lineTo(317.770294,182.210785);
-path.quadTo(319.462738,179.134506, 321.73526,176.444946);
-path.quadTo(330.638306,165.90802, 344.509705,165.90802);
-path.lineTo(347.780151,170.674438);
-path.lineTo(358.606506,141.299606);
-path.lineTo(362.874634,159.705902);
-path.lineTo(354.960693,181.139511);
-path.lineTo(371.919067,205.854996);
-path.lineTo(345.834961,205.854996);
-path.lineTo(337.609253,228.13298);
-path.quadTo(342.649323,231.302383, 349.843323,231.626816);
-path.lineTo(336.429047,231.329422);
-path.lineTo(335.665344,233.397751);
-path.lineTo(322.12738,233.397751);
-path.lineTo(320.050781,227.587433);
-path.quadTo(313.982483,219.336182, 313.015503,207.902908);
-path.lineTo(300.708282,173.46756);
-path.close();
-path.moveTo(300.708282,173.46756);
-path.lineTo(295.718353,240);
-path.lineTo(295.718353,159.505829);
-path.lineTo(300.708282,173.46756);
-path.close();
-path.moveTo(349.843323,231.626816);
-path.lineTo(351.512085,231.663818);
-path.quadTo(350.663696,231.663818, 349.843323,231.626816);
-path.close();
-path.moveTo(326.236786,205.854996);
-path.lineTo(330.463562,217.659027);
-path.lineTo(334.814056,205.854996);
-path.lineTo(326.236786,205.854996);
-path.close();
-path.moveTo(334.814056,205.854996);
-path.lineTo(338.451721,195.984955);
-path.lineTo(349.479309,195.984955);
-path.lineTo(352.559326,187.643173);
-path.lineTo(358.78125,195.984955);
-</div>
-
-<div id="testQuadratic58o">
-path.moveTo(283.714233, 240);
-path.lineTo(283.714233, 141.299606);
-path.lineTo(303.12088, 141.299606);
-path.lineTo(330.463562, 217.659027);
-path.lineTo(358.606506, 141.299606);
-path.lineTo(362.874634, 159.705902);
-path.lineTo(335.665344, 233.397751);
-path.lineTo(322.12738, 233.397751);
-path.lineTo(295.718353, 159.505829);
-path.lineTo(295.718353, 240);
-path.lineTo(283.714233, 240);
-path.close();
-path.moveTo(322.935669, 231.030273);
-path.quadTo(312.832214, 220.393295, 312.832214, 203.454178);
-path.quadTo(312.832214, 186.981888, 321.73526, 176.444946);
-path.quadTo(330.638306, 165.90802, 344.509705, 165.90802);
-path.quadTo(357.647522, 165.90802, 364.81665, 175.244537);
-path.lineTo(371.919067, 205.854996);
-path.lineTo(326.236786, 205.854996);
-path.quadTo(329.104431, 231.663818, 351.512085, 231.663818);
-path.lineTo(322.935669, 231.030273);
-path.close();
-path.moveTo(326.837006, 195.984955);
-path.lineTo(358.78125, 195.984955);
-path.quadTo(358.78125, 175.778046, 343.709442, 175.778046);
-path.quadTo(328.570923, 175.778046, 326.837006, 195.984955);
-path.close();
-</div>
-
-<div id="testQuadratic58s">
-path.moveTo(283.714233,240);
-path.lineTo(283.714233,141.299606);
-path.lineTo(303.12088,141.299606);
-path.lineTo(317.770294,182.210785);
-path.quadTo(319.462738,179.134506, 321.73526,176.444946);
-path.quadTo(330.638306,165.90802, 344.509705,165.90802);
-path.quadTo(347.07132,165.90802, 349.406036,166.26297);
-path.lineTo(358.606506,141.299606);
-path.lineTo(362.874634,159.705902);
-path.lineTo(359.116211,169.884979);
-path.quadTo(362.326477,172.001541, 364.81665,175.244537);
-path.lineTo(371.919067,205.854996);
-path.lineTo(345.834961,205.854996);
-path.lineTo(337.609253,228.13298);
-path.quadTo(342.649323,231.302383, 349.843323,231.626816);
-path.lineTo(336.429047,231.329422);
-path.lineTo(335.665344,233.397751);
-path.lineTo(322.12738,233.397751);
-path.lineTo(320.050781,227.587433);
-path.quadTo(313.982483,219.336182, 313.015503,207.902908);
-path.lineTo(295.718353,159.505829);
-path.lineTo(295.718353,240);
-path.lineTo(283.714233,240);
-path.close();
-path.moveTo(349.843323,231.626816);
-path.lineTo(351.512085,231.663818);
-path.quadTo(350.663696,231.663818, 349.843323,231.626816);
-path.close();
-path.moveTo(326.236786,205.854996);
-path.lineTo(330.463562,217.659027);
-path.lineTo(334.814056,205.854996);
-path.lineTo(326.236786,205.854996);
-path.close();
-path.moveTo(334.814056,205.854996);
-path.lineTo(338.451721,195.984955);
-path.lineTo(349.479309,195.984955);
-path.lineTo(355.054535,180.885361);
-path.quadTo(358.78125,185.936935, 358.78125,195.984955);
-</div>
-
-<div id="testQuadratic58a">
-path.moveTo(283.714233,240);
-path.lineTo(283.714233,141.299606);
-path.lineTo(303.12088,141.299606);
-path.lineTo(317.770294,182.210785);
-path.quadTo(319.462738,179.134506, 321.73526,176.444946);
-path.quadTo(330.638306,165.90802, 344.509705,165.90802);
-path.quadTo(347.07132,165.90802, 349.406036,166.26297);
-path.lineTo(358.606506,141.299606);
-path.lineTo(362.874634,159.705902);
-path.lineTo(359.116211,169.884979);
-path.quadTo(362.326477,172.001541, 364.81665,175.244537);
-path.lineTo(371.919067,205.854996);
-path.lineTo(345.834961,205.854996);
-path.lineTo(337.609253,228.13298);
-path.quadTo(342.649323,231.302383, 349.843323,231.626816);
-path.lineTo(336.429047,231.329422);
-path.lineTo(335.665344,233.397751);
-path.lineTo(322.12738,233.397751);
-path.lineTo(320.050781,227.587433);
-path.quadTo(313.982483,219.336182, 313.015503,207.902908);
-path.lineTo(295.718353,159.505829);
-path.lineTo(295.718353,240);
-path.lineTo(283.714233,240);
-path.close();
-path.moveTo(349.843323,231.626816);
-path.lineTo(351.512085,231.663818);
-path.quadTo(350.663696,231.663818, 349.843323,231.626816);
-path.close();
-path.moveTo(349.479309,195.984955);
-path.lineTo(358.78125,195.984955);
-path.quadTo(358.78125,185.936935, 355.054535,180.885361);
-path.lineTo(349.479309,195.984955);
-path.close();
-path.moveTo(345.858368,175.888794);
-path.lineTo(338.451721,195.984955);
-path.lineTo(326.837006,195.984955);
-path.quadTo(328.570923,175.778046, 343.709442,175.778046);
-path.quadTo(344.825195,175.778046, 345.858368,175.888794);
-path.close();
-</div>
-
-<div id="testQuadratic59">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 0);
- path.quadTo(3, 1, 1, 2);
-</div>
-
-<div id="testQuadratic59o">
-path.moveTo(369.863983, 145.645813);
-path.quadTo(382.380371, 121.254936, 406.236359, 121.254936);
-path.quadTo(409.445679, 121.254936, 412.975952, 121.789818);
-path.lineTo(369.863983, 145.645813);
-path.close();
-path.moveTo(369.970581, 137.94342);
-path.quadTo(383.98465, 121.254936, 406.235992, 121.254936);
-path.quadTo(425.705902, 121.254936, 439.71994, 137.087616);
-path.lineTo(369.970581, 137.94342);
-path.close();
-</div>
-
-<div id="testQuadratic59s">
-path.moveTo(369.970581,137.94342);
-path.quadTo(383.98465,121.254936, 406.235992,121.254936);
-path.quadTo(406.237854,121.254936, 406.239746,121.254936);
-path.lineTo(406.239532,121.254936);
-path.quadTo(409.447418,121.255203, 412.975952,121.789818);
-</div>
-
-<div id="testQuadratic60">
-path.moveTo(360.416077, 166.795715);
-path.quadTo(370.126831, 147.872162, 388.635406, 147.872162);
-path.lineTo(360.416077, 166.795715);
-path.close();
-path.moveTo(353.2948, 194.351074);
-path.quadTo(353.2948, 173.767563, 364.167572, 160.819855);
-path.quadTo(375.040314, 147.872162, 392.303894, 147.872162);
-path.lineTo(353.2948, 194.351074);
-path.close();
-</div>
-
-<div id="testQuadratic61">
-path.moveTo(348.781738, 123.864815);
-path.lineTo(369.848602, 123.864815);
-path.lineTo(369.848602, 145.680267);
-path.quadTo(382.360413, 121.298294, 406.207703, 121.298294);
-path.lineTo(348.781738, 123.864815);
-path.close();
-path.moveTo(369.961151, 137.980698);
-path.quadTo(383.970093, 121.298294, 406.213287, 121.298294);
-path.lineTo(369.961151, 137.980698);
-path.close();
-</div>
-
-<div id="testQuadratic62x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 0);
- path.quadTo(3, 1, 1, 2);
- path.close();
-</div>
-
-<div id="testLine1a">
- path.addRect(0, 0, 12, 12, SkPath::kCW_Direction);
- path.addRect(4, 0, 13, 13, SkPath::kCCW_Direction);
- path.close();
-</div>
-
-<div id="testQuadratic63">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(2, 1);
- path.quadTo(2, 1, 2, 2);
- path.close();
-</div>
-
-<div id="testQuadratic64">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(1, 2);
- path.lineTo(2, 2);
- path.quadTo(0, 3, 3, 3);
- path.close();
-</div>
-
-<div id="testQuadratic65">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(2, 1);
- path.lineTo(2, 2);
- path.quadTo(0, 3, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic66">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 1);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(2, 0);
- path.lineTo(1, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic67x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(0, 0, 2, 1);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 0);
- path.quadTo(1, 1, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic68">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 1, 2, 1);
- path.close();
-</div>
-
-<div id="testQuadratic69">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 1);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(2, 0);
- path.lineTo(1, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic70x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 1);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(0, 1, 2, 1);
- path.close();
-</div>
-
-<div id="testQuadratic71">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 1, 3, 1);
- path.close();
-</div>
-
-<div id="testQuadratic72">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 2);
- path.lineTo(1, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic73">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 0, 3);
- path.lineTo(0, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 1, 1);
- path.close();
-</div>
-
-<div id="testQuadratic74">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 3);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic75">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 3);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic76">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 0, 0);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 2);
- path.quadTo(1, 2, 2, 2);
- path.close();
-</div>
-
-<div id="testQuadratic77">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 1);
- path.lineTo(3, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic78">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 2);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic79">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 1, 2);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.quadTo(0, 1, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic80">
- path.moveTo(0, 0);
- path.quadTo(1, 0, 2, 3);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(3, 0);
- path.quadTo(0, 1, 1, 1);
- path.close();
-</div>
-
-<div id="testQuadratic81">
- path.moveTo(0, 0);
- path.quadTo(2, 0, 1, 1);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic82">
- path.moveTo(0, 0);
- path.quadTo(2, 0, 1, 1);
- path.lineTo(0, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.close();
-</div>
-
-<div id="testQuadratic83">
- path.moveTo(0, 0);
- path.quadTo(0, 0, 2, 0);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(0, 1);
- path.lineTo(0, 2);
- path.quadTo(2, 2, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic84">
- path.moveTo(0, 0);
- path.quadTo(2, 0, 1, 1);
- path.lineTo(2, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(2, 0);
- path.quadTo(0, 1, 2, 2);
- path.close();
-</div>
-
-<div id="testQuadratic85">
- path.moveTo(0, 0);
- path.quadTo(3, 0, 1, 1);
- path.lineTo(1, 1);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(3, 0);
- path.quadTo(0, 1, 1, 2);
- path.close();
-</div>
-
-<div id="testQuadratic86">
- path.moveTo(0, 0);
- path.quadTo(0, 1, 1, 1);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.quadTo(1, 1, 1, 3);
- path.close();
-</div>
-
-<div id="testQuadratic87">
- path.moveTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 1);
- path.quadTo(0, 2, 3, 2);
- path.close();
-</div>
-
-<div id="testQuadratic88">
- path.moveTo(0, 0);
- path.quadTo(2, 1, 0, 2);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(1, 1);
- path.quadTo(0, 2, 2, 2);
- path.close();
-</div>
-
-<div id="testQuadratic89x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(3, 1, 2, 2);
- path.lineTo(0, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 1);
- path.quadTo(3, 1, 3, 3);
- path.close();
-</div>
-
-<div id="testQuadratic90x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(0, 0);
- path.quadTo(3, 0, 2, 2);
- path.lineTo(1, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(0, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic91">
- path.moveTo(0, 0);
- path.quadTo(3, 2, 2, 3);
- path.lineTo(2, 3);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(1, 1);
- path.quadTo(2, 1, 2, 3);
- path.close();
-</div>
-
-<div id="testQuadratic92x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.moveTo(1, 0);
- path.quadTo(3, 0, 2, 2);
- path.lineTo(2, 2);
- path.close();
- path.moveTo(2, 0);
- path.lineTo(0, 1);
- path.quadTo(3, 2, 2, 3);
- path.close();
-</div>
-
-<div id="testLine82">
- path.addRect(20, 0, 40, 40, SkPath::kCCWDirection);
- path.addRect(24, 20, 36, 30, SkPath::kCCWDirection);
- path.addRect(24, 32, 33, 36, SkPath::kCCWDirection);
-</div>
-
-<div id="testLine82a">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82b">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82c">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-
-<div id="testLine82d">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82e">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82f">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82g">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine82h">
- SkPath path;
- path.addRect(0, 0, 6, 10, SkPath::kCCW_Direction);
- path.addRect(2, 2, 4, 4, SkPath::kCCW_Direction);
- path.addRect(2, 6, 4, 8, SkPath::kCCW_Direction);
- testSimplifyx(path);
-</div>
-
-<div id="testLine83">
-path.addRect(10, 30, 30, 40, SkPath::kCCW_Direction);
-path.addRect(0, 12, 12, 18, SkPath::kCCW_Direction);
-path.addRect(4, 13, 13, 16, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine84x">
- path.setFillType(SkPath::kEvenOdd_FillType);
- path.addRect(0, 12, 60, 30, SkPath::kCCW_Direction);
- path.addRect(10, 20, 40, 30, SkPath::kCCW_Direction);
- path.addRect(0, 12, 12, 12, SkPath::kCCW_Direction);
- path.addRect(4, 12, 13, 13, SkPath::kCCW_Direction);
-</div>
-
-<div id="testLine85">
- path.addRect(36, 0, 66, 60, SkPath::kCCW_Direction);
- path.addRect(20, 0, 40, 40, SkPath::kCCW_Direction);
- path.addRect(12, 0, 24, 24, SkPath::kCCW_Direction);
- path.addRect(32, 0, 36, 41, SkPath::kCCW_Direction);
-</div>
-
-<div id="testQuadralateral1">
- path.moveTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(0, 0);
- path.lineTo(3, 2);
- path.close();
- path.moveTo(0, 0);
- path.lineTo(2, 1);
- path.lineTo(2, 2);
- path.lineTo(2, 3);
- path.close();
-</div>
-
-<div id="testCubic1">
- path.moveTo(0, 0);
- path.cubicTo(0, 1, 1, 1, 1, 0);
- path.close();
- path.moveTo(1, 0);
- path.cubicTo(0, 0, 0, 1, 1, 1);
- path.close();
-</div>
-
-<div id="testQuadratic93">
- path.moveTo(3, 0);
- path.quadTo(0, 1, 3, 2);
- path.lineTo(0, 3);
- path.close();
- path.moveTo(1, 0);
- path.lineTo(2, 0);
- path.quadTo(1, 1, 2, 2);
- path.close();
-</div>
-
-<div id="cubicOp1d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,2, 1,0, 1,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,1, 1,0, 2,0);
- pathB.close();
-</div>
-
-<div id="cubicOp2d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(0,1, 1,0, 1,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,1, 2,0, 1,0);
- pathB.close();
-</div>
-
-<div id="cubicOp3d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,3, 1,0, 1,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,1, 1,0, 3,2);
- pathB.close();
-</div>
-
-<div id="cubicOp4d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,2, 1,0, 2,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,2, 1,0, 2,0);
- pathB.close();
-</div>
-
-<div id="cubicOp5d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,2, 1,0, 2,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,2, 1,0, 2,0);
- pathB.close();
-</div>
-
-<div id="cubicOp6d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,6, 1,0, 3,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,3, 1,0, 6,0);
- pathB.close();
-</div>
-
-<div id="cubicOp7d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,4, 1,0, 3,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,3, 1,0, 4,3);
- pathB.close();
-</div>
-
-<div id="cubicOp8d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,5, 1,0, 4,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,4, 1,0, 5,0);
- pathB.close();
-</div>
-
-<div id="cubicOp9d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,6, 1,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(1,2, 1,0, 6,1);
- pathB.close();
-</div>
-
-<div id="quadOp9d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.quadTo(1,6, 1.5f,1);
- path.quadTo(1.5f,0.8f, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.quadTo(1,2, 1.4f,1);
- pathB.quadTo(3,0.4f, 6,1);
- pathB.close();
-</div>
-
-<div id="lineOp9d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.lineTo(1,6);
- path.lineTo(1.5f,1);
- path.lineTo(1.8f,0.8f);
- path.lineTo(2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.lineTo(1,2);
- pathB.lineTo(1.4f,1);
- pathB.lineTo(3,0.4f);
- pathB.lineTo(6,1);
- pathB.close();
-</div>
-
-<div id="cubicOp1i">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 1,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(1,2, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp10d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,3, 1,0, 4,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(1,4, 1,0, 3,1);
- pathB.close();
-</div>
-
-<div id="cubicOp11d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,4, 1,0, 5,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(1,5, 1,0, 4,3);
- pathB.close();
-</div>
-
-<div id="cubicOp12d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,6, 1,0, 1,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(0,1, 1,0, 6,1);
- pathB.close();
-</div>
-
-<div id="cubicOp13d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(4,5, 1,0, 5,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(3,5, 1,0, 5,4);
- pathB.close();
-</div>
-
-<div id="cubicOp14d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,2, 2,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,2);
- pathB.cubicTo(1,2, 1,0, 2,0);
- pathB.close();
-</div>
-
-<div id="cubicOp15d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,6, 2,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,2);
- pathB.cubicTo(1,2, 1,0, 6,3);
- pathB.close();
-</div>
-
-<div id="cubicOp16d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(0,1, 3,0, 1,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,3);
- pathB.cubicTo(0,1, 2,0, 1,0);
- pathB.close();
-</div>
-
-<div id="cubicOp17d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(0,2, 4,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(1,2, 2,0, 2,0);
- pathB.close();
-</div>
-
-<div id="cubicOp18d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,5, 2,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,2);
- pathB.cubicTo(1,2, 1,0, 5,3);
- pathB.close();
-</div>
-
-<div id="cubicOp19i">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(0,1, 2,1, 6,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,2);
- pathB.cubicTo(2,6, 2,0, 1,0);
- pathB.close();
-</div>
-
-<div id="cubicOp20d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,1, 6,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(1,2, 1,0, 1,0);
- pathB.close();
-</div>
-
-<div id="cubicOp21d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,1, 2,1, 6,5);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,2);
- pathB.cubicTo(5,6, 1,0, 1,0);
- pathB.close();
-</div>
-
-<div id="cubicOp22d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,3, 3,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,3);
- pathB.cubicTo(1,2, 1,0, 3,2);
- pathB.close();
-</div>
-
-<div id="cubicOp23d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 4,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(1,2, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp24d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 2,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,2);
- pathB.cubicTo(2,3, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp25i">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,4, 5,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,5);
- pathB.cubicTo(2,3, 1,0, 4,2);
- pathB.close();
-</div>
-
-<div id="cubicOp26d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,4, 4,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(2,3, 1,0, 4,3);
- pathB.close();
-</div>
-
-<div id="cubicOp27d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,6, 1,0, 5,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,1);
- pathB.cubicTo(2,5, 1,0, 6,3);
- pathB.close();
-</div>
-
-<div id="cubicOp28u">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,4, 6,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(2,3, 1,0, 4,1);
- pathB.close();
-</div>
-
-<div id="cubicOp29d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,5, 6,0, 4,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(2,4, 1,0, 5,2);
- pathB.close();
-</div>
-
-<div id="cubicOp30d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,5, 6,0, 5,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(3,5, 1,0, 5,2);
- pathB.close();
-</div>
-
-<div id="cubicOp31d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(0,3, 2,1, 4,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,2);
- pathB.cubicTo(0,4, 2,0, 3,0);
- pathB.close();
-</div>
-
-<div id="cubicOp32d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 6,0, 3,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(1,3, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp33i">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 6,0, 3,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(1,3, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp34d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(3,5, 2,1, 3,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,2);
- pathB.cubicTo(1,3, 1,0, 5,3);
- pathB.close();
-</div>
-
-<div id="cubicOp35d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,5, 2,1, 4,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,2);
- pathB.cubicTo(0,4, 1,0, 5,1);
- pathB.close();
-</div>
-
-<div id="cubicOp36u">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,6, 2,0, 5,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,2);
- pathB.cubicTo(1,5, 1,0, 6,1);
- pathB.close();
-</div>
-
-<div id="cubicOp37d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,6, 6,1, 4,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,6);
- pathB.cubicTo(3,4, 1,0, 6,2);
- pathB.close();
-</div>
-
-<div id="cubicOp38d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(0,6, 3,2, 4,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(1,4, 1,0, 6,0);
- pathB.close();
-</div>
-
-<div id="cubicOp39d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,3, 5,1, 4,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,5);
- pathB.cubicTo(3,4, 1,0, 3,2);
- pathB.close();
-</div>
-
-<div id="cubicOp40d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,5, 3,2, 4,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(2,4, 1,0, 5,1);
- pathB.close();
-</div>
-
-<div id="cubicOp41i">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,6, 4,3, 6,4);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(3,4);
- pathB.cubicTo(4,6, 1,0, 6,2);
- pathB.close();
-</div>
-
-<div id="cubicOp42d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,2, 6,5, 5,4);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(5,6);
- pathB.cubicTo(4,5, 1,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp43d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(1,2, 4,0, 3,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(1,3, 2,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp44d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(3,6, 4,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(2,3, 2,0, 6,3);
- pathB.close();
-</div>
-
-<div id="cubicOp45d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(2,4, 4,0, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(2,3, 2,0, 4,2);
- pathB.close();
-</div>
-
-<div id="cubicOp46d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(3,5, 5,0, 4,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,5);
- pathB.cubicTo(2,4, 2,0, 5,3);
- pathB.close();
-</div>
-
-<div id="cubicOp47d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(1,6, 6,2, 5,4);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,6);
- pathB.cubicTo(4,5, 1,0, 6,1);
- pathB.close();
-</div>
-
-<div id="cubicOp48d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(2,3, 5,1, 3,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,5);
- pathB.cubicTo(2,3, 2,0, 3,2);
- pathB.close();
-</div>
-
-<div id="cubicOp49d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(1,5, 3,2, 4,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(1,4, 2,0, 5,1);
- pathB.close();
-</div>
-
-<div id="cubicOp50d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,3);
- path.cubicTo(1,6, 5,0, 5,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,5);
- pathB.cubicTo(1,5, 3,0, 6,1);
- pathB.close();
-</div>
-
-<div id="cubicOp51d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,3);
- path.cubicTo(1,2, 4,1, 6,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(1,4);
- pathB.cubicTo(0,6, 3,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp52d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(1,2, 5,4, 4,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(4,5);
- pathB.cubicTo(3,4, 2,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp53d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,3);
- path.cubicTo(1,2, 5,3, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(3,5);
- pathB.cubicTo(1,2, 3,0, 2,1);
- pathB.close();
-</div>
-
-<div id="cubicOp54d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,4);
- path.cubicTo(1,3, 5,4, 4,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(4,5);
- pathB.cubicTo(2,4, 4,0, 3,1);
- pathB.close();
-</div>
-
-<div id="cubicOp55d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,5);
- path.cubicTo(1,3, 3,2, 5,0);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(0,5, 5,0, 3,1);
- pathB.close();
-</div>
-
-<div id="cubicOp56d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(2,6, 5,0, 2,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,5);
- pathB.cubicTo(1,2, 1,0, 6,2);
- pathB.close();
-</div>
-
-<div id="cubicOp57d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,5);
- path.cubicTo(0,5, 5,4, 6,4);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(4,5);
- pathB.cubicTo(4,6, 5,0, 5,0);
- pathB.close();
-</div>
-
-<div id="cubicOp58d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,5);
- path.cubicTo(3,4, 6,5, 5,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(5,6);
- pathB.cubicTo(3,5, 5,0, 4,3);
- pathB.close();
-</div>
-
-<div id="cubicOp59d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,1);
- path.cubicTo(5,6, 4,0, 4,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,4);
- pathB.cubicTo(1,4, 1,0, 6,5);
- pathB.close();
-</div>
-
-<div id="cubicOp60d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(0,2);
- path.cubicTo(4,6, 6,0, 5,2);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(0,6);
- pathB.cubicTo(2,5, 2,0, 6,4);
- pathB.close();
-</div>
-
-<div id="cubicOp61d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(1,2);
- path.cubicTo(0,5, 3,2, 6,1);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(1,6, 2,1, 5,0);
- pathB.close();
-</div>
-
-<div id="cubicOp62d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(1,3);
- path.cubicTo(5,6, 5,3, 5,4);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(3,5);
- pathB.cubicTo(4,5, 3,1, 6,5);
- pathB.close();
-</div>
-
-<div id="cubicOp63d">
- path.setFillType(SkPath::kWinding_FillType);
- path.moveTo(2,3);
- path.cubicTo(0,4, 3,2, 5,3);
- path.close();
- pathB.setFillType(SkPath::kWinding_FillType);
- pathB.moveTo(2,3);
- pathB.cubicTo(3,5, 3,2, 4,0);
- pathB.close();
-</div>
-
-<div id="testQuadratic94">
- SkPath path;
- path.moveTo(0, 0);
- path.lineTo(8, 8);
- path.quadTo(8, 4, 4, 4);
- path.quadTo(4, 0, 0, 0);
- path.close();
- testSimplify(reporter, path);
-</div>
-
-<div id="testQuadratic95">
- SkPath path;
- path.moveTo(8, 8);
- path.lineTo(0, 0);
- path.quadTo(4, 0, 4, 4);
- path.quadTo(8, 4, 8, 8);
- path.close();
- testSimplify(reporter, path);
-</div>
-
-<div id="testQuadratic96">
- SkPath path;
- path.moveTo(8, 0);
- path.lineTo(0, 8);
- path.quadTo(0, 4, 4, 4);
- path.quadTo(4, 0, 8, 0);
- path.close();
- testSimplify(reporter, path);
-</div>
-
-<div id="testQuadratic97">
- SkPath path;
- path.moveTo(0, 8);
- path.lineTo(8, 0);
- path.quadTo(4, 0, 4, 4);
- path.quadTo(0, 4, 0, 8);
- path.close();
- testSimplify(reporter, path);
-</div>
-
-<div id="testTriangle2">
- path.moveTo(0, 0);
- path.lineTo(1, 0);
- path.lineTo(3, 3);
- path.close();
- path.moveTo(1, 1);
- path.lineTo(2, 3);
- path.lineTo(1, 2);
- path.close();
-</div>
-
-</div>
-
-<script type="text/javascript">
-
-var testDivs = [
- testTriangle2,
- testQuadratic97,
- testQuadratic96,
- testQuadratic95,
- testQuadratic94,
- testLine16,
- cubicOp63d,
- cubicOp62d,
- cubicOp61d,
- cubicOp60d,
- cubicOp59d,
- cubicOp58d,
- cubicOp57d,
- cubicOp56d,
- cubicOp55d,
- cubicOp54d,
- cubicOp53d,
- cubicOp52d,
- cubicOp51d,
- cubicOp50d,
- cubicOp49d,
- cubicOp48d,
- cubicOp47d,
- cubicOp46d,
- cubicOp45d,
- cubicOp44d,
- cubicOp43d,
- cubicOp42d,
- cubicOp41i,
- cubicOp40d,
- cubicOp39d,
- cubicOp38d,
- cubicOp37d,
- cubicOp36u,
- cubicOp35d,
- cubicOp34d,
- cubicOp33i,
- cubicOp32d,
- cubicOp31d,
- cubicOp30d,
- cubicOp29d,
- cubicOp28u,
- cubicOp27d,
- cubicOp26d,
- cubicOp25i,
- cubicOp24d,
- cubicOp23d,
- cubicOp18d,
- cubicOp15d,
- cubicOp14d,
- cubicOp13d,
- cubicOp11d,
- cubicOp9d,
- cubicOp8d,
- cubicOp7d,
- cubicOp6d,
- cubicOp5d,
- cubicOp10d,
- cubicOp22d,
- cubicOp21d,
- cubicOp20d,
- cubicOp19i,
- cubicOp17d,
- cubicOp16d,
- cubicOp12d,
- cubicOp1i,
- lineOp9d,
- quadOp9d,
- cubicOp4d,
- cubicOp3d,
- cubicOp2d,
- cubicOp1d,
- testQuadratic93,
- testCubic1,
- testQuadralateral1,
- testLine85,
- testLine84x,
- testLine83,
- testLine82h,
- testLine82g,
- testLine82f,
- testLine82e,
- testLine82d,
- testLine82c,
- testLine82b,
- testLine82a,
- testLine82,
- testQuadratic92x,
- testQuadratic91,
- testQuadratic90x,
- testQuadratic89x,
- testQuadratic88,
- testQuadratic87,
- testQuadratic86,
- testQuadratic85,
- testQuadratic84,
- testQuadratic83,
- testQuadratic82,
- testQuadratic81,
- testQuadratic80,
- testQuadratic79,
- testQuadratic78,
- testQuadratic77,
- testQuadratic76,
- testQuadratic75,
- testQuadratic74,
- testQuadratic73,
- testQuadratic72,
- testQuadratic71,
- testQuadratic70x,
- testQuadratic69,
- testQuadratic68,
- testQuadratic67x,
- testQuadratic66,
- testQuadratic65,
- testQuadratic64,
- testQuadratic63,
- testLine1a,
- testQuadratic62x,
- testLine81,
- testQuadratic61,
- testQuadratic60,
- testQuadratic59,
- testQuadratic59o,
- testQuadratic59s,
- testQuadratic58o,
- testQuadratic58a,
- testQuadratic58s,
- testQuadratic57o,
- testQuadratic57s,
- testQuadratic56o,
- testQuadratic56s,
- testQuadratic55o,
- testQuadratic55s,
- testQuadratic54,
- testQuadratic53o,
- testQuadratic53s,
- testQuadratic52sa,
- testQuadratic52sb,
- testQuadratic52sc,
- testQuadratic52o,
- testQuadratic52s,
- testQuadratic51,
- testQuadratic50o,
- testQuadratic50s,
- testQuadratic49s,
- testQuadratic48o,
- testQuadratic48s,
- testQuadratic47o,
- testQuadratic47s,
- testQuadratic46o,
- testQuadratic46s,
- testQuadratic45o,
- testQuadratic45s,
- testQuadratic44o,
- testQuadratic44s,
- testQuadratic43o,
- testQuadratic43s,
- testQuadratic42o,
- testQuadratic42s,
- testQuadratic41o,
- testQuadratic41s,
- testQuadratic40xb,
- testQuadratic40xa,
- testQuadratic40x,
- testQuadratic39,
- testQuadratic39a,
- testQuadratic38,
- testQuadratic37,
- testQuadratic36,
- testQuadratic35,
- testQuadratic34,
- testQuadratic33,
- testQuadratic32,
- testQuadratic31,
- testQuadratic30,
- testQuadratic29,
- testQuadratic28,
- testQuadratic27,
- testQuadratic26,
- testQuadratic25,
- testQuadratic24,
- testQuadratic23,
- testQuadratic22,
- testQuadratic21,
- testQuadratic20,
- testQuadratic19,
- testQuadratic18,
- testQuadratic17x,
- testQuadratic16b,
- testQuadratic16a,
- testQuadratic15,
- testQuadratic14,
- testQuadratic13b,
- testQuadratic13a,
- testQuadratic12,
- testQuadratic11b,
- testQuadratic11a,
- testQuadratic10b,
- testQuadratic10a,
- testQuadratic9a,
- testQuadratic9,
- testQuadratic8,
- testQuadratic7,
- testQuadratic6,
- testQuadratic5,
- testQuadratic4x,
- testQuadratic3,
- testQuadratic2,
- testQuadratic1,
- testLine4x,
- testLine3x,
- testLine2x,
- testLine1x,
- testQuadralateral9,
- testQuadralateral8,
- testQuadralateral7,
- testFauxQuadralateral6d,
- testFauxQuadralateral6c,
- testFauxQuadralateral6b,
- testFauxQuadralateral6a,
- testFauxQuadralateral6,
- testQuadralateral6a,
- testQuadralateral6,
- testQuadralateral5,
- testNondegenerate4,
- testNondegenerate3,
- testNondegenerate2,
- testNondegenerate1,
- testDegenerate4,
- testDegenerate3,
- testDegenerate2,
- testDegenerate1,
- testLine79,
- testLine78,
- testLine77,
- testLine76,
- testLine75,
- testLine74,
- testLine73,
- testLine72,
- testLine71,
- testLine70,
- testLine69,
- testLine68f,
- testLine68e,
- testLine68d,
- testLine68c,
- testLine68b,
- testLine68a,
- testLine67,
- testLine66,
- testLine65,
- testLine64,
- testLine63,
- testLine62,
- testLine61,
- testLine60,
- testLine59,
- testLine58,
- testLine57,
- testLine56,
- testLine55,
- testLine54,
- testLine53,
- testLine52,
- testLine51,
- testLine50,
- testLine49,
- testLine48,
- testLine47,
- testLine46,
- testLine45,
- testLine44,
- testLine43,
- testLine42,
- testLine41,
- testLine40,
- testLine39,
- testLine38,
- testLine37,
- testLine36,
- testLine35,
- testLine34,
- testLine33,
- testLine32,
- testLine31,
- testLine30,
- testLine29,
- testLine28,
- testLine24,
- testLine22,
- testLine19,
- testLine17,
- testLine16,
- testLine13,
- testLine12,
- testLine9,
- testLine7b,
- testLine7,
- testLine6,
- testLine5,
- testSimplifyQuadratic21,
- testSimplifyQuadratic20,
- testSimplifyQuadratic19,
- testSimplifyQuadratic18,
- testSimplifyQuadratic17,
- testSimplifyQuadratic16,
- testSimplifyQuadratic15,
- testSimplifyQuadratic14,
- testSimplifyQuadratic13,
- testSimplifyQuadratic12,
- testSimplifyQuadratic11,
- testSimplifyQuadratic10,
- testSimplifyQuadratic9,
- testSimplifyQuadratic8,
- testSimplifyQuadratic7,
- testSimplifyQuadratic6,
- testSimplifyQuadratic5,
- testSimplifyQuadratic4,
- testSimplifyQuadratic3,
- testSimplifyQuadratic2,
- testSimplifyQuadratic1,
-];
-
-var scale, columns, rows, xStart, yStart;
-
-var ticks = 0.1;
-var at_x = 13 + 0.5;
-var at_y = 13 + 0.5;
-var decimal_places = 0; // make this 3 to show more precision
-
-var tests = [];
-var testTitles = [];
-var testIndex = 0;
-var hasXor = false;
-var draw_labels = true;
-
-var ctx;
-
-function parse(test, title) {
- var contours = [];
- var contourStrs = test.split("path.close();");
- var pattern = /-?\d+\.*\d*/g;
- hasXor = test.split("kEvenOdd_FillType").length > 1;
- for (var c in contourStrs) {
- var contour = contourStrs[c];
- var verbStrs = contour.split("path");
- var verbs = [];
- for (var v in verbStrs) {
- var verbStr = verbStrs[v];
- var points = verbStr.match(pattern);
- var pts = [];
- for (var wd in points) {
- var num = parseFloat(points[wd]);
- if (isNaN(num)) continue;
- pts.push(num);
- }
- if (pts.length > 0)
- verbs.push(pts);
- }
- if (verbs.length > 0) {
- var lastIndex = verbs.length - 1;
- var lastVerb = verbs[lastIndex];
- var lastLen = lastVerb.length;
- if (verbs[0][0] != lastVerb[lastLen - 2] && verbs[0][1] != lastVerb[lastLen - 1]) {
- var lastPts = [];
- lastPts.push(verbs[0][0]);
- lastPts.push(verbs[0][1]);
- verbs.push(lastPts);
- }
- contours.push(verbs);
- }
- }
- if (contours.length > 0) {
- tests.push(contours);
- testTitles.push(title);
- }
-}
-
-function parseRect(test, title) {
- var contours = [];
- var rectStrs = test.split("path.addRect");
- var pattern = /-?\d+\.*\d*/g;
- hasXor = test.split("kEvenOdd_FillType").length > 1;
- for (var r in rectStrs) {
- var rect = rectStrs[r];
- var sideStrs = rect.match(pattern);
- var ccw = rect.split("kCCW_Direction").length > 1;
- var sides = [];
- for (var wd in sideStrs) {
- var num = parseFloat(sideStrs[wd]);
- if (isNaN(num)) continue;
- sides.push(num);
- }
- if (sides.length == 0)
- continue;
- var verbs = [];
- var topLeft = [];
- topLeft.push(sides[0]); topLeft.push(sides[1]);
- var topRight = [];
- topRight.push(sides[2]); topRight.push(sides[1]);
- var botLeft = [];
- botLeft.push(sides[0]); botLeft.push(sides[3]);
- var botRight = [];
- botRight.push(sides[2]); botRight.push(sides[3]);
- verbs.push(topLeft);
- if (!ccw) {
- verbs.push(topRight);
- verbs.push(botRight);
- verbs.push(botLeft);
- } else {
- verbs.push(botLeft);
- verbs.push(botRight);
- verbs.push(topRight);
- }
- verbs.push(topLeft);
- contours.push(verbs);
- }
- if (contours.length > 0) {
- tests.push(contours);
- testTitles.push(title);
- }
-}
-
-function init(test) {
- var canvas = document.getElementById('canvas');
- if (!canvas.getContext) return;
- canvas.width = window.innerWidth - at_x;
- canvas.height = window.innerHeight - at_y;
- ctx = canvas.getContext('2d');
- var xmin = Infinity;
- var xmax = -Infinity;
- var ymin = Infinity;
- var ymax = -Infinity;
- for (var contours in test) {
- var contour = test[contours];
- for (var verbs in contour) {
- var verb = contour[verbs];
- var last = verb.length;
- for (var idx = 0; idx < last; idx += 2) {
- xmin = Math.min(xmin, verb[idx]);
- xmax = Math.max(xmax, verb[idx]);
- ymin = Math.min(ymin, verb[idx + 1]);
- ymax = Math.max(ymax, verb[idx + 1]);
- }
- }
- }
- var subscale = 1;
- while ((xmax - xmin) * subscale < 0.1 && (ymax - ymin) * subscale < 0.1) {
- subscale *= 10;
- }
- columns = Math.ceil(xmax) - Math.floor(xmin) + 1;
- rows = Math.ceil(ymax) - Math.floor(ymin) + 1;
- xStart = Math.floor(xmin);
- yStart = Math.floor(ymin);
- var hscale = ctx.canvas.width / columns / ticks;
- var vscale = ctx.canvas.height / rows / ticks;
- scale = Math.floor(Math.min(hscale, vscale)) * subscale;
-}
-
-function drawPoint(px, py, xoffset, yoffset, unit) {
- var label = px.toFixed(decimal_places) + ", " + py.toFixed(decimal_places);
- var _px = px * unit + xoffset;
- var _py = py * unit + yoffset;
- ctx.beginPath();
- ctx.arc(_px, _py, 3, 0, Math.PI*2, true);
- ctx.closePath();
- ctx.fill();
- ctx.fillText(label, _px + 5, _py);
-}
-
-function draw(test, title, _at_x, _at_y, scale) {
- ctx.fillStyle = "rgba(0,0,0, 0.1)";
- ctx.font = "normal 50px Arial";
- ctx.fillText(title, 50, 50);
- ctx.font = "normal 10px Arial";
-
- var unit = scale * ticks;
- ctx.lineWidth = 1;
- var i;
- for (i = 0; i <= rows * ticks; ++i) {
- ctx.strokeStyle = (i % ticks) != 0 ? "rgb(160,160,160)" : "black";
- ctx.beginPath();
- ctx.moveTo(_at_x + 0, _at_y + i * scale);
- ctx.lineTo(_at_x + unit * columns, _at_y + i * scale);
- ctx.stroke();
- }
- for (i = 0; i <= columns * ticks; ++i) {
- ctx.strokeStyle = (i % ticks) != 0 ? "rgb(160,160,160)" : "black";
- ctx.beginPath();
- ctx.moveTo(_at_x + i * scale, _at_y + 0);
- ctx.lineTo(_at_x + i * scale, _at_y + unit * rows);
- ctx.stroke();
- }
-
- var xoffset = xStart * -unit + _at_x;
- var yoffset = yStart * -unit + _at_y;
-
- ctx.fillStyle = "rgb(40,80,60)"
- for (i = 0; i <= columns; i += (1 / ticks))
- {
- num = (xoffset - _at_x) / -unit + i;
- ctx.fillText(num.toFixed(0), i * unit + _at_y - 5, 10);
- }
- for (i = 0; i <= rows; i += (1 / ticks))
- {
- num = (yoffset - _at_x) / -unit + i;
- ctx.fillText(num.toFixed(0), 0, i * unit + _at_y + 0);
- }
-
- ctx.strokeStyle = "red";
- var contours, verbs, pts;
- ctx.beginPath();
- for (contours in test) {
- var contour = test[contours];
- if (contours == 2) ctx.strokeStyle = "blue";
- var first = true;
- for (verbs in contour) {
- var verb = contour[verbs];
- switch (verb.length) {
- case 2:
- if (first) {
- ctx.moveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit);
- first = false;
- } else
- ctx.lineTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit);
- break;
- case 4:
- ctx.quadraticCurveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit,
- xoffset + verb[2] * unit, yoffset + verb[3] * unit);
- break;
- case 6:
- ctx.bezierCurveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit,
- xoffset + verb[2] * unit, yoffset + verb[3] * unit,
- xoffset + verb[4] * unit, yoffset + verb[5] * unit);
- break;
- }
- }
- ctx.closePath();
- }
- // uncomment if ever part of the standard
- // ctx.fillRule=hasXor ? evenodd : nonzero;
- ctx.stroke();
- ctx.fillStyle="rgba(192,192,255, 0.3)";
- ctx.fill();
-
- if (!draw_labels) {
- return;
- }
- ctx.fillStyle="blue";
- for (contours in test) {
- var contour = test[contours];
- for (verbs in contour) {
- var verb = contour[verbs];
- for (i = 0; i < verb.length; i += 2) {
- x = verb[i];
- y = verb[i + 1];
- drawPoint(x, y, xoffset, yoffset, unit);
- }
- }
- }
-}
-
-var mouseX = Infinity, mouseY;
-
-function calcXY() {
- var e = window.event;
- var tgt = e.target || e.srcElement;
- var left = tgt.offsetLeft;
- var top = tgt.offsetTop;
- var unit = scale * ticks;
- mouseX = (e.clientX - left - Math.ceil(at_x) + 1) / unit + xStart;
- mouseY = (e.clientY - top - Math.ceil(at_y)) / unit + yStart;
-}
-
-function handleMouseOver() {
- calcXY();
- var num = mouseX.toFixed(3) + ", " + mouseY.toFixed(3);
- ctx.beginPath();
- ctx.rect(300,0,72,9);
- ctx.fillStyle="white";
- ctx.fill();
- ctx.fillStyle="black";
- ctx.fillText(num, 300, 7);
-}
-
-function handleMouseClick() {
- calcXY();
-// drawInset();
-}
-
-function drawTop() {
- init(tests[testIndex]);
- redraw();
-}
-
-function redraw() {
- ctx.beginPath();
- ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);
- ctx.fillStyle="white";
- ctx.fill();
- draw(tests[testIndex], testTitles[testIndex], at_x, at_y, scale);
-// if (insetScale != scale && mouseX != Infinity)
-// drawInset();
-}
-
-function doKeyPress(evt) {
- var char = String.fromCharCode(evt.charCode);
- switch (char) {
- case 'N':
- testIndex += 9;
- case 'n':
- if (++testIndex >= tests.length)
- testIndex = 0;
- mouseX = Infinity;
- drawTop();
- break;
- case 'P':
- testIndex -= 9;
- case 'p':
- if (--testIndex < 0)
- testIndex = tests.length - 1;
- mouseX = Infinity;
- drawTop();
- break;
- case 'T':
- case 't':
- break;
- case '-':
- drawTop();
- break;
- case '=':
- case '+':
- drawTop();
- break;
- case 'x':
- draw_labels ^= true;
- drawTop();
- break;
- }
-}
-
-function start() {
- for (i = 0; i < testDivs.length; ++i) {
- var title = testDivs[i].id.toString();
- var str = testDivs[i].firstChild.data;
- if (str.split("addRect").length > 1) {
- parseRect(str, title);
- } else {
- parse(str, title);
- }
- }
- drawTop();
- window.addEventListener('keypress', doKeyPress, true);
- window.onresize = function() {
- drawTop();
- }
-}
-
-</script>
-</head>
-
-<body onLoad="start();">
-<canvas id="canvas" width="750" height="500"
- onmousemove="handleMouseOver()"
- onclick="handleMouseClick()"
- ></canvas >
-</body>
-</html>