more simplify bugs
authorCary Clark <caryclark@google.com>
Wed, 14 Dec 2016 16:56:16 +0000 (11:56 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Wed, 14 Dec 2016 17:26:58 +0000 (17:26 +0000)
SkOpAngle::alignmentSameSide()
Shifting an edge to align it for angle sorting may move a compared edge to the opposite side.
For lines that are shifted, check to see if this is so.

class SkOpContourBuilder
If the path contains a pair of lines that cancel, skip them as early as possible.
While not strictly necessary, this optimization is cheap and makes debugging much easier.

SkOpEdgeBuilder::walk()
  case SkPath::kCubic_Verb:
If max curvature or inflections break a cubic into pieces, make sure that the pieces are
large enough to process. If not, add the broken piece back to a neighbor.

Correct debugging that had gone stale.
Add active span debugging cache so only changes are shown.

TBR=reed@google.com
BUG=skia:6401

Change-Id: I766f77e4fb9b76537cf5464961addb103114f5db
Reviewed-on: https://skia-review.googlesource.com/5764
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

src/pathops/SkOpAngle.cpp
src/pathops/SkOpAngle.h
src/pathops/SkOpContour.cpp
src/pathops/SkOpContour.h
src/pathops/SkOpEdgeBuilder.cpp
src/pathops/SkOpEdgeBuilder.h
src/pathops/SkOpSegment.h
src/pathops/SkPathOpsDebug.cpp
src/pathops/SkPathOpsDebug.h
tests/PathOpsSimplifyTest.cpp
tools/pathops_visualizer.htm

index 5ebf913..c07e8cc 100644 (file)
@@ -140,6 +140,8 @@ bool SkOpAngle::after(SkOpAngle* test) {
         int trGap = (rh->fSectorStart - fSectorStart + 32) & 0x1f;
         trOrder = trGap > 20 ? 0 : trGap > 11 ? -1 : 1;
     }
+    this->alignmentSameSide(lh, &ltOrder);
+    this->alignmentSameSide(rh, &trOrder);
     if (lrOrder >= 0 && ltOrder >= 0 && trOrder >= 0) {
         return COMPARE_RESULT(7, lrOrder ? (ltOrder & trOrder) : (ltOrder | trOrder));
     }
@@ -212,6 +214,40 @@ int SkOpAngle::allOnOneSide(const SkOpAngle* test) {
     return -1;
 }
 
+// To sort the angles, all curves are translated to have the same starting point.
+// If the curve's control point in its original position is on one side of a compared line,
+// and translated is on the opposite side, reverse the previously computed order.
+void SkOpAngle::alignmentSameSide(const SkOpAngle* test, int* order) const {
+    if (*order < 0) {
+        return;
+    }
+    if (fPart.isCurve()) {
+        // This should support all curve types, but only bug that requires this has lines
+        // Turning on for curves causes existing tests to fail
+        return;
+    }
+    if (test->fPart.isCurve()) {
+        return;
+    }
+    const SkDPoint& xOrigin = test->fPart.fCurve.fLine[0];
+    const SkDPoint& oOrigin = test->fOriginalCurvePart.fLine[0];
+    if (xOrigin == oOrigin) {
+        return;
+    }
+    int iMax = SkPathOpsVerbToPoints(this->segment()->verb());
+    SkDVector xLine = test->fPart.fCurve.fLine[1] - xOrigin;
+    SkDVector oLine = test->fOriginalCurvePart.fLine[1] - oOrigin;
+    for (int index = 1; index <= iMax; ++index) {
+        const SkDPoint& testPt = fPart.fCurve[index];
+        double xCross = oLine.crossCheck(testPt - xOrigin);
+        double oCross = xLine.crossCheck(testPt - oOrigin);
+        if (oCross * xCross < 0) {
+            *order ^= 1;
+            break;
+        }
+    }
+}
+
 bool SkOpAngle::checkCrossesZero() const {
     int start = SkTMin(fSectorStart, fSectorEnd);
     int end = SkTMax(fSectorStart, fSectorEnd);
index 3cebfff..d8615c3 100644 (file)
@@ -97,6 +97,7 @@ public:
 
 private:
     bool after(SkOpAngle* test);
+    void alignmentSameSide(const SkOpAngle* test, int* order) const;
     int allOnOneSide(const SkOpAngle* test);
     bool checkCrossesZero() const;
     bool checkParallel(SkOpAngle* );
index 981bd29..fbe9f4d 100644 (file)
 #include "SkReduceOrder.h"
 #include "SkTSort.h"
 
-SkOpSegment* SkOpContour::addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight) {
-    SkChunkAlloc* allocator = this->globalState()->allocator();
-    switch (verb) {
-        case SkPath::kLine_Verb: {
-            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 2);
-            memcpy(ptStorage, pts, sizeof(SkPoint) * 2);
-            return appendSegment().addLine(ptStorage, this);
-        } break;
-        case SkPath::kQuad_Verb: {
-            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 3);
-            memcpy(ptStorage, pts, sizeof(SkPoint) * 3);
-            return appendSegment().addQuad(ptStorage, this);
-        } break;
-        case SkPath::kConic_Verb: {
-            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 3);
-            memcpy(ptStorage, pts, sizeof(SkPoint) * 3);
-            return appendSegment().addConic(ptStorage, weight, this);
-        } break;
-        case SkPath::kCubic_Verb: {
-            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 4);
-            memcpy(ptStorage, pts, sizeof(SkPoint) * 4);
-            return appendSegment().addCubic(ptStorage, this);
-        } break;
-        default:
-            SkASSERT(0);
-    }
-    return nullptr;
-}
-
 void SkOpContour::toPath(SkPathWriter* path) const {
     const SkOpSegment* segment = &fHead;
     do {
@@ -68,3 +39,69 @@ SkOpSegment* SkOpContour::undoneSegment(SkOpSpanBase** startPtr, SkOpSpanBase**
     } while ((segment = segment->next()));
     return nullptr;
 }
+
+void SkOpContourBuilder::addConic(SkPoint pts[3], SkScalar weight) {
+    this->flush();
+    fContour->addConic(pts, weight);
+}
+
+void SkOpContourBuilder::addCubic(SkPoint pts[4]) {
+    this->flush();
+    fContour->addCubic(pts);
+}
+
+void SkOpContourBuilder::addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight) {
+    if (SkPath::kLine_Verb == verb) {
+        this->addLine(pts);
+        return;
+    }
+    SkChunkAlloc* allocator = fContour->globalState()->allocator();
+    switch (verb) {
+        case SkPath::kQuad_Verb: {
+            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 3);
+            memcpy(ptStorage, pts, sizeof(SkPoint) * 3);
+            this->addQuad(ptStorage);
+        } break;
+        case SkPath::kConic_Verb: {
+            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 3);
+            memcpy(ptStorage, pts, sizeof(SkPoint) * 3);
+            this->addConic(ptStorage, weight);
+        } break;
+        case SkPath::kCubic_Verb: {
+            SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 4);
+            memcpy(ptStorage, pts, sizeof(SkPoint) * 4);
+            this->addCubic(ptStorage);
+        } break;
+        default:
+            SkASSERT(0);
+    }
+}
+
+void SkOpContourBuilder::addLine(const SkPoint pts[2]) {
+    // if the previous line added is the exact opposite, eliminate both
+    if (fLastIsLine) {
+        if (fLastLine[0] == pts[1] && fLastLine[1] == pts[0]) {
+            fLastIsLine = false;
+            return;
+        } else {
+            flush();
+        }
+    }
+    memcpy(fLastLine, pts, sizeof(fLastLine));
+    fLastIsLine = true;
+}
+
+void SkOpContourBuilder::addQuad(SkPoint pts[3]) {
+    this->flush();
+    fContour->addQuad(pts);
+}
+
+void SkOpContourBuilder::flush() {
+    if (!fLastIsLine)
+        return;
+    SkChunkAlloc* allocator = fContour->globalState()->allocator();
+    SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 2);
+    memcpy(ptStorage, fLastLine, sizeof(fLastLine));
+    (void) fContour->addLine(ptStorage);
+    fLastIsLine = false;
+}
index f6c879f..8596002 100644 (file)
@@ -41,8 +41,6 @@ public:
         appendSegment().addCubic(pts, this);
     }
 
-    SkOpSegment* addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight = 1);
-
     SkOpSegment* addLine(SkPoint pts[2]) {
         SkASSERT(pts[0] != pts[1]);
         return appendSegment().addLine(pts, this);
@@ -123,10 +121,10 @@ public:
     }
 
 #if DEBUG_ACTIVE_SPANS
-    void debugShowActiveSpans() {
+    void debugShowActiveSpans(SkString* str) {
         SkOpSegment* segment = &fHead;
         do {
-            segment->debugShowActiveSpans();
+            segment->debugShowActiveSpans(str);
         } while ((segment = segment->next()));
     }
 #endif
@@ -372,7 +370,7 @@ public:
     void toPath(SkPathWriter* path) const;
     SkOpSegment* undoneSegment(SkOpSpanBase** startPtr, SkOpSpanBase** endPtr);
 
-private:
+protected:
     SkOpGlobalState* fState;
     SkOpSegment fHead;
     SkOpSegment* fTail;
@@ -429,4 +427,25 @@ public:
 
 };
 
+class SkOpContourBuilder {
+public:
+    SkOpContourBuilder(SkOpContour* contour)
+        : fContour(contour)
+        , fLastIsLine(false) {
+    }
+
+    void addConic(SkPoint pts[3], SkScalar weight);
+    void addCubic(SkPoint pts[4]);
+    void addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight = 1);
+    void addLine(const SkPoint pts[2]);
+    void addQuad(SkPoint pts[3]);
+    void flush();
+    SkOpContour* contour() { return fContour; }
+    void setContour(SkOpContour* contour) { flush(); fContour = contour; }
+protected:
+    SkOpContour* fContour;
+    SkPoint fLastLine[2];
+    bool fLastIsLine;
+};
+
 #endif
index e46f08f..77c949b 100644 (file)
@@ -9,7 +9,6 @@
 #include "SkReduceOrder.h"
 
 void SkOpEdgeBuilder::init() {
-    fCurrentContour = fContoursHead;
     fOperand = false;
     fXorMask[0] = fXorMask[1] = (fPath->getFillType() & 1) ? kEvenOdd_PathOpsMask
             : kWinding_PathOpsMask;
@@ -52,8 +51,9 @@ bool SkOpEdgeBuilder::finish() {
         return false;
     }
     complete();
-    if (fCurrentContour && !fCurrentContour->count()) {
-        fContoursHead->remove(fCurrentContour);
+    SkOpContour* contour = fContourBuilder.contour();
+    if (contour && !contour->count()) {
+        fContoursHead->remove(contour);
     }
     return true;
 }
@@ -178,6 +178,7 @@ bool SkOpEdgeBuilder::walk() {
     SkPoint* pointsPtr = fPathPts.begin() - 1;
     SkScalar* weightPtr = fWeights.begin();
     SkPath::Verb verb;
+    SkOpContour* contour = fContourBuilder.contour();
     while ((verb = (SkPath::Verb) *verbPtr) != SkPath::kDone_Verb) {
         if (verbPtr == endOfFirstHalf) {
             fOperand = true;
@@ -185,22 +186,22 @@ bool SkOpEdgeBuilder::walk() {
         verbPtr++;
         switch (verb) {
             case SkPath::kMove_Verb:
-                if (fCurrentContour && fCurrentContour->count()) {
+                if (contour && contour->count()) {
                     if (fAllowOpenContours) {
                         complete();
                     } else if (!close()) {
                         return false;
                     }
                 }
-                if (!fCurrentContour) {
-                    fCurrentContour = fContoursHead->appendContour();
+                if (!contour) {
+                    fContourBuilder.setContour(contour = fContoursHead->appendContour());
                 }
-                fCurrentContour->init(fGlobalState, fOperand,
+                contour->init(fGlobalState, fOperand,
                     fXorMask[fOperand] == kEvenOdd_PathOpsMask);
                 pointsPtr += 1;
                 continue;
             case SkPath::kLine_Verb:
-                fCurrentContour->addLine(pointsPtr);
+                fContourBuilder.addLine(pointsPtr);
                 break;
             case SkPath::kQuad_Verb:
                 {
@@ -220,14 +221,14 @@ bool SkOpEdgeBuilder::walk() {
                         SkPoint* curve1 = v1 != SkPath::kLine_Verb ? &pair[0] : cStorage[0];
                         SkPoint* curve2 = v2 != SkPath::kLine_Verb ? &pair[2] : cStorage[1];
                         if (can_add_curve(v1, curve1) && can_add_curve(v2, curve2)) {
-                            fCurrentContour->addCurve(v1, curve1);
-                            fCurrentContour->addCurve(v2, curve2);
+                            fContourBuilder.addCurve(v1, curve1);
+                            fContourBuilder.addCurve(v2, curve2);
                             break;
                         }
                     }
                 }
             addOneQuad:
-                fCurrentContour->addQuad(pointsPtr);
+                fContourBuilder.addQuad(pointsPtr);
                 break;
             case SkPath::kConic_Verb: {
                 SkVector v1 = pointsPtr[1] - pointsPtr[0];
@@ -241,7 +242,7 @@ bool SkOpEdgeBuilder::walk() {
                         SkConic pair[2];
                         if (!conic.chopAt(maxCurvature, pair)) {
                             // if result can't be computed, use original
-                            fCurrentContour->addConic(pointsPtr, weight);
+                            fContourBuilder.addConic(pointsPtr, weight);
                             break;
                         }
                         SkPoint cStorage[2][3];
@@ -250,13 +251,13 @@ bool SkOpEdgeBuilder::walk() {
                         SkPoint* curve1 = v1 != SkPath::kLine_Verb ? pair[0].fPts : cStorage[0];
                         SkPoint* curve2 = v2 != SkPath::kLine_Verb ? pair[1].fPts : cStorage[1];
                         if (can_add_curve(v1, curve1) && can_add_curve(v2, curve2)) {
-                            fCurrentContour->addCurve(v1, curve1, pair[0].fW);
-                            fCurrentContour->addCurve(v2, curve2, pair[1].fW);
+                            fContourBuilder.addCurve(v1, curve1, pair[0].fW);
+                            fContourBuilder.addCurve(v2, curve2, pair[1].fW);
                             break;
                         }
                     }
                 }
-                fCurrentContour->addConic(pointsPtr, weight);
+                fContourBuilder.addConic(pointsPtr, weight);
                 } break;
             case SkPath::kCubic_Verb:
                 {
@@ -266,42 +267,89 @@ bool SkOpEdgeBuilder::walk() {
                     SkScalar splitT[3];
                     int breaks = SkDCubic::ComplexBreak(pointsPtr, splitT);
                     if (!breaks) {
-                        fCurrentContour->addCubic(pointsPtr);
+                        fContourBuilder.addCubic(pointsPtr);
                         break;
                     }
+                    SkASSERT(breaks <= (int) SK_ARRAY_COUNT(splitT));
+                    struct Splitsville {
+                        double fT[2];
+                        SkPoint fPts[4];
+                        SkPoint fReduced[4];
+                        SkPath::Verb fVerb;
+                        bool fCanAdd;
+                    } splits[3];
+                    SkASSERT(SK_ARRAY_COUNT(splits) == SK_ARRAY_COUNT(splitT));
                     for (int index = 0; index <= breaks; ++index) {
-                        double t1 = index ? splitT[index - 1] : 0;
-                        double t2 = index < breaks ? splitT[index] : 1;
-                        SkDCubic part = SkDCubic::SubDivide(pointsPtr, t1, t2);
-                        SkPoint pts[4];
-                        if (!part.toFloatPoints(pts)) {
+                        Splitsville* split = &splits[index];
+                        split->fT[0] = index ? splitT[index - 1] : 0;
+                        split->fT[1] = index < breaks ? splitT[index] : 1;
+                        SkDCubic part = SkDCubic::SubDivide(pointsPtr, split->fT[0], split->fT[1]);
+                        if (!part.toFloatPoints(split->fPts)) {
                             return false;
                         }
-                        SkPoint reduced[4];
-                        SkPath::Verb verb = SkReduceOrder::Cubic(pts, reduced);
-                        SkPoint* curve = verb == SkPath::kCubic_Verb ? pts : reduced;
-                        if (can_add_curve(verb, curve)) {
-                            fCurrentContour->addCurve(verb, curve);
-                        } 
+                        split->fVerb = SkReduceOrder::Cubic(split->fPts, split->fReduced);
+                        SkPoint* curve = SkPath::kCubic_Verb == verb
+                                ? split->fPts : split->fReduced;
+                        split->fCanAdd = can_add_curve(split->fVerb, curve);
+                    }
+                    for (int index = 0; index <= breaks; ++index) {
+                        Splitsville* split = &splits[index];
+                        if (!split->fCanAdd) {
+                            continue;
+                        }
+                        int prior = index;
+                        while (prior > 0 && !splits[prior - 1].fCanAdd) {
+                            --prior;
+                        }
+                        if (prior < index) {
+                            split->fT[0] = splits[prior].fT[0];
+                        }
+                        int next = index;
+                        while (next < breaks && !splits[next + 1].fCanAdd) {
+                            ++next;
+                        }
+                        if (next > index) {
+                            split->fT[1] = splits[next].fT[1];
+                        }
+                        if (prior < index || next > index) {
+                            if (0 == split->fT[0] && 1 == split->fT[1]) {
+                                fContourBuilder.addCubic(pointsPtr);
+                                break;
+                            }
+                            SkDCubic part = SkDCubic::SubDivide(pointsPtr, split->fT[0],
+                                    split->fT[1]);
+                            if (!part.toFloatPoints(split->fPts)) {
+                                return false;
+                            }
+                            split->fVerb = SkReduceOrder::Cubic(split->fPts, split->fReduced);
+                        }
+                        SkPoint* curve = SkPath::kCubic_Verb == split->fVerb
+                                ? split->fPts : split->fReduced;
+                        SkAssertResult(can_add_curve(split->fVerb, curve));
+                        fContourBuilder.addCurve(split->fVerb, curve);
                     }
                 }
                 break;
             case SkPath::kClose_Verb:
-                SkASSERT(fCurrentContour);
+                SkASSERT(contour);
                 if (!close()) {
                     return false;
                 }
+                contour = nullptr;
                 continue;
             default:
                 SkDEBUGFAIL("bad verb");
                 return false;
         }
-        SkASSERT(fCurrentContour);
-        fCurrentContour->debugValidate();
+        SkASSERT(contour);
+        if (contour->count()) {
+            contour->debugValidate();
+        }
         pointsPtr += SkPathOpsVerbToPoints(verb);
     }
-   if (fCurrentContour && fCurrentContour->count() &&!fAllowOpenContours && !close()) {
-       return false;
-   }
-   return true;
+    fContourBuilder.flush();
+    if (contour && contour->count() &&!fAllowOpenContours && !close()) {
+        return false;
+    }
+    return true;
 }
index c6fc7dc..a71001f 100644 (file)
@@ -16,6 +16,7 @@ public:
             SkOpGlobalState* globalState)
         : fGlobalState(globalState)
         , fPath(path.nativePath())
+        , fContourBuilder(contours2)
         , fContoursHead(contours2)
         , fAllowOpenContours(true) {
         init();
@@ -24,6 +25,7 @@ public:
     SkOpEdgeBuilder(const SkPath& path, SkOpContourHead* contours2, SkOpGlobalState* globalState)
         : fGlobalState(globalState)
         , fPath(&path)
+        , fContourBuilder(contours2)
         , fContoursHead(contours2)
         , fAllowOpenContours(false) {
         init();
@@ -32,9 +34,11 @@ public:
     void addOperand(const SkPath& path);
 
     void complete() {
-        if (fCurrentContour && fCurrentContour->count()) {
-            fCurrentContour->complete();
-            fCurrentContour = nullptr;
+        fContourBuilder.flush();
+        SkOpContour* contour = fContourBuilder.contour();
+        if (contour && contour->count()) {
+            contour->complete();
+            fContourBuilder.setContour(nullptr);
         }
     }
 
@@ -59,7 +63,7 @@ private:
     SkTDArray<SkPoint> fPathPts;
     SkTDArray<SkScalar> fWeights;
     SkTDArray<uint8_t> fPathVerbs;
-    SkOpContour* fCurrentContour;
+    SkOpContourBuilder fContourBuilder;
     SkOpContourHead* fContoursHead;
     SkPathOpsMask fXorMask[2];
     int fSecondHalf;
index e9618ce..116a630 100644 (file)
@@ -158,7 +158,7 @@ public:
     const SkOpSegment* debugSegment(int id) const;
 
 #if DEBUG_ACTIVE_SPANS
-    void debugShowActiveSpans() const;
+    void debugShowActiveSpans(SkString* str) const;
 #endif
 #if DEBUG_MARK_DONE
     void debugShowNewWinding(const char* fun, const SkOpSpan* span, int winding);
index 0906c45..45a1138 100644 (file)
@@ -63,6 +63,10 @@ bool SkPathOpsDebug::ChaseContains(const SkTDArray<SkOpSpanBase* >& chaseArray,
     return false;
 }
 #endif
\r
+#if DEBUG_ACTIVE_SPANS\r
+SkString SkPathOpsDebug::gActiveSpans;\r
+#endif
 
 #if DEBUG_COIN
 
@@ -324,10 +328,20 @@ void SkOpGlobalState::debugAddToCoinChangedDict() {
 
 void SkPathOpsDebug::ShowActiveSpans(SkOpContourHead* contourList) {
 #if DEBUG_ACTIVE_SPANS
+    SkString str;
     SkOpContour* contour = contourList;
     do {
-        contour->debugShowActiveSpans();
+        contour->debugShowActiveSpans(&str);
     } while ((contour = contour->next()));
+    if (!gActiveSpans.equals(str)) {\r
+        const char* s = str.c_str();\r
+        const char* end;\r
+        while ((end = strchr(s, '\n'))) {\r
+            SkDebugf("%.*s", end - s + 1, s);\r
+            s = end + 1;\r
+        }\r
+        gActiveSpans.set(str);\r
+    }\r
 #endif
 }
 
@@ -358,6 +372,7 @@ void SkPathOpsDebug::CheckHealth(SkOpContourHead* contourList) {
     for (int index = 0; index < kGlitchType_Count; ++index) {
         SkDebugf(mask & (1 << index) ? "x" : "-");
     }
+    SkDebugf(" %s\n", contourList->globalState()->debugCoinDictEntry().fFunctionName);
     for (int index = 0; index < glitches.fGlitches.count(); ++index) {
         const SpanGlitch& glitch = glitches.fGlitches[index];
         SkDebugf("%02d: ", index);
@@ -953,8 +968,8 @@ void SkOpSegment::debugMoveMultiples(SkPathOpsDebug::GlitchLog* glitches) const
     const SkOpSpanBase* test = &fHead;
     do {
         int addCount = test->spanAddsCount();
-        SkASSERT(addCount >= 1);
-        if (addCount == 1) {
+//        SkASSERT(addCount >= 1);
+        if (addCount <= 1) {
             continue;
         }
         const SkOpPtT* startPtT = test->ptT();
@@ -1117,7 +1132,7 @@ void SkOpSegment::debugSetCoinT(int index, SkScalar t) const {
 #endif
 
 #if DEBUG_ACTIVE_SPANS
-void SkOpSegment::debugShowActiveSpans() const {
+void SkOpSegment::debugShowActiveSpans(SkString* str) const {
     debugValidate();
     if (done()) {
         return;
@@ -1134,34 +1149,34 @@ void SkOpSegment::debugShowActiveSpans() const {
         }
         lastId = this->debugID();
         lastT = span->t();
-        SkDebugf("%s id=%d", __FUNCTION__, this->debugID());
+        str->appendf("%s id=%d", __FUNCTION__, this->debugID());
         // since endpoints may have be adjusted, show actual computed curves
         SkDCurve curvePart;
         this->subDivide(span, span->next(), &curvePart);
         const SkDPoint* pts = curvePart.fCubic.fPts;
-        SkDebugf(" (%1.9g,%1.9g", pts[0].fX, pts[0].fY);
+        str->appendf(" (%1.9g,%1.9g", pts[0].fX, pts[0].fY);
         for (int vIndex = 1; vIndex <= SkPathOpsVerbToPoints(fVerb); ++vIndex) {
-            SkDebugf(" %1.9g,%1.9g", pts[vIndex].fX, pts[vIndex].fY);
+            str->appendf(" %1.9g,%1.9g", pts[vIndex].fX, pts[vIndex].fY);
         }
         if (SkPath::kConic_Verb == fVerb) {
-            SkDebugf(" %1.9gf", curvePart.fConic.fWeight);
+            str->appendf(" %1.9gf", curvePart.fConic.fWeight);
         }
-        SkDebugf(") t=%1.9g tEnd=%1.9g", span->t(), span->next()->t());
+        str->appendf(") t=%1.9g tEnd=%1.9g", span->t(), span->next()->t());
         if (span->windSum() == SK_MinS32) {
-            SkDebugf(" windSum=?");
+            str->appendf(" windSum=?");
         } else {
-            SkDebugf(" windSum=%d", span->windSum());
+            str->appendf(" windSum=%d", span->windSum());
         }
         if (span->oppValue() && span->oppSum() == SK_MinS32) {
-            SkDebugf(" oppSum=?");
+            str->appendf(" oppSum=?");
         } else if (span->oppValue() || span->oppSum() != SK_MinS32) {
-            SkDebugf(" oppSum=%d", span->oppSum());
+            str->appendf(" oppSum=%d", span->oppSum());
         }
-        SkDebugf(" windValue=%d", span->windValue());
+        str->appendf(" windValue=%d", span->windValue());
         if (span->oppValue() || span->oppSum() != SK_MinS32) {
-            SkDebugf(" oppValue=%d", span->oppValue());
+            str->appendf(" oppValue=%d", span->oppValue());
         }
-        SkDebugf("\n");
+        str->appendf("\n");
    } while ((span = span->next()->upCastable()));
 }
 #endif
@@ -1619,7 +1634,7 @@ void SkOpCoincidence::debugAddExpanded(SkPathOpsDebug::GlitchLog* log) const {
         const SkOpPtT* oStartPtT = coin->oppPtTStart();
         double priorT = startPtT->fT;
         double oPriorT = oStartPtT->fT;
-        FAIL_IF(startPtT->contains(oStartPtT), coin);
+        FAIL_IF(!startPtT->contains(oStartPtT), coin);
         SkOPASSERT(coin->coinPtTEnd()->contains(coin->oppPtTEnd()));
         const SkOpSpanBase* start = startPtT->span();
         const SkOpSpanBase* oStart = oStartPtT->span();
index aba02b1..97fa534 100644 (file)
@@ -82,10 +82,10 @@ class SkOpContourHead;
 #define DEBUG_ALIGNMENT 0
 #define DEBUG_ANGLE 1
 #define DEBUG_ASSEMBLE 1
-#define DEBUG_COINCIDENCE 01
+#define DEBUG_COINCIDENCE 1
 #define DEBUG_COINCIDENCE_DUMP 0
 #define DEBUG_COINCIDENCE_ORDER 0  // tight arc quads may generate out-of-order coincdence spans
-#define DEBUG_COINCIDENCE_VERBOSE 01
+#define DEBUG_COINCIDENCE_VERBOSE 1
 #define DEBUG_CUBIC_BINARY_SEARCH 0
 #define DEBUG_CUBIC_SPLIT 1
 #define DEBUG_DUMP_VERIFY 0
@@ -394,6 +394,10 @@ public:
     static void VerifySimplify(const SkPath& path, const SkPath& result);
 #endif
 
+#if DEBUG_ACTIVE_SPANS\r
+    static SkString gActiveSpans;\r
+#endif
+
 };
 
 struct SkDQuad;
index 9ba299d..9f9e832 100644 (file)
@@ -5775,13 +5775,1159 @@ path.lineTo(451.385f, 296.531f);
 path.lineTo(391.127f, 334.437f);\r
 path.lineTo(390.729f, 333.781f);\r
 path.close();
-}
+    testSimplify(reporter, path, filename);
+}\r
+
+static void joel_4(skiatest::Reporter* reporter, const char* filename) {
+    SkPath path;
+    path.setFillType((SkPath::FillType) 0);
+path.moveTo(SkBits2Float(0x4199d4fe), SkBits2Float(0x4265ac08));  // 19.229f, 57.418f\r
+path.cubicTo(SkBits2Float(0x419be979), SkBits2Float(0x426574bc), SkBits2Float(0x419c2b02), SkBits2Float(0x42653c6a), SkBits2Float(0x419af5c3), SkBits2Float(0x42645f3b));  // 19.489f, 57.364f, 19.521f, 57.309f, 19.37f, 57.093f\r
+path.cubicTo(SkBits2Float(0x419a1894), SkBits2Float(0x4263a3d7), SkBits2Float(0x4198cccd), SkBits2Float(0x4262f2b0), SkBits2Float(0x4197c290), SkBits2Float(0x4262374b));  // 19.262f, 56.91f, 19.1f, 56.737f, 18.97f, 56.554f\r
+path.cubicTo(SkBits2Float(0x41960832), SkBits2Float(0x42610c49), SkBits2Float(0x41944dd4), SkBits2Float(0x425fd709), SkBits2Float(0x41927cee), SkBits2Float(0x425ea0c4));  // 18.754f, 56.262f, 18.538f, 55.96f, 18.311f, 55.657f\r
+path.cubicTo(SkBits2Float(0x4191b646), SkBits2Float(0x425e1cab), SkBits2Float(0x418edd30), SkBits2Float(0x425ca4dd), SkBits2Float(0x418f4bc7), SkBits2Float(0x425bdd2e));  // 18.214f, 55.528f, 17.858f, 55.161f, 17.912f, 54.966f\r
+path.lineTo(SkBits2Float(0x41903f7d), SkBits2Float(0x425b6e96));  // 18.031f, 54.858f\r
+path.cubicTo(SkBits2Float(0x41921062), SkBits2Float(0x425aa6e8), SkBits2Float(0x4193872b), SkBits2Float(0x425bd1ea), SkBits2Float(0x41947ae1), SkBits2Float(0x425c77cd));  // 18.258f, 54.663f, 18.441f, 54.955f, 18.56f, 55.117f\r
+path.cubicTo(SkBits2Float(0x4195dd2f), SkBits2Float(0x425d6b83), SkBits2Float(0x4197ae14), SkBits2Float(0x425e1caa), SkBits2Float(0x419924dd), SkBits2Float(0x425ef9d9));  // 18.733f, 55.355f, 18.96f, 55.528f, 19.143f, 55.744f\r
+path.cubicTo(SkBits2Float(0x419a1893), SkBits2Float(0x425f9479), SkBits2Float(0x419adf3b), SkBits2Float(0x42601997), SkBits2Float(0x419bd2f1), SkBits2Float(0x42609db0));  // 19.262f, 55.895f, 19.359f, 56.025f, 19.478f, 56.154f\r
+path.cubicTo(SkBits2Float(0x419c147a), SkBits2Float(0x4260c9b8), SkBits2Float(0x419c8312), SkBits2Float(0x4260e03f), SkBits2Float(0x419cb020), SkBits2Float(0x42610104));  // 19.51f, 56.197f, 19.564f, 56.219f, 19.586f, 56.251f\r
+path.cubicTo(SkBits2Float(0x419d0830), SkBits2Float(0x42613850), SkBits2Float(0x419da3d6), SkBits2Float(0x4261bd6e), SkBits2Float(0x419e126e), SkBits2Float(0x4261d2f0));  // 19.629f, 56.305f, 19.705f, 56.435f, 19.759f, 56.456f\r
+path.lineTo(SkBits2Float(0x419e28f5), SkBits2Float(0x4261d2f0));  // 19.77f, 56.456f\r
+path.lineTo(SkBits2Float(0x419e28f5), SkBits2Float(0x4261f4bb));  // 19.77f, 56.489f\r
+path.cubicTo(SkBits2Float(0x419e3d70), SkBits2Float(0x4261fef8), SkBits2Float(0x419e53f7), SkBits2Float(0x4261f4bb), SkBits2Float(0x419e8105), SkBits2Float(0x4261fef8));  // 19.78f, 56.499f, 19.791f, 56.489f, 19.813f, 56.499f\r
+path.cubicTo(SkBits2Float(0x419eac07), SkBits2Float(0x426220c3), SkBits2Float(0x419eac07), SkBits2Float(0x42624187), SkBits2Float(0x419eef9d), SkBits2Float(0x4262580f));  // 19.834f, 56.532f, 19.834f, 56.564f, 19.867f, 56.586f\r
+path.cubicTo(SkBits2Float(0x419fe353), SkBits2Float(0x4262f2af), SkBits2Float(0x41a0eb84), SkBits2Float(0x426377cd), SkBits2Float(0x41a1b22c), SkBits2Float(0x4263fbe6));  // 19.986f, 56.737f, 20.115f, 56.867f, 20.212f, 56.996f\r
+path.cubicTo(SkBits2Float(0x41a20a3c), SkBits2Float(0x42641db1), SkBits2Float(0x41a2e76b), SkBits2Float(0x4264a1c9), SkBits2Float(0x41a34188), SkBits2Float(0x4264ad0d));  // 20.255f, 57.029f, 20.363f, 57.158f, 20.407f, 57.169f\r
+path.cubicTo(SkBits2Float(0x41a36c8a), SkBits2Float(0x4264ad0d), SkBits2Float(0x41a3c6a7), SkBits2Float(0x4264a1c9), SkBits2Float(0x41a3f1a9), SkBits2Float(0x4264ad0d));  // 20.428f, 57.169f, 20.472f, 57.158f, 20.493f, 57.169f\r
+path.cubicTo(SkBits2Float(0x41a3f1a9), SkBits2Float(0x42648c48), SkBits2Float(0x41a41eb7), SkBits2Float(0x42648105), SkBits2Float(0x41a449b9), SkBits2Float(0x426475c1));  // 20.493f, 57.137f, 20.515f, 57.126f, 20.536f, 57.115f\r
+path.cubicTo(SkBits2Float(0x41a48d4f), SkBits2Float(0x4263f1a8), SkBits2Float(0x41a46040), SkBits2Float(0x42634082), SkBits2Float(0x41a48d4f), SkBits2Float(0x4262bb63));  // 20.569f, 56.986f, 20.547f, 56.813f, 20.569f, 56.683f\r
+path.cubicTo(SkBits2Float(0x41a51061), SkBits2Float(0x426122d0), SkBits2Float(0x41a63126), SkBits2Float(0x425f51ea), SkBits2Float(0x41a82d0d), SkBits2Float(0x425e0624));  // 20.633f, 56.284f, 20.774f, 55.83f, 21.022f, 55.506f\r
+path.cubicTo(SkBits2Float(0x41a90a3c), SkBits2Float(0x425d820b), SkBits2Float(0x41aab01f), SkBits2Float(0x425cba5d), SkBits2Float(0x41ab0830), SkBits2Float(0x425c147a));  // 21.13f, 55.377f, 21.336f, 55.182f, 21.379f, 55.02f\r
+path.cubicTo(SkBits2Float(0x41aa147a), SkBits2Float(0x425bf3b5), SkBits2Float(0x41a8df3a), SkBits2Float(0x425c0936), SkBits2Float(0x41a7d4fd), SkBits2Float(0x425c147a));  // 21.26f, 54.988f, 21.109f, 55.009f, 20.979f, 55.02f\r
+path.cubicTo(SkBits2Float(0x41a74fde), SkBits2Float(0x425c147a), SkBits2Float(0x41a65e34), SkBits2Float(0x425c4082), SkBits2Float(0x41a5c28e), SkBits2Float(0x425c4082));  // 20.914f, 55.02f, 20.796f, 55.063f, 20.72f, 55.063f\r
+path.cubicTo(SkBits2Float(0x41a56a7e), SkBits2Float(0x425c353e), SkBits2Float(0x41a4fbe6), SkBits2Float(0x425c147a), SkBits2Float(0x41a4ced8), SkBits2Float(0x425c0936));  // 20.677f, 55.052f, 20.623f, 55.02f, 20.601f, 55.009f\r
+path.cubicTo(SkBits2Float(0x41a53d70), SkBits2Float(0x425af4bb), SkBits2Float(0x41a5ed90), SkBits2Float(0x425abd6f), SkBits2Float(0x41a85a1c), SkBits2Float(0x425aa6e8));  // 20.655f, 54.739f, 20.741f, 54.685f, 21.044f, 54.663f\r
+path.cubicTo(SkBits2Float(0x41a920c4), SkBits2Float(0x425a9cab), SkBits2Float(0x41a9d0e5), SkBits2Float(0x425aa6e8), SkBits2Float(0x41aa5603), SkBits2Float(0x425a9167));  // 21.141f, 54.653f, 21.227f, 54.663f, 21.292f, 54.642f\r
+path.cubicTo(SkBits2Float(0x41aa8311), SkBits2Float(0x425a8623), SkBits2Float(0x41aa9999), SkBits2Float(0x425a655f), SkBits2Float(0x41aab020), SkBits2Float(0x425a655f));  // 21.314f, 54.631f, 21.325f, 54.599f, 21.336f, 54.599f\r
+path.cubicTo(SkBits2Float(0x41aa3f7c), SkBits2Float(0x42599eb7), SkBits2Float(0x41a9a5e3), SkBits2Float(0x42591998), SkBits2Float(0x41a9374b), SkBits2Float(0x42586871));  // 21.281f, 54.405f, 21.206f, 54.275f, 21.152f, 54.102f\r
+path.cubicTo(SkBits2Float(0x41a8c8b3), SkBits2Float(0x4257e458), SkBits2Float(0x41a8b22c), SkBits2Float(0x42575f3a), SkBits2Float(0x41a85a1c), SkBits2Float(0x4256c49a));  // 21.098f, 53.973f, 21.087f, 53.843f, 21.044f, 53.692f\r
+path.cubicTo(SkBits2Float(0x41a76666), SkBits2Float(0x42551479), SkBits2Float(0x41a68937), SkBits2Float(0x4252cabf), SkBits2Float(0x41a74fdf), SkBits2Float(0x4250a1c9));  // 20.925f, 53.27f, 20.817f, 52.698f, 20.914f, 52.158f\r
+path.cubicTo(SkBits2Float(0x41a77ced), SkBits2Float(0x42500729), SkBits2Float(0x41a870a4), SkBits2Float(0x424e8417), SkBits2Float(0x41a8b22d), SkBits2Float(0x424e4ccb));  // 20.936f, 52.007f, 21.055f, 51.629f, 21.087f, 51.575f\r
+path.cubicTo(SkBits2Float(0x41a8b22d), SkBits2Float(0x424e4187), SkBits2Float(0x41aa147b), SkBits2Float(0x424cc9b9), SkBits2Float(0x41aab021), SkBits2Float(0x424c2f19));  // 21.087f, 51.564f, 21.26f, 51.197f, 21.336f, 51.046f\r
+path.cubicTo(SkBits2Float(0x41aac49c), SkBits2Float(0x424c1892), SkBits2Float(0x41ab49bb), SkBits2Float(0x424b9eb7), SkBits2Float(0x41ab8b44), SkBits2Float(0x424b676b));  // 21.346f, 51.024f, 21.411f, 50.905f, 21.443f, 50.851f\r
+path.cubicTo(SkBits2Float(0x41ac3d71), SkBits2Float(0x424ab644), SkBits2Float(0x41ad45a2), SkBits2Float(0x424a26e8), SkBits2Float(0x41ae22d1), SkBits2Float(0x42498105));  // 21.53f, 50.678f, 21.659f, 50.538f, 21.767f, 50.376f\r
+path.cubicTo(SkBits2Float(0x41ae6667), SkBits2Float(0x42496b84), SkBits2Float(0x41aeeb85), SkBits2Float(0x42491db1), SkBits2Float(0x41af0000), SkBits2Float(0x4248fbe6));  // 21.8f, 50.355f, 21.865f, 50.279f, 21.875f, 50.246f\r
+path.cubicTo(SkBits2Float(0x41b0624e), SkBits2Float(0x4248353e), SkBits2Float(0x41b1db23), SkBits2Float(0x424779da), SkBits2Float(0x41b353f8), SkBits2Float(0x4246bd6f));  // 22.048f, 50.052f, 22.232f, 49.869f, 22.416f, 49.685f\r
+path.cubicTo(SkBits2Float(0x41b3c083), SkBits2Float(0x42468623), SkBits2Float(0x41b445a2), SkBits2Float(0x42464ed7), SkBits2Float(0x41b4cac1), SkBits2Float(0x4246178c));  // 22.469f, 49.631f, 22.534f, 49.577f, 22.599f, 49.523f\r
+path.cubicTo(SkBits2Float(0x41b56667), SkBits2Float(0x4245c9b9), SkBits2Float(0x41b62d0f), SkBits2Float(0x4245872a), SkBits2Float(0x41b6c8b5), SkBits2Float(0x4245449a));  // 22.675f, 49.447f, 22.772f, 49.382f, 22.848f, 49.317f\r
+path.cubicTo(SkBits2Float(0x41b7624f), SkBits2Float(0x42450311), SkBits2Float(0x41b7e76d), SkBits2Float(0x4244a9fa), SkBits2Float(0x41b88313), SkBits2Float(0x42445d2d));  // 22.923f, 49.253f, 22.988f, 49.166f, 23.064f, 49.091f\r
+path.cubicTo(SkBits2Float(0x41b949bb), SkBits2Float(0x4243ee95), SkBits2Float(0x41ba1063), SkBits2Float(0x424374ba), SkBits2Float(0x41baed92), SkBits2Float(0x42431166));  // 23.161f, 48.983f, 23.258f, 48.864f, 23.366f, 48.767f\r
+path.cubicTo(SkBits2Float(0x41bb45a2), SkBits2Float(0x4242c393), SkBits2Float(0x41bbb43a), SkBits2Float(0x424276c6), SkBits2Float(0x41bc0e57), SkBits2Float(0x424228f3));  // 23.409f, 48.691f, 23.463f, 48.616f, 23.507f, 48.54f\r
+path.cubicTo(SkBits2Float(0x41bc6667), SkBits2Float(0x4241e664), SkBits2Float(0x41bc7ae2), SkBits2Float(0x4241a4da), SkBits2Float(0x41bcd2f3), SkBits2Float(0x4241624b));  // 23.55f, 48.475f, 23.56f, 48.411f, 23.603f, 48.346f\r
+path.cubicTo(SkBits2Float(0x41bd0001), SkBits2Float(0x42411478), SkBits2Float(0x41bd0001), SkBits2Float(0x4240c6a5), SkBits2Float(0x41bd1689), SkBits2Float(0x4240851c));  // 23.625f, 48.27f, 23.625f, 48.194f, 23.636f, 48.13f\r
+path.cubicTo(SkBits2Float(0x41bd2d10), SkBits2Float(0x42404cca), SkBits2Float(0x41bdb023), SkBits2Float(0x423fd3f5), SkBits2Float(0x41bd8521), SkBits2Float(0x423f7adf));  // 23.647f, 48.075f, 23.711f, 47.957f, 23.69f, 47.87f\r
+path.lineTo(SkBits2Float(0x41bd6e9a), SkBits2Float(0x423f7adf));  // 23.679f, 47.87f\r
+path.cubicTo(SkBits2Float(0x41bd6e9a), SkBits2Float(0x423f7adf), SkBits2Float(0x41bd5813), SkBits2Float(0x423f4ed7), SkBits2Float(0x41bd168a), SkBits2Float(0x423f4499));  // 23.679f, 47.87f, 23.668f, 47.827f, 23.636f, 47.817f\r
+path.cubicTo(SkBits2Float(0x41bc916b), SkBits2Float(0x423f22ce), SkBits2Float(0x41bc22d4), SkBits2Float(0x423f3955), SkBits2Float(0x41bb893a), SkBits2Float(0x423f178b));  // 23.571f, 47.784f, 23.517f, 47.806f, 23.442f, 47.773f\r
+path.cubicTo(SkBits2Float(0x41bb2f1d), SkBits2Float(0x423f0c47), SkBits2Float(0x41bb041b), SkBits2Float(0x423ee03f), SkBits2Float(0x41baac0b), SkBits2Float(0x423ec9b8));  // 23.398f, 47.762f, 23.377f, 47.719f, 23.334f, 47.697f\r
+path.cubicTo(SkBits2Float(0x41baac0b), SkBits2Float(0x423ebf7b), SkBits2Float(0x41bac086), SkBits2Float(0x423ea8f3), SkBits2Float(0x41bac086), SkBits2Float(0x423e926c));  // 23.334f, 47.687f, 23.344f, 47.665f, 23.344f, 47.643f\r
+path.cubicTo(SkBits2Float(0x41bb2f1e), SkBits2Float(0x423e882f), SkBits2Float(0x41bc0e59), SkBits2Float(0x423e6664), SkBits2Float(0x41bc916b), SkBits2Float(0x423e5c26));  // 23.398f, 47.633f, 23.507f, 47.6f, 23.571f, 47.59f\r
+path.cubicTo(SkBits2Float(0x41be4bc9), SkBits2Float(0x423e50e2), SkBits2Float(0x41c53542), SkBits2Float(0x423e926c), SkBits2Float(0x41c5ba61), SkBits2Float(0x423e24da));  // 23.787f, 47.579f, 24.651f, 47.643f, 24.716f, 47.536f\r
+path.cubicTo(SkBits2Float(0x41c61271), SkBits2Float(0x423de24b), SkBits2Float(0x41c61271), SkBits2Float(0x423d1a9d), SkBits2Float(0x41c63f80), SkBits2Float(0x423ca1c8));  // 24.759f, 47.471f, 24.759f, 47.276f, 24.781f, 47.158f\r
+path.cubicTo(SkBits2Float(0x41c68109), SkBits2Float(0x423bda1a), SkBits2Float(0x41c6ae18), SkBits2Float(0x423afceb), SkBits2Float(0x41c70628), SkBits2Float(0x423a2aff));  // 24.813f, 46.963f, 24.835f, 46.747f, 24.878f, 46.542f\r
+path.cubicTo(SkBits2Float(0x41c71caf), SkBits2Float(0x42399ba3), SkBits2Float(0x41c81065), SkBits2Float(0x42379eb5), SkBits2Float(0x41c79fc2), SkBits2Float(0x4237459f));  // 24.889f, 46.402f, 25.008f, 45.905f, 24.953f, 45.818f\r
+path.cubicTo(SkBits2Float(0x41c70628), SkBits2Float(0x4236e24b), SkBits2Float(0x41c4dd33), SkBits2Float(0x4237459f), SkBits2Float(0x41c45814), SkBits2Float(0x423750e3));  // 24.878f, 45.721f, 24.608f, 45.818f, 24.543f, 45.829f\r
+path.cubicTo(SkBits2Float(0x41c245a5), SkBits2Float(0x42379eb6), SkBits2Float(0x41bea5e7), SkBits2Float(0x42380d4d), SkBits2Float(0x41bbf5c6), SkBits2Float(0x4237ec89));  // 24.284f, 45.905f, 23.831f, 46.013f, 23.495f, 45.981f\r
+path.cubicTo(SkBits2Float(0x41b9f9df), SkBits2Float(0x4237e145), SkBits2Float(0x41b7e770), SkBits2Float(0x4237a9fa), SkBits2Float(0x41b62d12), SkBits2Float(0x4237676a));  // 23.247f, 45.97f, 22.988f, 45.916f, 22.772f, 45.851f\r
+path.cubicTo(SkBits2Float(0x41b4312b), SkBits2Float(0x423724db), SkBits2Float(0x41b1f1ae), SkBits2Float(0x42369fbc), SkBits2Float(0x41af9baa), SkBits2Float(0x423673b4));  // 22.524f, 45.786f, 22.243f, 45.656f, 21.951f, 45.613f\r
+path.cubicTo(SkBits2Float(0x41ae7ae5), SkBits2Float(0x42366977), SkBits2Float(0x41aced96), SkBits2Float(0x42365d2d), SkBits2Float(0x41ab8b48), SkBits2Float(0x42366977));  // 21.81f, 45.603f, 21.616f, 45.591f, 21.443f, 45.603f\r
+path.cubicTo(SkBits2Float(0x41a9e771), SkBits2Float(0x42368a3c), SkBits2Float(0x41a82d13), SkBits2Float(0x4236d708), SkBits2Float(0x41a65e3a), SkBits2Float(0x4236b644));  // 21.238f, 45.635f, 21.022f, 45.71f, 20.796f, 45.678f\r
+path.cubicTo(SkBits2Float(0x41a65e3a), SkBits2Float(0x4236ab00), SkBits2Float(0x41a647b3), SkBits2Float(0x42369fbd), SkBits2Float(0x41a65e3a), SkBits2Float(0x42369479));  // 20.796f, 45.667f, 20.785f, 45.656f, 20.796f, 45.645f\r
+path.cubicTo(SkBits2Float(0x41a672b5), SkBits2Float(0x42366977), SkBits2Float(0x41a7a7f4), SkBits2Float(0x42363125), SkBits2Float(0x41a81898), SkBits2Float(0x42361ba4));  // 20.806f, 45.603f, 20.957f, 45.548f, 21.012f, 45.527f\r
+path.cubicTo(SkBits2Float(0x41a85a21), SkBits2Float(0x42361060), SkBits2Float(0x41a8df40), SkBits2Float(0x4235d915), SkBits2Float(0x41a94dd7), SkBits2Float(0x4235cdd1));  // 21.044f, 45.516f, 21.109f, 45.462f, 21.163f, 45.451f\r
+path.cubicTo(SkBits2Float(0x41ab8b48), SkBits2Float(0x42356a7d), SkBits2Float(0x41af8523), SkBits2Float(0x423575c1), SkBits2Float(0x41b249be), SkBits2Float(0x42359685));  // 21.443f, 45.354f, 21.94f, 45.365f, 22.286f, 45.397f\r
+path.cubicTo(SkBits2Float(0x41b3d70e), SkBits2Float(0x4235a1c9), SkBits2Float(0x41b6168b), SkBits2Float(0x4235cdd1), SkBits2Float(0x41b7e770), SkBits2Float(0x4235ad0c));  // 22.48f, 45.408f, 22.761f, 45.451f, 22.988f, 45.419f\r
+path.cubicTo(SkBits2Float(0x41bac087), SkBits2Float(0x42359685), SkBits2Float(0x41bd6e9b), SkBits2Float(0x4234fbe5), SkBits2Float(0x41c03337), SkBits2Float(0x4234af18));  // 23.344f, 45.397f, 23.679f, 45.246f, 24.025f, 45.171f\r
+path.cubicTo(SkBits2Float(0x41c2cac4), SkBits2Float(0x42346145), SkBits2Float(0x41c56252), SkBits2Float(0x4234820a), SkBits2Float(0x41c81066), SkBits2Float(0x42346145));  // 24.349f, 45.095f, 24.673f, 45.127f, 25.008f, 45.095f\r
+path.cubicTo(SkBits2Float(0x41c824e1), SkBits2Float(0x42340935), SkBits2Float(0x41c89378), SkBits2Float(0x42330a3b), SkBits2Float(0x41c7b649), SkBits2Float(0x4232fef7));  // 25.018f, 45.009f, 25.072f, 44.76f, 24.964f, 44.749f\r
+path.cubicTo(SkBits2Float(0x41c6d91a), SkBits2Float(0x4232e976), SkBits2Float(0x41c5a3da), SkBits2Float(0x42338416), SkBits2Float(0x41c51ebc), SkBits2Float(0x4233a4da));  // 24.856f, 44.728f, 24.705f, 44.879f, 24.64f, 44.911f\r
+path.cubicTo(SkBits2Float(0x41c42b06), SkBits2Float(0x4233bb61), SkBits2Float(0x41c2cac4), SkBits2Float(0x4233d0e2), SkBits2Float(0x41c1d70e), SkBits2Float(0x4233e769));  // 24.521f, 44.933f, 24.349f, 44.954f, 24.23f, 44.976f\r
+path.cubicTo(SkBits2Float(0x41c08b47), SkBits2Float(0x4233f2ad), SkBits2Float(0x41bf1272), SkBits2Float(0x4233c6a4), SkBits2Float(0x41bdf3ba), SkBits2Float(0x4233bb61));  // 24.068f, 44.987f, 23.884f, 44.944f, 23.744f, 44.933f\r
+path.cubicTo(SkBits2Float(0x41bcd2f5), SkBits2Float(0x4233b01d), SkBits2Float(0x41bbf5c6), SkBits2Float(0x4233b01d), SkBits2Float(0x41baed95), SkBits2Float(0x4233a4da));  // 23.603f, 44.922f, 23.495f, 44.922f, 23.366f, 44.911f\r
+path.cubicTo(SkBits2Float(0x41ba26ed), SkBits2Float(0x42338f59), SkBits2Float(0x41b91cb0), SkBits2Float(0x4233580d), SkBits2Float(0x41b83f81), SkBits2Float(0x4233580d));  // 23.269f, 44.89f, 23.139f, 44.836f, 23.031f, 44.836f\r
+path.cubicTo(SkBits2Float(0x41b4b43d), SkBits2Float(0x42333642), SkBits2Float(0x41b19791), SkBits2Float(0x4233a4da), SkBits2Float(0x41aea7f4), SkBits2Float(0x4233d0e2));  // 22.588f, 44.803f, 22.199f, 44.911f, 21.832f, 44.954f\r
+path.cubicTo(SkBits2Float(0x41aba1cf), SkBits2Float(0x42340934), SkBits2Float(0x41a7666b), SkBits2Float(0x4233e769), SkBits2Float(0x41a4b856), SkBits2Float(0x42338415));  // 21.454f, 45.009f, 20.925f, 44.976f, 20.59f, 44.879f\r
+path.cubicTo(SkBits2Float(0x41a46046), SkBits2Float(0x423378d1), SkBits2Float(0x41a3f1ae), SkBits2Float(0x4233580d), SkBits2Float(0x41a3c6ac), SkBits2Float(0x42334cc9));  // 20.547f, 44.868f, 20.493f, 44.836f, 20.472f, 44.825f\r
+path.cubicTo(SkBits2Float(0x41a28f60), SkBits2Float(0x4233157d), SkBits2Float(0x41a19db6), SkBits2Float(0x42330a3a), SkBits2Float(0x41a0c087), SkBits2Float(0x4232c7aa));  // 20.32f, 44.771f, 20.202f, 44.76f, 20.094f, 44.695f\r
+path.cubicTo(SkBits2Float(0x41a0eb89), SkBits2Float(0x4232bc66), SkBits2Float(0x41a0eb89), SkBits2Float(0x4232905e), SkBits2Float(0x41a10210), SkBits2Float(0x4232905e));  // 20.115f, 44.684f, 20.115f, 44.641f, 20.126f, 44.641f\r
+path.cubicTo(SkBits2Float(0x41a19db6), SkBits2Float(0x42325912), SkBits2Float(0x41a2645e), SkBits2Float(0x42326f99), SkBits2Float(0x41a35608), SkBits2Float(0x42326f99));  // 20.202f, 44.587f, 20.299f, 44.609f, 20.417f, 44.609f\r
+path.cubicTo(SkBits2Float(0x41a476cd), SkBits2Float(0x42324ed4), SkBits2Float(0x41a5ed95), SkBits2Float(0x4232384d), SkBits2Float(0x41a724e1), SkBits2Float(0x42320c45));  // 20.558f, 44.577f, 20.741f, 44.555f, 20.893f, 44.512f\r
+path.cubicTo(SkBits2Float(0x41a8c8b8), SkBits2Float(0x4231c9b6), SkBits2Float(0x41aa999d), SkBits2Float(0x42316662), SkBits2Float(0x41ac26ed), SkBits2Float(0x4231188f));  // 21.098f, 44.447f, 21.325f, 44.35f, 21.519f, 44.274f\r
+path.cubicTo(SkBits2Float(0x41af168b), SkBits2Float(0x423072ac), SkBits2Float(0x41b249be), SkBits2Float(0x42300f58), SkBits2Float(0x41b57ae5), SkBits2Float(0x422fe249));  // 21.886f, 44.112f, 22.286f, 44.015f, 22.685f, 43.971f\r
+path.cubicTo(SkBits2Float(0x41b66e9b), SkBits2Float(0x422fd80c), SkBits2Float(0x41b7d0e9), SkBits2Float(0x422fee93), SkBits2Float(0x41b89791), SkBits2Float(0x422fee93));  // 22.804f, 43.961f, 22.977f, 43.983f, 23.074f, 43.983f\r
+path.cubicTo(SkBits2Float(0x41bb1897), SkBits2Float(0x42300f58), SkBits2Float(0x41bd2d12), SkBits2Float(0x423024d9), SkBits2Float(0x41bfc49f), SkBits2Float(0x4230301c));  // 23.387f, 44.015f, 23.647f, 44.036f, 23.971f, 44.047f\r
+path.cubicTo(SkBits2Float(0x41c0e357), SkBits2Float(0x423046a3), SkBits2Float(0x41c245a5), SkBits2Float(0x42305c24), SkBits2Float(0x41c3a7f3), SkBits2Float(0x423051e7));  // 24.111f, 44.069f, 24.284f, 44.09f, 24.457f, 44.08f\r
+path.cubicTo(SkBits2Float(0x41c50835), SkBits2Float(0x423046a3), SkBits2Float(0x41c69791), SkBits2Float(0x42300f58), SkBits2Float(0x41c79fc2), SkBits2Float(0x422fb641));  // 24.629f, 44.069f, 24.824f, 44.015f, 24.953f, 43.928f\r
+path.cubicTo(SkBits2Float(0x41c7f9df), SkBits2Float(0x422fa0c0), SkBits2Float(0x41c86876), SkBits2Float(0x422f5e31), SkBits2Float(0x41c8eb89), SkBits2Float(0x422f52ed));  // 24.997f, 43.907f, 25.051f, 43.842f, 25.115f, 43.831f\r
+path.cubicTo(SkBits2Float(0x41c9b43d), SkBits2Float(0x422f3c66), SkBits2Float(0x41c9df3f), SkBits2Float(0x422fb641), SkBits2Float(0x41c9f5c6), SkBits2Float(0x42300f57));  // 25.213f, 43.809f, 25.234f, 43.928f, 25.245f, 44.015f\r
+path.cubicTo(SkBits2Float(0x41ca0c4d), SkBits2Float(0x4230e143), SkBits2Float(0x41c9df3f), SkBits2Float(0x42319ca7), SkBits2Float(0x41c9f5c6), SkBits2Float(0x4232384d));  // 25.256f, 44.22f, 25.234f, 44.403f, 25.245f, 44.555f\r
+path.cubicTo(SkBits2Float(0x41ca395c), SkBits2Float(0x4234fbe2), SkBits2Float(0x41ca22d4), SkBits2Float(0x4237cabc), SkBits2Float(0x41ca7ae5), SkBits2Float(0x423a6d8c));  // 25.278f, 45.246f, 25.267f, 45.948f, 25.31f, 46.607f\r
+path.cubicTo(SkBits2Float(0x41ca916c), SkBits2Float(0x423b3f78), SkBits2Float(0x41ca645e), SkBits2Float(0x423ca1c5), SkBits2Float(0x41ca916c), SkBits2Float(0x423d9475));  // 25.321f, 46.812f, 25.299f, 47.158f, 25.321f, 47.395f\r
+path.cubicTo(SkBits2Float(0x41ca916c), SkBits2Float(0x423daafc), SkBits2Float(0x41ca7ae5), SkBits2Float(0x423dd704), SkBits2Float(0x41ca916c), SkBits2Float(0x423dec85));  // 25.321f, 47.417f, 25.31f, 47.46f, 25.321f, 47.481f\r
+path.cubicTo(SkBits2Float(0x41caa5e7), SkBits2Float(0x423e0e50), SkBits2Float(0x41cb0004), SkBits2Float(0x423e459c), SkBits2Float(0x41cb2b06), SkBits2Float(0x423e50df));  // 25.331f, 47.514f, 25.375f, 47.568f, 25.396f, 47.579f\r
+path.cubicTo(SkBits2Float(0x41cb6e9c), SkBits2Float(0x423e5c23), SkBits2Float(0x41ce47b2), SkBits2Float(0x423e7ce7), SkBits2Float(0x41ce8b48), SkBits2Float(0x423e6660));  // 25.429f, 47.59f, 25.785f, 47.622f, 25.818f, 47.6f\r
+path.lineTo(SkBits2Float(0x41ceb64a), SkBits2Float(0x423e5c23));  // 25.839f, 47.59f\r
+path.cubicTo(SkBits2Float(0x41d1395c), SkBits2Float(0x423e5c23), SkBits2Float(0x41d41273), SkBits2Float(0x423e50df), SkBits2Float(0x41d6666b), SkBits2Float(0x423e6660));  // 26.153f, 47.59f, 26.509f, 47.579f, 26.8f, 47.6f\r
+path.cubicTo(SkBits2Float(0x41d71898), SkBits2Float(0x423e7ce7), SkBits2Float(0x41d80a42), SkBits2Float(0x423e5c23), SkBits2Float(0x41d8a5e8), SkBits2Float(0x423e7ce7));  // 26.887f, 47.622f, 27.005f, 47.59f, 27.081f, 47.622f\r
+path.cubicTo(SkBits2Float(0x41d8d2f6), SkBits2Float(0x423e882b), SkBits2Float(0x41d8d2f6), SkBits2Float(0x423e9268), SkBits2Float(0x41d8fdf8), SkBits2Float(0x423e9eb2));  // 27.103f, 47.633f, 27.103f, 47.643f, 27.124f, 47.655f\r
+path.cubicTo(SkBits2Float(0x41d8e771), SkBits2Float(0x423ebf77), SkBits2Float(0x41d8fdf8), SkBits2Float(0x423ed4f8), SkBits2Float(0x41d8e771), SkBits2Float(0x423eeb7f));  // 27.113f, 47.687f, 27.124f, 47.708f, 27.113f, 47.73f\r
+path.cubicTo(SkBits2Float(0x41d88f61), SkBits2Float(0x423f4496), SkBits2Float(0x41d71898), SkBits2Float(0x423f4496), SkBits2Float(0x41d6aa00), SkBits2Float(0x423f9162));  // 27.07f, 47.817f, 26.887f, 47.817f, 26.833f, 47.892f\r
+path.cubicTo(SkBits2Float(0x41d547b2), SkBits2Float(0x42406e91), SkBits2Float(0x41d43d75), SkBits2Float(0x4241ba58), SkBits2Float(0x41d38d54), SkBits2Float(0x4242b952));  // 26.66f, 48.108f, 26.53f, 48.432f, 26.444f, 48.681f\r
+path.cubicTo(SkBits2Float(0x41d1395c), SkBits2Float(0x4245a8f0), SkBits2Float(0x41d0b231), SkBits2Float(0x42491dac), SkBits2Float(0x41d2147f), SkBits2Float(0x424c2f15));  // 26.153f, 49.415f, 26.087f, 50.279f, 26.26f, 51.046f\r
+path.cubicTo(SkBits2Float(0x41d2418d), SkBits2Float(0x424c7be2), SkBits2Float(0x41d2999e), SkBits2Float(0x424cc9b5), SkBits2Float(0x41d2b025), SkBits2Float(0x424d0c44));  // 26.282f, 51.121f, 26.325f, 51.197f, 26.336f, 51.262f\r
+path.cubicTo(SkBits2Float(0x41d33544), SkBits2Float(0x424dc7a8), SkBits2Float(0x41d3a3db), SkBits2Float(0x424e8413), SkBits2Float(0x41d453fc), SkBits2Float(0x424f136f));  // 26.401f, 51.445f, 26.455f, 51.629f, 26.541f, 51.769f\r
+path.cubicTo(SkBits2Float(0x41d453fc), SkBits2Float(0x424f136f), SkBits2Float(0x41d59fc3), SkBits2Float(0x42506a79), SkBits2Float(0x41d6c087), SkBits2Float(0x4250e454));  // 26.541f, 51.769f, 26.703f, 52.104f, 26.844f, 52.223f\r
+path.cubicTo(SkBits2Float(0x41d6c087), SkBits2Float(0x4250ef98), SkBits2Float(0x41d6eb89), SkBits2Float(0x4251105c), SkBits2Float(0x41d70210), SkBits2Float(0x4251105c));  // 26.844f, 52.234f, 26.865f, 52.266f, 26.876f, 52.266f\r
+path.cubicTo(SkBits2Float(0x41d71897), SkBits2Float(0x42511ba0), SkBits2Float(0x41d75a20), SkBits2Float(0x4251105c), SkBits2Float(0x41d7872f), SkBits2Float(0x4251105c));  // 26.887f, 52.277f, 26.919f, 52.266f, 26.941f, 52.266f\r
+path.cubicTo(SkBits2Float(0x41d87ae5), SkBits2Float(0x42501ca6), SkBits2Float(0x41d9147f), SkBits2Float(0x424f136e), SkBits2Float(0x41da0835), SkBits2Float(0x424e157b));  // 27.06f, 52.028f, 27.135f, 51.769f, 27.254f, 51.521f\r
+path.cubicTo(SkBits2Float(0x41da1ebc), SkBits2Float(0x424df4b6), SkBits2Float(0x41db1066), SkBits2Float(0x424d0c44), SkBits2Float(0x41db1066), SkBits2Float(0x424d0100));  // 27.265f, 51.489f, 27.383f, 51.262f, 27.383f, 51.251f\r
+path.cubicTo(SkBits2Float(0x41db3d74), SkBits2Float(0x424cc9b4), SkBits2Float(0x41db9585), SkBits2Float(0x424c8725), SkBits2Float(0x41dbd91a), SkBits2Float(0x424c5b1d));  // 27.405f, 51.197f, 27.448f, 51.132f, 27.481f, 51.089f\r
+path.cubicTo(SkBits2Float(0x41dc5e39), SkBits2Float(0x424bcbc1), SkBits2Float(0x41dcf7d2), SkBits2Float(0x424b301b), SkBits2Float(0x41dd7cf1), SkBits2Float(0x424aac02));  // 27.546f, 50.949f, 27.621f, 50.797f, 27.686f, 50.668f\r
+path.cubicTo(SkBits2Float(0x41ddd501), SkBits2Float(0x424a5e2f), SkBits2Float(0x41ddeb89), SkBits2Float(0x424a105c), SkBits2Float(0x41de4399), SkBits2Float(0x4249b84c));  // 27.729f, 50.592f, 27.74f, 50.516f, 27.783f, 50.43f\r
+path.cubicTo(SkBits2Float(0x41de70a7), SkBits2Float(0x4249a1c5), SkBits2Float(0x41def5c6), SkBits2Float(0x42490725), SkBits2Float(0x41df20c8), SkBits2Float(0x4248e660));  // 27.805f, 50.408f, 27.87f, 50.257f, 27.891f, 50.225f\r
+path.cubicTo(SkBits2Float(0x41df8f60), SkBits2Float(0x42488206), SkBits2Float(0x41e0c49f), SkBits2Float(0x42474cc6), SkBits2Float(0x41e10835), SkBits2Float(0x42472c02));  // 27.945f, 50.127f, 28.096f, 49.825f, 28.129f, 49.793f\r
+path.cubicTo(SkBits2Float(0x41e11ebc), SkBits2Float(0x42472c02), SkBits2Float(0x41e13337), SkBits2Float(0x4246fef4), SkBits2Float(0x41e13337), SkBits2Float(0x4246f4b6));  // 28.14f, 49.793f, 28.15f, 49.749f, 28.15f, 49.739f\r
+path.cubicTo(SkBits2Float(0x41e149be), SkBits2Float(0x4246c7a8), SkBits2Float(0x41e226ed), SkBits2Float(0x42461787), SkBits2Float(0x41e253fc), SkBits2Float(0x4245df35));  // 28.161f, 49.695f, 28.269f, 49.523f, 28.291f, 49.468f\r
+path.cubicTo(SkBits2Float(0x41e27efe), SkBits2Float(0x4245d3f1), SkBits2Float(0x41e2ac0c), SkBits2Float(0x42459ca6), SkBits2Float(0x41e2ac0c), SkBits2Float(0x42459162));  // 28.312f, 49.457f, 28.334f, 49.403f, 28.334f, 49.392f\r
+path.cubicTo(SkBits2Float(0x41e372b4), SkBits2Float(0x4244e141), SkBits2Float(0x41e4666a), SkBits2Float(0x42445c23), SkBits2Float(0x41e4eb89), SkBits2Float(0x42437ef3));  // 28.431f, 49.22f, 28.55f, 49.09f, 28.615f, 48.874f\r
+path.cubicTo(SkBits2Float(0x41e4a7f3), SkBits2Float(0x424373af), SkBits2Float(0x41e47ae5), SkBits2Float(0x42435e2e), SkBits2Float(0x41e4666a), SkBits2Float(0x42435e2e));  // 28.582f, 48.863f, 28.56f, 48.842f, 28.55f, 48.842f\r
+path.cubicTo(SkBits2Float(0x41e3893b), SkBits2Float(0x42433c63), SkBits2Float(0x41e1fbeb), SkBits2Float(0x4243686b), SkBits2Float(0x41e18b47), SkBits2Float(0x42431b9f));  // 28.442f, 48.809f, 28.248f, 48.852f, 28.193f, 48.777f\r
+path.cubicTo(SkBits2Float(0x41e16045), SkBits2Float(0x4242f9d4), SkBits2Float(0x41e18b47), SkBits2Float(0x4242ee91), SkBits2Float(0x41e16045), SkBits2Float(0x4242d910));  // 28.172f, 48.744f, 28.193f, 48.733f, 28.172f, 48.712f\r
+path.cubicTo(SkBits2Float(0x41e1a1ce), SkBits2Float(0x4242b84b), SkBits2Float(0x41e1fbeb), SkBits2Float(0x42429681), SkBits2Float(0x41e226ed), SkBits2Float(0x42429681));  // 28.204f, 48.68f, 28.248f, 48.647f, 28.269f, 48.647f\r
+path.cubicTo(SkBits2Float(0x41e3cac4), SkBits2Float(0x42425f35), SkBits2Float(0x41e9c087), SkBits2Float(0x4242b84c), SkBits2Float(0x41ea5c2c), SkBits2Float(0x424248ae));  // 28.474f, 48.593f, 29.219f, 48.68f, 29.295f, 48.571f\r
+path.cubicTo(SkBits2Float(0x41eacac4), SkBits2Float(0x4241fbe1), SkBits2Float(0x41eacac4), SkBits2Float(0x42414aba), SkBits2Float(0x41eaf7d2), SkBits2Float(0x4240d0df));  // 29.349f, 48.496f, 29.349f, 48.323f, 29.371f, 48.204f\r
+path.cubicTo(SkBits2Float(0x41eb395b), SkBits2Float(0x4240580a), SkBits2Float(0x41eba7f3), SkBits2Float(0x423fb121), SkBits2Float(0x41ebd501), SkBits2Float(0x423f21c4));  // 29.403f, 48.086f, 29.457f, 47.923f, 29.479f, 47.783f\r
+path.cubicTo(SkBits2Float(0x41ec2d11), SkBits2Float(0x423e4fd8), SkBits2Float(0x41ec5813), SkBits2Float(0x423d936e), SkBits2Float(0x41ecb230), SkBits2Float(0x423cb63f));  // 29.522f, 47.578f, 29.543f, 47.394f, 29.587f, 47.178f\r
+path.cubicTo(SkBits2Float(0x41ecc8b7), SkBits2Float(0x423c5e2f), SkBits2Float(0x41edba61), SkBits2Float(0x423b332d), SkBits2Float(0x41ed8f5f), SkBits2Float(0x423ac495));  // 29.598f, 47.092f, 29.716f, 46.8f, 29.695f, 46.692f\r
+path.cubicTo(SkBits2Float(0x41ed6251), SkBits2Float(0x423a8d49), SkBits2Float(0x41ec9ba9), SkBits2Float(0x423a407c), SkBits2Float(0x41ec2d11), SkBits2Float(0x423a3539));  // 29.673f, 46.638f, 29.576f, 46.563f, 29.522f, 46.552f\r
+path.cubicTo(SkBits2Float(0x41ec0003), SkBits2Float(0x423a29f5), SkBits2Float(0x41ebeb88), SkBits2Float(0x423a3539), SkBits2Float(0x41ebd501), SkBits2Float(0x423a3539));  // 29.5f, 46.541f, 29.49f, 46.552f, 29.479f, 46.552f\r
+path.cubicTo(SkBits2Float(0x41eb6669), SkBits2Float(0x423a29f5), SkBits2Float(0x41ea72b3), SkBits2Float(0x4239f2aa), SkBits2Float(0x41e9c086), SkBits2Float(0x423a0931));  // 29.425f, 46.541f, 29.306f, 46.487f, 29.219f, 46.509f\r
+path.cubicTo(SkBits2Float(0x41e99584), SkBits2Float(0x423a0931), SkBits2Float(0x41e96876), SkBits2Float(0x423a29f6), SkBits2Float(0x41e953fb), SkBits2Float(0x423a3539));  // 29.198f, 46.509f, 29.176f, 46.541f, 29.166f, 46.552f\r
+path.cubicTo(SkBits2Float(0x41e96876), SkBits2Float(0x423a8d49), SkBits2Float(0x41e9c086), SkBits2Float(0x423acfd9), SkBits2Float(0x41e9d70d), SkBits2Float(0x423b28ef));  // 29.176f, 46.638f, 29.219f, 46.703f, 29.23f, 46.79f\r
+path.cubicTo(SkBits2Float(0x41ea041b), SkBits2Float(0x423bd910), SkBits2Float(0x41e8fbea), SkBits2Float(0x423c73b0), SkBits2Float(0x41e849bd), SkBits2Float(0x423cac01));  // 29.252f, 46.962f, 29.123f, 47.113f, 29.036f, 47.168f\r
+path.cubicTo(SkBits2Float(0x41e75607), SkBits2Float(0x423cf8ce), SkBits2Float(0x41e5f3b9), SkBits2Float(0x423ced8a), SkBits2Float(0x41e4eb88), SkBits2Float(0x423cd809));  // 28.917f, 47.243f, 28.744f, 47.232f, 28.615f, 47.211f\r
+path.cubicTo(SkBits2Float(0x41e372b3), SkBits2Float(0x423cb63e), SkBits2Float(0x41e2ac0b), SkBits2Float(0x423c0517), SkBits2Float(0x41e10834), SkBits2Float(0x423c52ea));  // 28.431f, 47.178f, 28.334f, 47.005f, 28.129f, 47.081f\r
+path.cubicTo(SkBits2Float(0x41e0db26), SkBits2Float(0x423cd809), SkBits2Float(0x41e0999c), SkBits2Float(0x423d46a0), SkBits2Float(0x41dfd0e8), SkBits2Float(0x423d72a8));  // 28.107f, 47.211f, 28.075f, 47.319f, 27.977f, 47.362f\r
+path.cubicTo(SkBits2Float(0x41deb230), SkBits2Float(0x423dcab8), SkBits2Float(0x41dd3b67), SkBits2Float(0x423d8829), SkBits2Float(0x41dc312a), SkBits2Float(0x423d46a0));  // 27.837f, 47.448f, 27.654f, 47.383f, 27.524f, 47.319f\r
+path.cubicTo(SkBits2Float(0x41dae563), SkBits2Float(0x423cf8cd), SkBits2Float(0x41d98316), SkBits2Float(0x423cccc5), SkBits2Float(0x41d8645d), SkBits2Float(0x423c6971));  // 27.362f, 47.243f, 27.189f, 47.2f, 27.049f, 47.103f\r
+path.cubicTo(SkBits2Float(0x41d7df3e), SkBits2Float(0x423c52ea), SkBits2Float(0x41d72d11), SkBits2Float(0x423c311f), SkBits2Float(0x41d6a9ff), SkBits2Float(0x423c0517));  // 26.984f, 47.081f, 26.897f, 47.048f, 26.833f, 47.005f\r
+path.cubicTo(SkBits2Float(0x41d67cf1), SkBits2Float(0x423bfada), SkBits2Float(0x41d572b3), SkBits2Float(0x423b967f), SkBits2Float(0x41d5893a), SkBits2Float(0x423b967f));  // 26.811f, 46.995f, 26.681f, 46.897f, 26.692f, 46.897f\r
+path.cubicTo(SkBits2Float(0x41d5893a), SkBits2Float(0x423b967f), SkBits2Float(0x41d5b648), SkBits2Float(0x423b6a77), SkBits2Float(0x41d5ccd0), SkBits2Float(0x423b6a77));  // 26.692f, 46.897f, 26.714f, 46.854f, 26.725f, 46.854f\r
+path.cubicTo(SkBits2Float(0x41d6eb88), SkBits2Float(0x423b3e6f), SkBits2Float(0x41d8374f), SkBits2Float(0x423b967f), SkBits2Float(0x41d8fdf7), SkBits2Float(0x423bad06));  // 26.865f, 46.811f, 27.027f, 46.897f, 27.124f, 46.919f\r
+path.cubicTo(SkBits2Float(0x41d9c6ab), SkBits2Float(0x423bb84a), SkBits2Float(0x41da49be), SkBits2Float(0x423bb84a), SkBits2Float(0x41db1066), SkBits2Float(0x423bd90e));  // 27.222f, 46.93f, 27.286f, 46.93f, 27.383f, 46.962f\r
+path.cubicTo(SkBits2Float(0x41db810a), SkBits2Float(0x423bd90e), SkBits2Float(0x41dc5e39), SkBits2Float(0x423bfad9), SkBits2Float(0x41dcf7d3), SkBits2Float(0x423bef95));  // 27.438f, 46.962f, 27.546f, 46.995f, 27.621f, 46.984f\r
+path.cubicTo(SkBits2Float(0x41ddd502), SkBits2Float(0x423bc38d), SkBits2Float(0x41dd4fe3), SkBits2Float(0x423b332b), SkBits2Float(0x41dd7cf2), SkBits2Float(0x423ab94f));  // 27.729f, 46.941f, 27.664f, 46.8f, 27.686f, 46.681f\r
+path.cubicTo(SkBits2Float(0x41dda7f4), SkBits2Float(0x423a77c6), SkBits2Float(0x41de2d13), SkBits2Float(0x423a29f3), SkBits2Float(0x41de70a8), SkBits2Float(0x423a136c));  // 27.707f, 46.617f, 27.772f, 46.541f, 27.805f, 46.519f\r
+path.cubicTo(SkBits2Float(0x41dfba62), SkBits2Float(0x4239c69f), SkBits2Float(0x41e253fc), SkBits2Float(0x423a092f), SkBits2Float(0x41e372b4), SkBits2Float(0x423a4bbe));  // 27.966f, 46.444f, 28.291f, 46.509f, 28.431f, 46.574f\r
+path.cubicTo(SkBits2Float(0x41e40e5a), SkBits2Float(0x423a6c83), SkBits2Float(0x41e49379), SkBits2Float(0x423a8d47), SkBits2Float(0x41e55a21), SkBits2Float(0x423ab94f));  // 28.507f, 46.606f, 28.572f, 46.638f, 28.669f, 46.681f\r
+path.lineTo(SkBits2Float(0x41e58523), SkBits2Float(0x423acfd6));  // 28.69f, 46.703f\r
+path.cubicTo(SkBits2Float(0x41e5b231), SkBits2Float(0x423acfd6), SkBits2Float(0x41e60a42), SkBits2Float(0x423ac492), SkBits2Float(0x41e66252), SkBits2Float(0x423acfd6));  // 28.712f, 46.703f, 28.755f, 46.692f, 28.798f, 46.703f\r
+path.cubicTo(SkBits2Float(0x41e66252), SkBits2Float(0x423ab94f), SkBits2Float(0x41e68f60), SkBits2Float(0x423ab94f), SkBits2Float(0x41e6a5e8), SkBits2Float(0x423aae0b));  // 28.798f, 46.681f, 28.82f, 46.681f, 28.831f, 46.67f\r
+path.cubicTo(SkBits2Float(0x41e6fdf8), SkBits2Float(0x423a136b), SkBits2Float(0x41e5dd34), SkBits2Float(0x423978cc), SkBits2Float(0x41e68f61), SkBits2Float(0x4238fef0));  // 28.874f, 46.519f, 28.733f, 46.368f, 28.82f, 46.249f\r
+path.cubicTo(SkBits2Float(0x41e72b07), SkBits2Float(0x42389058), SkBits2Float(0x41eaf7d4), SkBits2Float(0x42391577), SkBits2Float(0x41ec5815), SkBits2Float(0x4238f3ac));  // 28.896f, 46.141f, 29.371f, 46.271f, 29.543f, 46.238f\r
+path.cubicTo(SkBits2Float(0x41ef1cb1), SkBits2Float(0x4238bd66), SkBits2Float(0x41ed6252), SkBits2Float(0x4237d4f4), SkBits2Float(0x41ede771), SkBits2Float(0x42369eae));  // 29.889f, 46.185f, 29.673f, 45.958f, 29.738f, 45.655f\r
+path.cubicTo(SkBits2Float(0x41ee28fa), SkBits2Float(0x423651e1), SkBits2Float(0x41ee8317), SkBits2Float(0x42366868), SkBits2Float(0x41eedb27), SkBits2Float(0x42365c1f));  // 29.77f, 45.58f, 29.814f, 45.602f, 29.857f, 45.59f\r
+path.cubicTo(SkBits2Float(0x41ef0629), SkBits2Float(0x4236a9f2), SkBits2Float(0x41ef3337), SkBits2Float(0x42371889), SkBits2Float(0x41ef3337), SkBits2Float(0x42375b19));  // 29.878f, 45.666f, 29.9f, 45.774f, 29.9f, 45.839f\r
+path.cubicTo(SkBits2Float(0x41ef49be), SkBits2Float(0x4237e038), SkBits2Float(0x41ef3337), SkBits2Float(0x42386450), SkBits2Float(0x41ef49be), SkBits2Float(0x4238d2e8));  // 29.911f, 45.969f, 29.9f, 46.098f, 29.911f, 46.206f\r
+path.cubicTo(SkBits2Float(0x41ef8b47), SkBits2Float(0x42394cc3), SkBits2Float(0x41eff9df), SkBits2Float(0x4239e763), SkBits2Float(0x41f026ed), SkBits2Float(0x423a613e));  // 29.943f, 46.325f, 29.997f, 46.476f, 30.019f, 46.595f\r
+path.cubicTo(SkBits2Float(0x41f0ac0c), SkBits2Float(0x423b967d), SkBits2Float(0x41f11897), SkBits2Float(0x423ca0bb), SkBits2Float(0x41f1893b), SkBits2Float(0x423dd5fa));  // 30.084f, 46.897f, 30.137f, 47.157f, 30.192f, 47.459f\r
+path.cubicTo(SkBits2Float(0x41f19db6), SkBits2Float(0x423e1889), SkBits2Float(0x41f1f5c6), SkBits2Float(0x423e7bdd), SkBits2Float(0x41f20e5a), SkBits2Float(0x423ebe6d));  // 30.202f, 47.524f, 30.245f, 47.621f, 30.257f, 47.686f\r
+path.cubicTo(SkBits2Float(0x41f27ae5), SkBits2Float(0x423f9059), SkBits2Float(0x41f2be7b), SkBits2Float(0x42406d88), SkBits2Float(0x41f3168b), SkBits2Float(0x424128ec));  // 30.31f, 47.891f, 30.343f, 48.107f, 30.386f, 48.29f\r
+path.cubicTo(SkBits2Float(0x41f35814), SkBits2Float(0x42418203), SkBits2Float(0x41f35814), SkBits2Float(0x4241e556), SkBits2Float(0x41f38523), SkBits2Float(0x42423329));  // 30.418f, 48.377f, 30.418f, 48.474f, 30.44f, 48.55f\r
+path.cubicTo(SkBits2Float(0x41f3b025), SkBits2Float(0x424248aa), SkBits2Float(0x41f420c9), SkBits2Float(0x424275b8), SkBits2Float(0x41f46252), SkBits2Float(0x424280fc));  // 30.461f, 48.571f, 30.516f, 48.615f, 30.548f, 48.626f\r
+path.cubicTo(SkBits2Float(0x41f4fdf8), SkBits2Float(0x4242967d), SkBits2Float(0x41f5db27), SkBits2Float(0x424275b8), SkBits2Float(0x41f674c1), SkBits2Float(0x424280fc));  // 30.624f, 48.647f, 30.732f, 48.615f, 30.807f, 48.626f\r
+path.cubicTo(SkBits2Float(0x41f8f5c7), SkBits2Float(0x4242967d), SkBits2Float(0x41fc5609), SkBits2Float(0x424280fc), SkBits2Float(0x41feeb8a), SkBits2Float(0x4242a1c1));  // 31.12f, 48.647f, 31.542f, 48.626f, 31.865f, 48.658f\r
+path.cubicTo(SkBits2Float(0x41ff45a7), SkBits2Float(0x4242a1c1), SkBits2Float(0x41ffdf40), SkBits2Float(0x424280fc), SkBits2Float(0x4200322f), SkBits2Float(0x4242a1c1));  // 31.909f, 48.658f, 31.984f, 48.626f, 32.049f, 48.658f\r
+path.cubicTo(SkBits2Float(0x420048b6), SkBits2Float(0x4242a1c1), SkBits2Float(0x42005e37), SkBits2Float(0x4242c286), SkBits2Float(0x420074be), SkBits2Float(0x4242d90d));  // 32.071f, 48.658f, 32.092f, 48.69f, 32.114f, 48.712f\r
+path.cubicTo(SkBits2Float(0x420074be), SkBits2Float(0x4242ee8e), SkBits2Float(0x42008002), SkBits2Float(0x42431b9c), SkBits2Float(0x420074be), SkBits2Float(0x4243311d));  // 32.114f, 48.733f, 32.125f, 48.777f, 32.114f, 48.798f\r
+path.lineTo(SkBits2Float(0x420052f3), SkBits2Float(0x42433c61));  // 32.081f, 48.809f\r
+path.cubicTo(SkBits2Float(0x42001cad), SkBits2Float(0x42439fb5), SkBits2Float(0x41ff2f1d), SkBits2Float(0x42436869), SkBits2Float(0x41fe7cf0), SkBits2Float(0x4243aaf9));  // 32.028f, 48.906f, 31.898f, 48.852f, 31.811f, 48.917f\r
+path.cubicTo(SkBits2Float(0x41fe24e0), SkBits2Float(0x4243cbbe), SkBits2Float(0x41fd3336), SkBits2Float(0x4244cab7), SkBits2Float(0x41fd0627), SkBits2Float(0x42450203));  // 31.768f, 48.949f, 31.65f, 49.198f, 31.628f, 49.252f\r
+path.cubicTo(SkBits2Float(0x41fcc291), SkBits2Float(0x4245438c), SkBits2Float(0x41fcc291), SkBits2Float(0x42457bde), SkBits2Float(0x41fcae17), SkBits2Float(0x4245be6d));  // 31.595f, 49.316f, 31.595f, 49.371f, 31.585f, 49.436f\r
+path.cubicTo(SkBits2Float(0x41fc9790), SkBits2Float(0x4245fff6), SkBits2Float(0x41fc28f8), SkBits2Float(0x4246634a), SkBits2Float(0x41fc1271), SkBits2Float(0x4246b11d));  // 31.574f, 49.5f, 31.52f, 49.597f, 31.509f, 49.673f\r
+path.cubicTo(SkBits2Float(0x41fbba61), SkBits2Float(0x42478e4c), SkBits2Float(0x41fba3d9), SkBits2Float(0x424880fc), SkBits2Float(0x41fbba61), SkBits2Float(0x424974b2));  // 31.466f, 49.889f, 31.455f, 50.126f, 31.466f, 50.364f\r
+path.cubicTo(SkBits2Float(0x41fbd0e8), SkBits2Float(0x424a7de9), SkBits2Float(0x41fc8109), SkBits2Float(0x424b5b18), SkBits2Float(0x41fd47b1), SkBits2Float(0x424c4ecf));  // 31.477f, 50.623f, 31.563f, 50.839f, 31.66f, 51.077f\r
+path.cubicTo(SkBits2Float(0x41fd8b47), SkBits2Float(0x424c915e), SkBits2Float(0x41fdccd0), SkBits2Float(0x424cde2b), SkBits2Float(0x41fe3b67), SkBits2Float(0x424d167d));  // 31.693f, 51.142f, 31.725f, 51.217f, 31.779f, 51.272f\r
+path.cubicTo(SkBits2Float(0x41fe9377), SkBits2Float(0x424d4dc9), SkBits2Float(0x41fec086), SkBits2Float(0x424d8f52), SkBits2Float(0x41ff2f1d), SkBits2Float(0x424dc69e));  // 31.822f, 51.326f, 31.844f, 51.39f, 31.898f, 51.444f\r
+path.cubicTo(SkBits2Float(0x41ff70a6), SkBits2Float(0x424df3ac), SkBits2Float(0x41ffdf3e), SkBits2Float(0x424e092d), SkBits2Float(0x42000626), SkBits2Float(0x424e3536));  // 31.93f, 51.488f, 31.984f, 51.509f, 32.006f, 51.552f\r
+path.cubicTo(SkBits2Float(0x42003d72), SkBits2Float(0x424e6c82), SkBits2Float(0x4200c18a), SkBits2Float(0x424f3e6d), SkBits2Float(0x4201041a), SkBits2Float(0x424f49b1));  // 32.06f, 51.606f, 32.189f, 51.811f, 32.254f, 51.822f\r
+path.cubicTo(SkBits2Float(0x420172b2), SkBits2Float(0x424f6b7c), SkBits2Float(0x4201ec8d), SkBits2Float(0x424e8309), SkBits2Float(0x42020d51), SkBits2Float(0x424e4bbd));  // 32.362f, 51.855f, 32.481f, 51.628f, 32.513f, 51.574f\r
+path.cubicTo(SkBits2Float(0x4202be78), SkBits2Float(0x424d5807), SkBits2Float(0x42037ae2), SkBits2Float(0x424c6557), SkBits2Float(0x42044cce), SkBits2Float(0x424b9265));  // 32.686f, 51.336f, 32.87f, 51.099f, 33.075f, 50.893f\r
+path.cubicTo(SkBits2Float(0x42049aa1), SkBits2Float(0x424b4598), SkBits2Float(0x4204e874), SkBits2Float(0x424ae13e), SkBits2Float(0x42054084), SkBits2Float(0x424a9471));  // 33.151f, 50.818f, 33.227f, 50.72f, 33.313f, 50.645f\r
+path.cubicTo(SkBits2Float(0x42058d51), SkBits2Float(0x424a51e2), SkBits2Float(0x4206ef9f), SkBits2Float(0x4248fad7), SkBits2Float(0x42071063), SkBits2Float(0x4248cecf));  // 33.388f, 50.58f, 33.734f, 50.245f, 33.766f, 50.202f\r
+path.cubicTo(SkBits2Float(0x42075e36), SkBits2Float(0x424876bf), SkBits2Float(0x4207cccd), SkBits2Float(0x4248342f), SkBits2Float(0x42083021), SkBits2Float(0x4247e65c));  // 33.842f, 50.116f, 33.95f, 50.051f, 34.047f, 49.975f\r
+path.cubicTo(SkBits2Float(0x42088831), SkBits2Float(0x42478308), SkBits2Float(0x4208f6c9), SkBits2Float(0x4247363b), SkBits2Float(0x420970a4), SkBits2Float(0x4246f3ac));  // 34.133f, 49.878f, 34.241f, 49.803f, 34.36f, 49.738f\r
+path.cubicTo(SkBits2Float(0x4209f5c3), SkBits2Float(0x42469a95), SkBits2Float(0x420a645a), SkBits2Float(0x42464285), SkBits2Float(0x420add2f), SkBits2Float(0x4245f4b2));  // 34.49f, 49.651f, 34.598f, 49.565f, 34.716f, 49.489f\r
+path.cubicTo(SkBits2Float(0x420b2b02), SkBits2Float(0x4245be6c), SkBits2Float(0x420bc5a2), SkBits2Float(0x42455a12), SkBits2Float(0x420b8418), SkBits2Float(0x4244eb7b));  // 34.792f, 49.436f, 34.943f, 49.338f, 34.879f, 49.23f\r
+path.cubicTo(SkBits2Float(0x420b624d), SkBits2Float(0x4244cab6), SkBits2Float(0x420b1fbe), SkBits2Float(0x42449eae), SkBits2Float(0x420b0a3d), SkBits2Float(0x42448827));  // 34.846f, 49.198f, 34.781f, 49.155f, 34.76f, 49.133f\r
+path.cubicTo(SkBits2Float(0x420abd70), SkBits2Float(0x424450db), SkBits2Float(0x420a9ba5), SkBits2Float(0x42440e4c), SkBits2Float(0x420a5916), SkBits2Float(0x4243d700));  // 34.685f, 49.079f, 34.652f, 49.014f, 34.587f, 48.96f\r
+path.cubicTo(SkBits2Float(0x420a3851), SkBits2Float(0x4243b63b), SkBits2Float(0x420a21ca), SkBits2Float(0x4243b63b), SkBits2Float(0x4209f5c2), SkBits2Float(0x42439fb4));  // 34.555f, 48.928f, 34.533f, 48.928f, 34.49f, 48.906f\r
+path.cubicTo(SkBits2Float(0x4209ea7e), SkBits2Float(0x42439470), SkBits2Float(0x4209ea7e), SkBits2Float(0x424373ac), SkBits2Float(0x4209d3f7), SkBits2Float(0x42436868));  // 34.479f, 48.895f, 34.479f, 48.863f, 34.457f, 48.852f\r
+path.cubicTo(SkBits2Float(0x4209b332), SkBits2Float(0x424352e7), SkBits2Float(0x42099db1), SkBits2Float(0x42435e2b), SkBits2Float(0x42097be7), SkBits2Float(0x424352e7));  // 34.425f, 48.831f, 34.404f, 48.842f, 34.371f, 48.831f\r
+path.cubicTo(SkBits2Float(0x420970a3), SkBits2Float(0x42433c60), SkBits2Float(0x42096560), SkBits2Float(0x42431b9b), SkBits2Float(0x4209449b), SkBits2Float(0x42431b9b));  // 34.36f, 48.809f, 34.349f, 48.777f, 34.317f, 48.777f\r
+path.cubicTo(SkBits2Float(0x4208f6c8), SkBits2Float(0x4242e349), SkBits2Float(0x42089eb8), SkBits2Float(0x4242c284), SkBits2Float(0x42083020), SkBits2Float(0x4242a1c0));  // 34.241f, 48.722f, 34.155f, 48.69f, 34.047f, 48.658f\r
+path.cubicTo(SkBits2Float(0x42080f5b), SkBits2Float(0x4242967c), SkBits2Float(0x4207d810), SkBits2Float(0x42425f31), SkBits2Float(0x4207c188), SkBits2Float(0x42425f31));  // 34.015f, 48.647f, 33.961f, 48.593f, 33.939f, 48.593f\r
+path.cubicTo(SkBits2Float(0x420748b3), SkBits2Float(0x424227e5), SkBits2Float(0x42066040), SkBits2Float(0x4241fbdd), SkBits2Float(0x4205b957), SkBits2Float(0x42421ca2));  // 33.821f, 48.539f, 33.594f, 48.496f, 33.431f, 48.528f\r
+path.cubicTo(SkBits2Float(0x4204c6a7), SkBits2Float(0x42423329), SkBits2Float(0x42041580), SkBits2Float(0x4242ad04), SkBits2Float(0x42032d0d), SkBits2Float(0x4242c285));  // 33.194f, 48.55f, 33.021f, 48.669f, 32.794f, 48.69f\r
+path.cubicTo(SkBits2Float(0x42032d0d), SkBits2Float(0x4242b848), SkBits2Float(0x420322d0), SkBits2Float(0x4242a1c0), SkBits2Float(0x42032d0d), SkBits2Float(0x4242a1c0));  // 32.794f, 48.68f, 32.784f, 48.658f, 32.794f, 48.658f\r
+path.cubicTo(SkBits2Float(0x42032d0d), SkBits2Float(0x424280fb), SkBits2Float(0x42036459), SkBits2Float(0x424275b8), SkBits2Float(0x42036f9c), SkBits2Float(0x42426a74));  // 32.794f, 48.626f, 32.848f, 48.615f, 32.859f, 48.604f\r
+path.cubicTo(SkBits2Float(0x4203e977), SkBits2Float(0x4241cfd4), SkBits2Float(0x4204580f), SkBits2Float(0x42418201), SkBits2Float(0x420529fa), SkBits2Float(0x42413f72));  // 32.978f, 48.453f, 33.086f, 48.377f, 33.291f, 48.312f\r
+path.lineTo(SkBits2Float(0x42054abf), SkBits2Float(0x424128eb));  // 33.323f, 48.29f\r
+path.cubicTo(SkBits2Float(0x4205cfde), SkBits2Float(0x4240fde9), SkBits2Float(0x420649b9), SkBits2Float(0x4240fde9), SkBits2Float(0x4206b850), SkBits2Float(0x4240b016));  // 33.453f, 48.248f, 33.572f, 48.248f, 33.68f, 48.172f\r
+path.cubicTo(SkBits2Float(0x4206a1c9), SkBits2Float(0x4240998f), SkBits2Float(0x4206b850), SkBits2Float(0x42408e4b), SkBits2Float(0x4206a1c9), SkBits2Float(0x424078ca));  // 33.658f, 48.15f, 33.68f, 48.139f, 33.658f, 48.118f\r
+path.cubicTo(SkBits2Float(0x42068104), SkBits2Float(0x4240363b), SkBits2Float(0x42054081), SkBits2Float(0x423fb11c), SkBits2Float(0x4204d1ea), SkBits2Float(0x423f9057));  // 33.626f, 48.053f, 33.313f, 47.923f, 33.205f, 47.891f\r
+path.cubicTo(SkBits2Float(0x42044ccb), SkBits2Float(0x423f79d0), SkBits2Float(0x42035915), SkBits2Float(0x423f644f), SkBits2Float(0x4202be75), SkBits2Float(0x423f8513));  // 33.075f, 47.869f, 32.837f, 47.848f, 32.686f, 47.88f\r
+path.cubicTo(SkBits2Float(0x42022f19), SkBits2Float(0x423f9b9a), SkBits2Float(0x4201c081), SkBits2Float(0x423fde2a), SkBits2Float(0x420125e2), SkBits2Float(0x423ff3ab));  // 32.546f, 47.902f, 32.438f, 47.967f, 32.287f, 47.988f\r
+path.lineTo(SkBits2Float(0x42010f5b), SkBits2Float(0x423fc7a3));  // 32.265f, 47.945f\r
+path.cubicTo(SkBits2Float(0x4201a9fb), SkBits2Float(0x423f167c), SkBits2Float(0x42036459), SkBits2Float(0x423d5c1e), SkBits2Float(0x4204580f), SkBits2Float(0x423d198f));  // 32.416f, 47.772f, 32.848f, 47.34f, 33.086f, 47.275f\r
+path.cubicTo(SkBits2Float(0x4205b957), SkBits2Float(0x423cabfe), SkBits2Float(0x4207c188), SkBits2Float(0x423cd806), SkBits2Float(0x42090d4e), SkBits2Float(0x423d24d3));  // 33.431f, 47.168f, 33.939f, 47.211f, 34.263f, 47.286f\r
+path.cubicTo(SkBits2Float(0x420ae871), SkBits2Float(0x423d936b), SkBits2Float(0x420c9892), SkBits2Float(0x423e7bdd), SkBits2Float(0x420e6871), SkBits2Float(0x423ed3ee));  // 34.727f, 47.394f, 35.149f, 47.621f, 35.602f, 47.707f\r
+path.cubicTo(SkBits2Float(0x42103956), SkBits2Float(0x423f438c), SkBits2Float(0x42121479), SkBits2Float(0x423f0b3a), SkBits2Float(0x4213c49a), SkBits2Float(0x423e2e0b));  // 36.056f, 47.816f, 36.52f, 47.761f, 36.942f, 47.545f\r
+path.cubicTo(SkBits2Float(0x4214cdd1), SkBits2Float(0x423db536), SkBits2Float(0x4215c081), SkBits2Float(0x423d24d4), SkBits2Float(0x42169db1), SkBits2Float(0x423c696f));  // 37.201f, 47.427f, 37.438f, 47.286f, 37.654f, 47.103f\r
+path.cubicTo(SkBits2Float(0x4216eb84), SkBits2Float(0x423c26e0), SkBits2Float(0x4217df3a), SkBits2Float(0x423afbde), SkBits2Float(0x4218580f), SkBits2Float(0x423b75b9));  // 37.73f, 47.038f, 37.968f, 46.746f, 38.086f, 46.865f\r
+path.cubicTo(SkBits2Float(0x42189a9e), SkBits2Float(0x423bad05), SkBits2Float(0x421820c3), SkBits2Float(0x423c1b9c), SkBits2Float(0x4217ffff), SkBits2Float(0x423c311d));  // 38.151f, 46.919f, 38.032f, 47.027f, 38, 47.048f\r
+path.cubicTo(SkBits2Float(0x4217a6e8), SkBits2Float(0x423c9577), SkBits2Float(0x42173851), SkBits2Float(0x423ced87), SkBits2Float(0x4216cac0), SkBits2Float(0x423d5c1f));  // 37.913f, 47.146f, 37.805f, 47.232f, 37.698f, 47.34f\r
+path.cubicTo(SkBits2Float(0x42168831), SkBits2Float(0x423d9eae), SkBits2Float(0x421650e5), SkBits2Float(0x423deb7b), SkBits2Float(0x4215f7ce), SkBits2Float(0x423e23cd));  // 37.633f, 47.405f, 37.579f, 47.48f, 37.492f, 47.535f\r
+path.lineTo(SkBits2Float(0x4215f7ce), SkBits2Float(0x423e4492));  // 37.492f, 47.567f\r
+path.cubicTo(SkBits2Float(0x4215ed91), SkBits2Float(0x423e4fd6), SkBits2Float(0x4215d709), SkBits2Float(0x423e4492), SkBits2Float(0x4215cbc6), SkBits2Float(0x423e4fd6));  // 37.482f, 47.578f, 37.46f, 47.567f, 37.449f, 47.578f\r
+path.cubicTo(SkBits2Float(0x42158937), SkBits2Float(0x423e8722), SkBits2Float(0x42153126), SkBits2Float(0x423f00fd), SkBits2Float(0x4214ee97), SkBits2Float(0x423f3849));  // 37.384f, 47.632f, 37.298f, 47.751f, 37.233f, 47.805f\r
+path.cubicTo(SkBits2Float(0x4214d810), SkBits2Float(0x423f438d), SkBits2Float(0x4214cdd2), SkBits2Float(0x423f590e), SkBits2Float(0x4214cdd2), SkBits2Float(0x423f590e));  // 37.211f, 47.816f, 37.201f, 47.837f, 37.201f, 47.837f\r
+path.lineTo(SkBits2Float(0x4214b74b), SkBits2Float(0x423f590e));  // 37.179f, 47.837f\r
+path.lineTo(SkBits2Float(0x4214b74b), SkBits2Float(0x423f79d3));  // 37.179f, 47.869f\r
+path.cubicTo(SkBits2Float(0x42147fff), SkBits2Float(0x423f905a), SkBits2Float(0x421474bc), SkBits2Float(0x423fb11f), SkBits2Float(0x421448b3), SkBits2Float(0x423fc7a6));  // 37.125f, 47.891f, 37.114f, 47.923f, 37.071f, 47.945f\r
+path.lineTo(SkBits2Float(0x421448b3), SkBits2Float(0x423fdd27));  // 37.071f, 47.966f\r
+path.lineTo(SkBits2Float(0x42143332), SkBits2Float(0x423fdd27));  // 37.05f, 47.966f\r
+path.lineTo(SkBits2Float(0x4213b957), SkBits2Float(0x424077c7));  // 36.931f, 48.117f\r
+path.cubicTo(SkBits2Float(0x4213a2d0), SkBits2Float(0x4240830b), SkBits2Float(0x4213b957), SkBits2Float(0x4240988c), SkBits2Float(0x4213b957), SkBits2Float(0x4240988c));  // 36.909f, 48.128f, 36.931f, 48.149f, 36.931f, 48.149f\r
+path.cubicTo(SkBits2Float(0x4213c49b), SkBits2Float(0x4240988c), SkBits2Float(0x4213b957), SkBits2Float(0x4240ba57), SkBits2Float(0x4213da1c), SkBits2Float(0x4240af13));  // 36.942f, 48.149f, 36.931f, 48.182f, 36.963f, 48.171f\r
+path.cubicTo(SkBits2Float(0x42141cab), SkBits2Float(0x4240af13), SkBits2Float(0x4214a1ca), SkBits2Float(0x42405703), SkBits2Float(0x4214ee97), SkBits2Float(0x42403538));  // 37.028f, 48.171f, 37.158f, 48.085f, 37.233f, 48.052f\r
+path.cubicTo(SkBits2Float(0x42153126), SkBits2Float(0x42401473), SkBits2Float(0x42157ef9), SkBits2Float(0x423ffdec), SkBits2Float(0x4215cbc6), SkBits2Float(0x423fd1e4));  // 37.298f, 48.02f, 37.374f, 47.998f, 37.449f, 47.955f\r
+path.cubicTo(SkBits2Float(0x421650e5), SkBits2Float(0x423f8f55), SkBits2Float(0x4216cac0), SkBits2Float(0x423f4288), SkBits2Float(0x42178624), SkBits2Float(0x423f20bd));  // 37.579f, 47.89f, 37.698f, 47.815f, 37.881f, 47.782f\r
+path.cubicTo(SkBits2Float(0x42177ae0), SkBits2Float(0x423f8f55), SkBits2Float(0x421770a3), SkBits2Float(0x423fc6a0), SkBits2Float(0x42174395), SkBits2Float(0x423ffdec));  // 37.87f, 47.89f, 37.86f, 47.944f, 37.816f, 47.998f\r
+path.cubicTo(SkBits2Float(0x4216bf7c), SkBits2Float(0x4240ba56), SkBits2Float(0x4215ab02), SkBits2Float(0x4241332b), SkBits2Float(0x4214f9db), SkBits2Float(0x4241c38e));  // 37.687f, 48.182f, 37.417f, 48.3f, 37.244f, 48.441f\r
+path.cubicTo(SkBits2Float(0x42143333), SkBits2Float(0x424274b5), SkBits2Float(0x42136b85), SkBits2Float(0x42433019), SkBits2Float(0x4212c5a2), SkBits2Float(0x4243f7c7));  // 37.05f, 48.614f, 36.855f, 48.797f, 36.693f, 48.992f\r
+path.cubicTo(SkBits2Float(0x42115917), SkBits2Float(0x42459b9e), SkBits2Float(0x421022d1), SkBits2Float(0x42476c83), SkBits2Float(0x420f0313), SkBits2Float(0x4249311f));  // 36.337f, 49.402f, 36.034f, 49.856f, 35.753f, 50.298f\r
+path.cubicTo(SkBits2Float(0x420e1ba6), SkBits2Float(0x424a936d), SkBits2Float(0x420d75c3), SkBits2Float(0x424c21c3), SkBits2Float(0x420cdb23), SkBits2Float(0x424dba56));  // 35.527f, 50.644f, 35.365f, 51.033f, 35.214f, 51.432f\r
+path.cubicTo(SkBits2Float(0x420c3f7d), SkBits2Float(0x424f6a77), SkBits2Float(0x420b8419), SkBits2Float(0x42510e4e), SkBits2Float(0x420b1fbf), SkBits2Float(0x4252d3f0));  // 35.062f, 51.854f, 34.879f, 52.264f, 34.781f, 52.707f\r
+path.cubicTo(SkBits2Float(0x420ad2f2), SkBits2Float(0x42548e4e), SkBits2Float(0x420ab127), SkBits2Float(0x42565e2d), SkBits2Float(0x420a9063), SkBits2Float(0x4258188c));  // 34.706f, 53.139f, 34.673f, 53.592f, 34.641f, 54.024f\r
+path.cubicTo(SkBits2Float(0x420a7ae2), SkBits2Float(0x4258882a), SkBits2Float(0x420a9ba7), SkBits2Float(0x4258e03a), SkBits2Float(0x420a9ba7), SkBits2Float(0x42594ed2));  // 34.62f, 54.133f, 34.652f, 54.219f, 34.652f, 54.327f\r
+path.cubicTo(SkBits2Float(0x420aa6eb), SkBits2Float(0x425e301a), SkBits2Float(0x420c820d), SkBits2Float(0x4262c495), SkBits2Float(0x420ecbc8), SkBits2Float(0x4266fff9));  // 34.663f, 55.547f, 35.127f, 56.692f, 35.699f, 57.75f\r
+path.cubicTo(SkBits2Float(0x420eed93), SkBits2Float(0x426721c4), SkBits2Float(0x420f0e57), SkBits2Float(0x42674dcc), SkBits2Float(0x420f3022), SkBits2Float(0x42676e91));  // 35.732f, 57.783f, 35.764f, 57.826f, 35.797f, 57.858f\r
+path.cubicTo(SkBits2Float(0x420f7df5), SkBits2Float(0x42680a37), SkBits2Float(0x420fbf7e), SkBits2Float(0x42689993), SkBits2Float(0x42100d51), SkBits2Float(0x42693433));  // 35.873f, 58.01f, 35.937f, 58.15f, 36.013f, 58.301f\r
+path.cubicTo(SkBits2Float(0x42102e16), SkBits2Float(0x426955fe), SkBits2Float(0x42105a1e), SkBits2Float(0x426976c2), SkBits2Float(0x42106561), SkBits2Float(0x42698d4a));  // 36.045f, 58.334f, 36.088f, 58.366f, 36.099f, 58.388f\r
+path.cubicTo(SkBits2Float(0x4210872c), SkBits2Float(0x4269e55a), SkBits2Float(0x4210a7f0), SkBits2Float(0x426a3d6b), SkBits2Float(0x4210ea80), SkBits2Float(0x426a6a79));  // 36.132f, 58.474f, 36.164f, 58.56f, 36.229f, 58.604f\r
+path.cubicTo(SkBits2Float(0x42119aa1), SkBits2Float(0x426acdcd), SkBits2Float(0x42131376), SkBits2Float(0x426a48ae), SkBits2Float(0x4213e561), SkBits2Float(0x426a6a79));  // 36.401f, 58.701f, 36.769f, 58.571f, 36.974f, 58.604f\r
+path.cubicTo(SkBits2Float(0x4213fae2), SkBits2Float(0x426a75bd), SkBits2Float(0x42141cad), SkBits2Float(0x426a8b3e), SkBits2Float(0x42143d71), SkBits2Float(0x426a8b3e));  // 36.995f, 58.615f, 37.028f, 58.636f, 37.06f, 58.636f\r
+path.cubicTo(SkBits2Float(0x42141cac), SkBits2Float(0x426acdcd), SkBits2Float(0x42143334), SkBits2Float(0x426aee92), SkBits2Float(0x42141cac), SkBits2Float(0x426b25de));  // 37.028f, 58.701f, 37.05f, 58.733f, 37.028f, 58.787f\r
+path.cubicTo(SkBits2Float(0x4213e560), SkBits2Float(0x426b9fb9), SkBits2Float(0x4212dc29), SkBits2Float(0x426d0d4b), SkBits2Float(0x4212f1aa), SkBits2Float(0x426da7ea));  // 36.974f, 58.906f, 36.715f, 59.263f, 36.736f, 59.414f\r
+path.cubicTo(SkBits2Float(0x4212f1aa), SkBits2Float(0x426dfffa), SkBits2Float(0x4213b958), SkBits2Float(0x426ed1e6), SkBits2Float(0x4213c49c), SkBits2Float(0x426edd29));  // 36.736f, 59.5f, 36.931f, 59.705f, 36.942f, 59.716f\r
+path.cubicTo(SkBits2Float(0x4213e561), SkBits2Float(0x426f1fb8), SkBits2Float(0x42143d71), SkBits2Float(0x426f9993), SkBits2Float(0x421448b5), SkBits2Float(0x426ffce7));  // 36.974f, 59.781f, 37.06f, 59.9f, 37.071f, 59.997f\r
+path.cubicTo(SkBits2Float(0x421448b5), SkBits2Float(0x427076c2), SkBits2Float(0x4214072c), SkBits2Float(0x4270ef97), SkBits2Float(0x4213fae2), SkBits2Float(0x427148ae));  // 37.071f, 60.116f, 37.007f, 60.234f, 36.995f, 60.321f\r
+path.cubicTo(SkBits2Float(0x4213e561), SkBits2Float(0x42717ffa), SkBits2Float(0x4213fae2), SkBits2Float(0x42718b3d), SkBits2Float(0x4213e561), SkBits2Float(0x4271b746));  // 36.974f, 60.375f, 36.995f, 60.386f, 36.974f, 60.429f\r
+path.cubicTo(SkBits2Float(0x4213da1d), SkBits2Float(0x4271ccc7), SkBits2Float(0x4213b959), SkBits2Float(0x42721a9a), SkBits2Float(0x4213a2d2), SkBits2Float(0x42721a9a));  // 36.963f, 60.45f, 36.931f, 60.526f, 36.909f, 60.526f\r
+path.cubicTo(SkBits2Float(0x42134ac2), SkBits2Float(0x42723c65), SkBits2Float(0x4212d0e6), SkBits2Float(0x427225de), SkBits2Float(0x42126d93), SkBits2Float(0x427225de));  // 36.823f, 60.559f, 36.704f, 60.537f, 36.607f, 60.537f\r
+path.cubicTo(SkBits2Float(0x42124bc8), SkBits2Float(0x427225de), SkBits2Float(0x4211bc6c), SkBits2Float(0x42723c65), SkBits2Float(0x42119064), SkBits2Float(0x42723c65));  // 36.574f, 60.537f, 36.434f, 60.559f, 36.391f, 60.559f\r
+path.cubicTo(SkBits2Float(0x4210d3fa), SkBits2Float(0x427246a2), SkBits2Float(0x420ff6ca), SkBits2Float(0x4272301b), SkBits2Float(0x420f676e), SkBits2Float(0x4272686d));  // 36.207f, 60.569f, 35.991f, 60.547f, 35.851f, 60.602f\r
+path.cubicTo(SkBits2Float(0x420eb647), SkBits2Float(0x4272b53a), SkBits2Float(0x420e52f3), SkBits2Float(0x42737ce8), SkBits2Float(0x420dc291), SkBits2Float(0x4273f5bd));  // 35.678f, 60.677f, 35.581f, 60.872f, 35.44f, 60.99f\r
+path.cubicTo(SkBits2Float(0x420d116a), SkBits2Float(0x4274861f), SkBits2Float(0x420c5606), SkBits2Float(0x4274e973), SkBits2Float(0x420b999b), SkBits2Float(0x4275580b));  // 35.267f, 61.131f, 35.084f, 61.228f, 34.9f, 61.336f\r
+path.cubicTo(SkBits2Float(0x420a9ba7), SkBits2Float(0x4275fdee), SkBits2Float(0x4209b335), SkBits2Float(0x42768d4a), SkBits2Float(0x42089eba), SkBits2Float(0x4276f1a5));  // 34.652f, 61.498f, 34.425f, 61.638f, 34.155f, 61.736f\r
+path.cubicTo(SkBits2Float(0x4207ab04), SkBits2Float(0x42773e72), SkBits2Float(0x4206a1cc), SkBits2Float(0x42778101), SkBits2Float(0x4205b95a), SkBits2Float(0x4277c391));  // 33.917f, 61.811f, 33.658f, 61.876f, 33.431f, 61.941f\r
+path.cubicTo(SkBits2Float(0x4203bd73), SkBits2Float(0x42786974), SkBits2Float(0x4201cbc9), SkBits2Float(0x42793b60), SkBits2Float(0x4200ac0a), SkBits2Float(0x427af5be));  // 32.935f, 62.103f, 32.449f, 62.308f, 32.168f, 62.74f\r
+path.cubicTo(SkBits2Float(0x420074be), SkBits2Float(0x427b428b), SkBits2Float(0x41ffb43d), SkBits2Float(0x427c4cc8), SkBits2Float(0x41ff872f), SkBits2Float(0x427ca4d9));  // 32.114f, 62.815f, 31.963f, 63.075f, 31.941f, 63.161f\r
+path.cubicTo(SkBits2Float(0x41ff872f), SkBits2Float(0x427cbb60), SkBits2Float(0x41ff9db6), SkBits2Float(0x427cd0e1), SkBits2Float(0x41ff872f), SkBits2Float(0x427ce768));  // 31.941f, 63.183f, 31.952f, 63.204f, 31.941f, 63.226f\r
+path.cubicTo(SkBits2Float(0x41ffb43d), SkBits2Float(0x427cfce9), SkBits2Float(0x41ffb43d), SkBits2Float(0x427cfce9), SkBits2Float(0x41ffdf3f), SkBits2Float(0x427d1370));  // 31.963f, 63.247f, 31.963f, 63.247f, 31.984f, 63.269f\r
+path.cubicTo(SkBits2Float(0x4200ac0a), SkBits2Float(0x427cfce9), SkBits2Float(0x42010f5e), SkBits2Float(0x427cd0e1), SkBits2Float(0x4201a9fe), SkBits2Float(0x427ca4d8));  // 32.168f, 63.247f, 32.265f, 63.204f, 32.416f, 63.161f\r
+path.cubicTo(SkBits2Float(0x4201c085), SkBits2Float(0x427c9994), SkBits2Float(0x4201f7d1), SkBits2Float(0x427c78d0), SkBits2Float(0x42020315), SkBits2Float(0x427c78d0));  // 32.438f, 63.15f, 32.492f, 63.118f, 32.503f, 63.118f\r
+path.cubicTo(SkBits2Float(0x420223da), SkBits2Float(0x427c6249), SkBits2Float(0x42022f1d), SkBits2Float(0x427c78d0), SkBits2Float(0x42023a61), SkBits2Float(0x427c78d0));  // 32.535f, 63.096f, 32.546f, 63.118f, 32.557f, 63.118f\r
+path.cubicTo(SkBits2Float(0x42025b26), SkBits2Float(0x427c6249), SkBits2Float(0x42028834), SkBits2Float(0x427c4184), SkBits2Float(0x4202a8f9), SkBits2Float(0x427c4184));  // 32.589f, 63.096f, 32.633f, 63.064f, 32.665f, 63.064f\r
+path.cubicTo(SkBits2Float(0x4203e97c), SkBits2Float(0x427bc7a9), SkBits2Float(0x42061db5), SkBits2Float(0x427ba6e4), SkBits2Float(0x4207b649), SkBits2Float(0x427bfef5));  // 32.978f, 62.945f, 33.529f, 62.913f, 33.928f, 62.999f\r
+path.cubicTo(SkBits2Float(0x42089ebc), SkBits2Float(0x427c20c0), SkBits2Float(0x420970a7), SkBits2Float(0x427c78d0), SkBits2Float(0x420a21ce), SkBits2Float(0x427cc59d));  // 34.155f, 63.032f, 34.36f, 63.118f, 34.533f, 63.193f\r
+path.cubicTo(SkBits2Float(0x420a6fa1), SkBits2Float(0x427cdc24), SkBits2Float(0x420ab12a), SkBits2Float(0x427ce768), SkBits2Float(0x420af3ba), SkBits2Float(0x427d1370));  // 34.609f, 63.215f, 34.673f, 63.226f, 34.738f, 63.269f\r
+path.cubicTo(SkBits2Float(0x420b0a41), SkBits2Float(0x427d1370), SkBits2Float(0x420af3ba), SkBits2Float(0x427d353b), SkBits2Float(0x420b1585), SkBits2Float(0x427d407e));  // 34.76f, 63.269f, 34.738f, 63.302f, 34.771f, 63.313f\r
+path.cubicTo(SkBits2Float(0x420b0a41), SkBits2Float(0x427d6143), SkBits2Float(0x420b0a41), SkBits2Float(0x427d8207), SkBits2Float(0x420af3ba), SkBits2Float(0x427dae0f));  // 34.76f, 63.345f, 34.76f, 63.377f, 34.738f, 63.42f\r
+path.cubicTo(SkBits2Float(0x420ad2f5), SkBits2Float(0x427df09e), SkBits2Float(0x420a2d12), SkBits2Float(0x427e54f8), SkBits2Float(0x420a4293), SkBits2Float(0x427ee455));  // 34.706f, 63.485f, 34.544f, 63.583f, 34.565f, 63.723f\r
+path.cubicTo(SkBits2Float(0x420a591a), SkBits2Float(0x427f051a), SkBits2Float(0x420ad2f5), SkBits2Float(0x427f3122), SkBits2Float(0x420af3ba), SkBits2Float(0x427f47a9));  // 34.587f, 63.755f, 34.706f, 63.798f, 34.738f, 63.82f\r
+path.cubicTo(SkBits2Float(0x420af3ba), SkBits2Float(0x427f5d2a), SkBits2Float(0x420af3ba), SkBits2Float(0x427f73b1), SkBits2Float(0x420b0a41), SkBits2Float(0x427f7ef5));  // 34.738f, 63.841f, 34.738f, 63.863f, 34.76f, 63.874f\r
+path.cubicTo(SkBits2Float(0x420add33), SkBits2Float(0x427fccc8), SkBits2Float(0x420a21ce), SkBits2Float(0x42803e74), SkBits2Float(0x420a2d12), SkBits2Float(0x4280701e));  // 34.716f, 63.95f, 34.533f, 64.122f, 34.544f, 64.219f\r
+path.cubicTo(SkBits2Float(0x420a3856), SkBits2Float(0x42808bc4), SkBits2Float(0x420ad2f5), SkBits2Float(0x4280a7ed), SkBits2Float(0x420ae876), SkBits2Float(0x4280b2ad));  // 34.555f, 64.273f, 34.706f, 64.328f, 34.727f, 64.349f\r
+path.cubicTo(SkBits2Float(0x420af3ba), SkBits2Float(0x4280bdf1), SkBits2Float(0x420add32), SkBits2Float(0x4280c8b1), SkBits2Float(0x420af3ba), SkBits2Float(0x4280d3f5));  // 34.738f, 64.371f, 34.716f, 64.392f, 34.738f, 64.414f\r
+path.cubicTo(SkBits2Float(0x420abd74), SkBits2Float(0x4280f53d), SkBits2Float(0x4209f5c6), SkBits2Float(0x4281428d), SkBits2Float(0x420a21ce), SkBits2Float(0x42816e95));  // 34.685f, 64.479f, 34.49f, 64.63f, 34.533f, 64.716f\r
+path.cubicTo(SkBits2Float(0x420a4293), SkBits2Float(0x4281957e), SkBits2Float(0x420ad2f5), SkBits2Float(0x4281a664), SkBits2Float(0x420ae876), SkBits2Float(0x4281c187));  // 34.565f, 64.792f, 34.706f, 64.825f, 34.727f, 64.878f\r
+path.cubicTo(SkBits2Float(0x420ae876), SkBits2Float(0x4281c729), SkBits2Float(0x420add32), SkBits2Float(0x4281d26c), SkBits2Float(0x420ae876), SkBits2Float(0x4281d26c));  // 34.727f, 64.889f, 34.716f, 64.911f, 34.727f, 64.911f\r
+path.cubicTo(SkBits2Float(0x420aa6ed), SkBits2Float(0x4281fe74), SkBits2Float(0x420a591a), SkBits2Float(0x42821a1a), SkBits2Float(0x4209f5c6), SkBits2Float(0x42823b62));  // 34.663f, 64.997f, 34.587f, 65.051f, 34.49f, 65.116f\r
+path.cubicTo(SkBits2Float(0x420a168b), SkBits2Float(0x42825caa), SkBits2Float(0x420a010a), SkBits2Float(0x4282624b), SkBits2Float(0x420a2d12), SkBits2Float(0x42827850));  // 34.522f, 65.181f, 34.501f, 65.192f, 34.544f, 65.235f\r
+path.cubicTo(SkBits2Float(0x420a645e), SkBits2Float(0x428288b2), SkBits2Float(0x420a9baa), SkBits2Float(0x428293f6), SkBits2Float(0x420ad2f5), SkBits2Float(0x4282a458));  // 34.598f, 65.267f, 34.652f, 65.289f, 34.706f, 65.321f\r
+path.cubicTo(SkBits2Float(0x420ad2f5), SkBits2Float(0x4282a458), SkBits2Float(0x420add32), SkBits2Float(0x4282d685), SkBits2Float(0x420abd74), SkBits2Float(0x4282c5a0));  // 34.706f, 65.321f, 34.716f, 65.419f, 34.685f, 65.386f\r
+path.cubicTo(SkBits2Float(0x420aa6ed), SkBits2Float(0x4282cb42), SkBits2Float(0x420a9066), SkBits2Float(0x4282e146), SkBits2Float(0x420a6fa1), SkBits2Float(0x4282e6e8));  // 34.663f, 65.397f, 34.641f, 65.44f, 34.609f, 65.451f\r
+path.cubicTo(SkBits2Float(0x4209df3f), SkBits2Float(0x42830830), SkBits2Float(0x4208f6cc), SkBits2Float(0x4282bae0), SkBits2Float(0x42088834), SkBits2Float(0x4282a459));  // 34.468f, 65.516f, 34.241f, 65.365f, 34.133f, 65.321f\r
+path.cubicTo(SkBits2Float(0x420846ab), SkBits2Float(0x42829915), SkBits2Float(0x42080f5f), SkBits2Float(0x42829915), SkBits2Float(0x4207c18c), SkBits2Float(0x428293f7));  // 34.069f, 65.299f, 34.015f, 65.299f, 33.939f, 65.289f\r
+path.cubicTo(SkBits2Float(0x42079584), SkBits2Float(0x428288b3), SkBits2Float(0x420748b7), SkBits2Float(0x42826d0e), SkBits2Float(0x42071ba9), SkBits2Float(0x42826d0e));  // 33.896f, 65.267f, 33.821f, 65.213f, 33.777f, 65.213f\r
+path.cubicTo(SkBits2Float(0x4206cedc), SkBits2Float(0x4282624d), SkBits2Float(0x42068109), SkBits2Float(0x4282624d), SkBits2Float(0x42061272), SkBits2Float(0x4282624d));  // 33.702f, 65.192f, 33.626f, 65.192f, 33.518f, 65.192f\r
+path.cubicTo(SkBits2Float(0x4205cfe3), SkBits2Float(0x42825cab), SkBits2Float(0x4205614b), SkBits2Float(0x42824bc6), SkBits2Float(0x42051ebc), SkBits2Float(0x42824bc6));  // 33.453f, 65.181f, 33.345f, 65.148f, 33.28f, 65.148f\r
+path.cubicTo(SkBits2Float(0x42037ae5), SkBits2Float(0x428246a7), SkBits2Float(0x4201cbca), SkBits2Float(0x42829eb8), SkBits2Float(0x4200ac0c), SkBits2Float(0x4282e147));  // 32.87f, 65.138f, 32.449f, 65.31f, 32.168f, 65.44f\r
+path.cubicTo(SkBits2Float(0x42008b47), SkBits2Float(0x4282e6e9), SkBits2Float(0x42005e39), SkBits2Float(0x4282fced), SkBits2Float(0x42003d74), SkBits2Float(0x4283028f));  // 32.136f, 65.451f, 32.092f, 65.494f, 32.06f, 65.505f\r
+path.cubicTo(SkBits2Float(0x41fdf9e2), SkBits2Float(0x42833f7d), SkBits2Float(0x41fa4190), SkBits2Float(0x42836041), SkBits2Float(0x41f674c3), SkBits2Float(0x42834fdf));  // 31.747f, 65.624f, 31.282f, 65.688f, 30.807f, 65.656f\r
+path.cubicTo(SkBits2Float(0x41f59794), SkBits2Float(0x4283451e), SkBits2Float(0x41f48d56), SkBits2Float(0x4283451e), SkBits2Float(0x41f3b027), SkBits2Float(0x428339db));  // 30.699f, 65.635f, 30.569f, 65.635f, 30.461f, 65.613f\r
+path.cubicTo(SkBits2Float(0x41f32d15), SkBits2Float(0x42832e97), SkBits2Float(0x41f2666d), SkBits2Float(0x428312f2), SkBits2Float(0x41f1b440), SkBits2Float(0x42830831));  // 30.397f, 65.591f, 30.3f, 65.537f, 30.213f, 65.516f\r
+path.cubicTo(SkBits2Float(0x41f1041f), SkBits2Float(0x4282fced), SkBits2Float(0x41f07f01), SkBits2Float(0x4282f74c), SkBits2Float(0x41efb859), SkBits2Float(0x4282e6e9));  // 30.127f, 65.494f, 30.062f, 65.483f, 29.965f, 65.451f\r
+path.cubicTo(SkBits2Float(0x41efa1d2), SkBits2Float(0x4282e147), SkBits2Float(0x41ef6049), SkBits2Float(0x4282d687), SkBits2Float(0x41ef49c1), SkBits2Float(0x4282d687));  // 29.954f, 65.44f, 29.922f, 65.419f, 29.911f, 65.419f\r
+path.cubicTo(SkBits2Float(0x41ef062b), SkBits2Float(0x4282cb43), SkBits2Float(0x41eec4a2), SkBits2Float(0x4282cb43), SkBits2Float(0x41ee560b), SkBits2Float(0x4282c5a2));  // 29.878f, 65.397f, 29.846f, 65.397f, 29.792f, 65.386f\r
+path.cubicTo(SkBits2Float(0x41ee1275), SkBits2Float(0x4282c000), SkBits2Float(0x41ed8f63), SkBits2Float(0x4282a45a), SkBits2Float(0x41ed3546), SkBits2Float(0x42829eb9));  // 29.759f, 65.375f, 29.695f, 65.321f, 29.651f, 65.31f\r
+path.cubicTo(SkBits2Float(0x41ebbe7d), SkBits2Float(0x42827d71), SkBits2Float(0x41ea72b7), SkBits2Float(0x42825cad), SkBits2Float(0x41e91069), SkBits2Float(0x42823b65));  // 29.468f, 65.245f, 29.306f, 65.181f, 29.133f, 65.116f\r
+path.cubicTo(SkBits2Float(0x41e6fdfa), SkBits2Float(0x42820419), SkBits2Float(0x41e4a7f6), SkBits2Float(0x4281ab86), SkBits2Float(0x41e18b4a), SkBits2Float(0x4281ab86));  // 28.874f, 65.008f, 28.582f, 64.835f, 28.193f, 64.835f\r
+path.cubicTo(SkBits2Float(0x41de9bac), SkBits2Float(0x4281b128), SkBits2Float(0x41dcf7d5), SkBits2Float(0x4281fe78), SkBits2Float(0x41db3d77), SkBits2Float(0x428246a9));  // 27.826f, 64.846f, 27.621f, 64.997f, 27.405f, 65.138f\r
+path.cubicTo(SkBits2Float(0x41dacedf), SkBits2Float(0x4282570b), SkBits2Float(0x41da76cf), SkBits2Float(0x4282570b), SkBits2Float(0x41da0838), SkBits2Float(0x4282676e));  // 27.351f, 65.17f, 27.308f, 65.17f, 27.254f, 65.202f\r
+path.cubicTo(SkBits2Float(0x41d9f1b1), SkBits2Float(0x4282676e), SkBits2Float(0x41d9f1b1), SkBits2Float(0x42827853), SkBits2Float(0x41d9db2a), SkBits2Float(0x42827d72));  // 27.243f, 65.202f, 27.243f, 65.235f, 27.232f, 65.245f\r
+path.cubicTo(SkBits2Float(0x41d96c92), SkBits2Float(0x428288b6), SkBits2Float(0x41d91482), SkBits2Float(0x428288b6), SkBits2Float(0x41d8a5eb), SkBits2Float(0x42829eba));  // 27.178f, 65.267f, 27.135f, 65.267f, 27.081f, 65.31f\r
+path.lineTo(SkBits2Float(0x41d88f64), SkBits2Float(0x4282a9fe));  // 27.07f, 65.332f\r
+path.cubicTo(SkBits2Float(0x41d6eb8d), SkBits2Float(0x4282e14a), SkBits2Float(0x41d4ac10), SkBits2Float(0x42830291), SkBits2Float(0x41d25818), SkBits2Float(0x428312f4));  // 26.865f, 65.44f, 26.584f, 65.505f, 26.293f, 65.537f\r
+path.cubicTo(SkBits2Float(0x41d0b235), SkBits2Float(0x42831896), SkBits2Float(0x41ce74c4), SkBits2Float(0x428312f4), SkBits2Float(0x41cce568), SkBits2Float(0x42830292));  // 26.087f, 65.548f, 25.807f, 65.537f, 25.612f, 65.505f\r
+path.cubicTo(SkBits2Float(0x41cca3df), SkBits2Float(0x4282fcf0), SkBits2Float(0x41cc1ec0), SkBits2Float(0x4282f1ad), SkBits2Float(0x41cbf3be), SkBits2Float(0x4282f1ad));  // 25.58f, 65.494f, 25.515f, 65.472f, 25.494f, 65.472f\r
+path.cubicTo(SkBits2Float(0x41ca9170), SkBits2Float(0x4282dba9), SkBits2Float(0x41c99dba), SkBits2Float(0x4282e14b), SkBits2Float(0x41c8687a), SkBits2Float(0x4282cb47));  // 25.321f, 65.429f, 25.202f, 65.44f, 25.051f, 65.397f\r
+path.cubicTo(SkBits2Float(0x41c7b64d), SkBits2Float(0x4282c003), SkBits2Float(0x41c71cb3), SkBits2Float(0x4282bae5), SkBits2Float(0x41c6560b), SkBits2Float(0x4282a9ff));  // 24.964f, 65.375f, 24.889f, 65.365f, 24.792f, 65.332f\r
+path.lineTo(SkBits2Float(0x41c628fd), SkBits2Float(0x42829ebb));  // 24.77f, 65.31f\r
+path.cubicTo(SkBits2Float(0x41c58d57), SkBits2Float(0x428293fa), SkBits2Float(0x41c53547), SkBits2Float(0x42829919), SkBits2Float(0x41c4b028), SkBits2Float(0x428293fa));  // 24.694f, 65.289f, 24.651f, 65.299f, 24.586f, 65.289f\r
+path.lineTo(SkBits2Float(0x41c46e9f), SkBits2Float(0x42828315));  // 24.554f, 65.256f\r
+path.cubicTo(SkBits2Float(0x41c1d712), SkBits2Float(0x4282570d), SkBits2Float(0x41be20cc), SkBits2Float(0x428209bd), SkBits2Float(0x41bb0420), SkBits2Float(0x42820f5f));  // 24.23f, 65.17f, 23.766f, 65.019f, 23.377f, 65.03f\r
+path.cubicTo(SkBits2Float(0x41b9a1d2), SkBits2Float(0x42820f5f), SkBits2Float(0x41b7e774), SkBits2Float(0x42823024), SkBits2Float(0x41b6dd37), SkBits2Float(0x428246ab));  // 23.204f, 65.03f, 22.988f, 65.094f, 22.858f, 65.138f\r
+path.cubicTo(SkBits2Float(0x41b5eb8d), SkBits2Float(0x4282570d), SkBits2Float(0x41b54fe7), SkBits2Float(0x4282570d), SkBits2Float(0x41b45c31), SkBits2Float(0x42826770));  // 22.74f, 65.17f, 22.664f, 65.17f, 22.545f, 65.202f\r
+path.cubicTo(SkBits2Float(0x41b3ed99), SkBits2Float(0x42826d12), SkBits2Float(0x41b35400), SkBits2Float(0x428288b8), SkBits2Float(0x41b2fbef), SkBits2Float(0x428293fb));  // 22.491f, 65.213f, 22.416f, 65.267f, 22.373f, 65.289f\r
+path.cubicTo(SkBits2Float(0x41b274c4), SkBits2Float(0x4282991a), SkBits2Float(0x41b249c2), SkBits2Float(0x428293fb), SkBits2Float(0x41b1c4a3), SkBits2Float(0x42829ebc));  // 22.307f, 65.299f, 22.286f, 65.289f, 22.221f, 65.31f\r
+path.cubicTo(SkBits2Float(0x41b1560b), SkBits2Float(0x4282a45e), SkBits2Float(0x41b08f64), SkBits2Float(0x4282c004), SkBits2Float(0x41aff3be), SkBits2Float(0x4282cb47));  // 22.167f, 65.321f, 22.07f, 65.375f, 21.994f, 65.397f\r
+path.cubicTo(SkBits2Float(0x41aea7f7), SkBits2Float(0x4282e14b), SkBits2Float(0x41ad893f), SkBits2Float(0x4282f1ad), SkBits2Float(0x41ac3d78), SkBits2Float(0x42830835));  // 21.832f, 65.44f, 21.692f, 65.472f, 21.53f, 65.516f\r
+path.cubicTo(SkBits2Float(0x41ac106a), SkBits2Float(0x428312f6), SkBits2Float(0x41aba1d2), SkBits2Float(0x42831e39), SkBits2Float(0x41ab76d0), SkBits2Float(0x428323db));  // 21.508f, 65.537f, 21.454f, 65.559f, 21.433f, 65.57f\r
+path.cubicTo(SkBits2Float(0x41aac4a3), SkBits2Float(0x4283343d), SkBits2Float(0x41aa560b), SkBits2Float(0x4283343d), SkBits2Float(0x41a9ba66), SkBits2Float(0x42833f81));  // 21.346f, 65.602f, 21.292f, 65.602f, 21.216f, 65.624f\r
+path.lineTo(SkBits2Float(0x41a98f64), SkBits2Float(0x42834fe3));  // 21.195f, 65.656f\r
+path.cubicTo(SkBits2Float(0x41a96256), SkBits2Float(0x42834fe3), SkBits2Float(0x41a93754), SkBits2Float(0x42834522), SkBits2Float(0x41a920cc), SkBits2Float(0x42834fe3));  // 21.173f, 65.656f, 21.152f, 65.635f, 21.141f, 65.656f\r
+path.cubicTo(SkBits2Float(0x41a90a45), SkBits2Float(0x42834fe3), SkBits2Float(0x41a8b234), SkBits2Float(0x42836045), SkBits2Float(0x41a89bad), SkBits2Float(0x42836b89));  // 21.13f, 65.656f, 21.087f, 65.688f, 21.076f, 65.71f\r
+path.cubicTo(SkBits2Float(0x41a7d505), SkBits2Float(0x42837beb), SkBits2Float(0x41a7666e), SkBits2Float(0x4283818d), SkBits2Float(0x41a6cac8), SkBits2Float(0x42839d33));  // 20.979f, 65.742f, 20.925f, 65.753f, 20.849f, 65.807f\r
+path.cubicTo(SkBits2Float(0x41a6b64d), SkBits2Float(0x4283a2d5), SkBits2Float(0x41a672b8), SkBits2Float(0x4283b3ba), SkBits2Float(0x41a65e3d), SkBits2Float(0x4283b8d9));  // 20.839f, 65.818f, 20.806f, 65.851f, 20.796f, 65.861f\r
+path.cubicTo(SkBits2Float(0x41a6312f), SkBits2Float(0x4283be7b), SkBits2Float(0x41a60420), SkBits2Float(0x4283b8d9), SkBits2Float(0x41a5ed99), SkBits2Float(0x4283be7b));  // 20.774f, 65.872f, 20.752f, 65.861f, 20.741f, 65.872f\r
+path.cubicTo(SkBits2Float(0x41a5810e), SkBits2Float(0x4283cedd), SkBits2Float(0x41a4e568), SkBits2Float(0x428406ac), SkBits2Float(0x41a48d57), SkBits2Float(0x42840bcb));  // 20.688f, 65.904f, 20.612f, 66.013f, 20.569f, 66.023f\r
+path.lineTo(SkBits2Float(0x41a41ebf), SkBits2Float(0x42840bcb));  // 20.515f, 66.023f\r
+path.cubicTo(SkBits2Float(0x41a40838), SkBits2Float(0x4283fb69), SkBits2Float(0x41a3f1b1), SkBits2Float(0x428406ac), SkBits2Float(0x41a3f1b1), SkBits2Float(0x4283fb69));  // 20.504f, 65.991f, 20.493f, 66.013f, 20.493f, 65.991f\r
+path.cubicTo(SkBits2Float(0x41a38319), SkBits2Float(0x4283b8da), SkBits2Float(0x41a4b859), SkBits2Float(0x4282f750), SkBits2Float(0x41a4e567), SkBits2Float(0x4282cb48));  // 20.439f, 65.861f, 20.59f, 65.483f, 20.612f, 65.397f\r
+path.cubicTo(SkBits2Float(0x41a5ed98), SkBits2Float(0x4281d273), SkBits2Float(0x41a74fe6), SkBits2Float(0x4280ea00), SkBits2Float(0x41a96255), SkBits2Float(0x42802e19));  // 20.741f, 64.911f, 20.914f, 64.457f, 21.173f, 64.09f\r
+path.cubicTo(SkBits2Float(0x41aa2b09), SkBits2Float(0x427fccd6), SkBits2Float(0x41ab1ebf), SkBits2Float(0x427f6982), SkBits2Float(0x41abfbef), SkBits2Float(0x427eefa7));  // 21.271f, 63.95f, 21.39f, 63.853f, 21.498f, 63.734f\r
+path.cubicTo(SkBits2Float(0x41ac7f01), SkBits2Float(0x427e9690), SkBits2Float(0x41aced99), SkBits2Float(0x427e49c4), SkBits2Float(0x41ad893f), SkBits2Float(0x427e0734));  // 21.562f, 63.647f, 21.616f, 63.572f, 21.692f, 63.507f\r
+path.cubicTo(SkBits2Float(0x41aed506), SkBits2Float(0x427d8215), SkBits2Float(0x41b020cc), SkBits2Float(0x427d137e), SkBits2Float(0x41b1831a), SkBits2Float(0x427cbb6d));  // 21.854f, 63.377f, 22.016f, 63.269f, 22.189f, 63.183f\r
+path.cubicTo(SkBits2Float(0x41b1f1b2), SkBits2Float(0x427c99a2), SkBits2Float(0x41b26049), SkBits2Float(0x427c6256), SkBits2Float(0x41b2cee1), SkBits2Float(0x427c4cd5));  // 22.243f, 63.15f, 22.297f, 63.096f, 22.351f, 63.075f\r
+path.cubicTo(SkBits2Float(0x41b3106a), SkBits2Float(0x427c2b0a), SkBits2Float(0x41b445aa), SkBits2Float(0x427bff02), SkBits2Float(0x41b49dba), SkBits2Float(0x427bde3d));  // 22.383f, 63.042f, 22.534f, 62.999f, 22.577f, 62.967f\r
+path.cubicTo(SkBits2Float(0x41b49dba), SkBits2Float(0x427bd2f9), SkBits2Float(0x41b4cac8), SkBits2Float(0x427ba6f1), SkBits2Float(0x41b4cac8), SkBits2Float(0x427ba6f1));  // 22.577f, 62.956f, 22.599f, 62.913f, 22.599f, 62.913f\r
+path.cubicTo(SkBits2Float(0x41b4cac8), SkBits2Float(0x427b6462), SkBits2Float(0x41b33b6c), SkBits2Float(0x427a4fe7), SkBits2Float(0x41b2fbef), SkBits2Float(0x427a189b));  // 22.599f, 62.848f, 22.404f, 62.578f, 22.373f, 62.524f\r
+path.cubicTo(SkBits2Float(0x41b2cee1), SkBits2Float(0x4279f7d6), SkBits2Float(0x41b19795), SkBits2Float(0x42796774), SkBits2Float(0x41b1560c), SkBits2Float(0x42795c31));  // 22.351f, 62.492f, 22.199f, 62.351f, 22.167f, 62.34f\r
+path.cubicTo(SkBits2Float(0x41b0e774), SkBits2Float(0x42793b6c), SkBits2Float(0x41aff3be), SkBits2Float(0x42795c31), SkBits2Float(0x41af70ac), SkBits2Float(0x42795c31));  // 22.113f, 62.308f, 21.994f, 62.34f, 21.93f, 62.34f\r
+path.cubicTo(SkBits2Float(0x41ae0e5e), SkBits2Float(0x42796775), SkBits2Float(0x41ac9589), SkBits2Float(0x427946b0), SkBits2Float(0x41ab76d1), SkBits2Float(0x42793b6c));  // 21.757f, 62.351f, 21.573f, 62.319f, 21.433f, 62.308f\r
+path.cubicTo(SkBits2Float(0x41aa3f85), SkBits2Float(0x42793028), SkBits2Float(0x41a94ddb), SkBits2Float(0x42793b6c), SkBits2Float(0x41a82d17), SkBits2Float(0x42793028));  // 21.281f, 62.297f, 21.163f, 62.308f, 21.022f, 62.297f\r
+path.cubicTo(SkBits2Float(0x41a5c298), SkBits2Float(0x42791aa7), SkBits2Float(0x41a2e775), SkBits2Float(0x4278ed99), SkBits2Float(0x41a07cf6), SkBits2Float(0x4278c190));  // 20.72f, 62.276f, 20.363f, 62.232f, 20.061f, 62.189f\r
+path.cubicTo(SkBits2Float(0x419f47b7), SkBits2Float(0x4278b753), SkBits2Float(0x419e810f), SkBits2Float(0x4278b753), SkBits2Float(0x419d4bcf), SkBits2Float(0x4278a0cb));  // 19.91f, 62.179f, 19.813f, 62.179f, 19.662f, 62.157f\r
+path.cubicTo(SkBits2Float(0x419c831b), SkBits2Float(0x42788a44), SkBits2Float(0x419b20cd), SkBits2Float(0x42785e3c), SkBits2Float(0x419a45aa), SkBits2Float(0x427847b4));  // 19.564f, 62.135f, 19.391f, 62.092f, 19.284f, 62.07f\r
+path.cubicTo(SkBits2Float(0x41949171), SkBits2Float(0x4277e460), SkBits2Float(0x418e5819), SkBits2Float(0x42778c50), SkBits2Float(0x41896a87), SkBits2Float(0x4275dd35));  // 18.571f, 61.973f, 17.793f, 61.887f, 17.177f, 61.466f\r
+path.cubicTo(SkBits2Float(0x4182efa6), SkBits2Float(0x4273a8fc), SkBits2Float(0x417fd71a), SkBits2Float(0x42703f83), SkBits2Float(0x4180dd37), SkBits2Float(0x426c5b29));  // 16.367f, 60.915f, 15.99f, 60.062f, 16.108f, 59.089f\r
+path.cubicTo(SkBits2Float(0x41813547), SkBits2Float(0x426b5d35), SkBits2Float(0x41821276), SkBits2Float(0x426a8006), SkBits2Float(0x4182560c), SkBits2Float(0x426976cf));  // 16.151f, 58.841f, 16.259f, 58.625f, 16.292f, 58.366f\r
+path.cubicTo(SkBits2Float(0x418228fe), SkBits2Float(0x426976cf), SkBits2Float(0x41823f85), SkBits2Float(0x42696b8b), SkBits2Float(0x418228fe), SkBits2Float(0x42694ac7));  // 16.27f, 58.366f, 16.281f, 58.355f, 16.27f, 58.323f\r
+path.cubicTo(SkBits2Float(0x4181a5ec), SkBits2Float(0x42696b8c), SkBits2Float(0x41813548), SkBits2Float(0x42696b8c), SkBits2Float(0x41809bae), SkBits2Float(0x4269560b));  // 16.206f, 58.355f, 16.151f, 58.355f, 16.076f, 58.334f\r
+path.cubicTo(SkBits2Float(0x4180b235), SkBits2Float(0x4269560b), SkBits2Float(0x4180439e), SkBits2Float(0x426976d0), SkBits2Float(0x4180168f), SkBits2Float(0x42696b8c));  // 16.087f, 58.334f, 16.033f, 58.366f, 16.011f, 58.355f\r
+path.cubicTo(SkBits2Float(0x417eccdc), SkBits2Float(0x4269560b), SkBits2Float(0x417e9fce), SkBits2Float(0x4268d0ec), SkBits2Float(0x417f4fef), SkBits2Float(0x42688319));  // 15.925f, 58.334f, 15.914f, 58.204f, 15.957f, 58.128f\r
+path.cubicTo(SkBits2Float(0x4180168f), SkBits2Float(0x4268364c), SkBits2Float(0x41849589), SkBits2Float(0x4267a5ea), SkBits2Float(0x4185b441), SkBits2Float(0x42679069));  // 16.011f, 58.053f, 16.573f, 57.912f, 16.713f, 57.891f\r
+path.cubicTo(SkBits2Float(0x41891276), SkBits2Float(0x42674296), SkBits2Float(0x418c9dba), SkBits2Float(0x4266df42), SkBits2Float(0x418fd0ed), SkBits2Float(0x4266916f));  // 17.134f, 57.815f, 17.577f, 57.718f, 17.977f, 57.642f\r
+path.cubicTo(SkBits2Float(0x4190ae1c), SkBits2Float(0x42668732), SkBits2Float(0x4191333b), SkBits2Float(0x42668732), SkBits2Float(0x4192106a), SkBits2Float(0x426670aa));  // 18.085f, 57.632f, 18.15f, 57.632f, 18.258f, 57.61f\r
+path.cubicTo(SkBits2Float(0x4193189b), SkBits2Float(0x42665a23), SkBits2Float(0x4194a5eb), SkBits2Float(0x426622d7), SkBits2Float(0x4195dd37), SkBits2Float(0x42660d56));  // 18.387f, 57.588f, 18.581f, 57.534f, 18.733f, 57.513f\r
+path.cubicTo(SkBits2Float(0x41975400), SkBits2Float(0x4265e254), SkBits2Float(0x41988b4b), SkBits2Float(0x4265c18f), SkBits2Float(0x4199d506), SkBits2Float(0x4265ac0e));  // 18.916f, 57.471f, 19.068f, 57.439f, 19.229f, 57.418f\r
+path.moveTo(SkBits2Float(0x41a4e568), SkBits2Float(0x4277d0eb));  // 20.612f, 61.954f\r
+path.cubicTo(SkBits2Float(0x41a4cee1), SkBits2Float(0x4277d0eb), SkBits2Float(0x41a48d58), SkBits2Float(0x4277f1b0), SkBits2Float(0x41a48d58), SkBits2Float(0x4277f1b0));  // 20.601f, 61.954f, 20.569f, 61.986f, 20.569f, 61.986f\r
+path.cubicTo(SkBits2Float(0x41a3831b), SkBits2Float(0x42781275), SkBits2Float(0x41a0c08b), SkBits2Float(0x4277c5a8), SkBits2Float(0x419fe35c), SkBits2Float(0x4277af21));  // 20.439f, 62.018f, 20.094f, 61.943f, 19.986f, 61.921f\r
+path.cubicTo(SkBits2Float(0x419dd0ed), SkBits2Float(0x42778319), SkBits2Float(0x419bbc73), SkBits2Float(0x42775711), SkBits2Float(0x4199c08b), SkBits2Float(0x42771481));  // 19.727f, 61.878f, 19.467f, 61.835f, 19.219f, 61.77f\r
+path.cubicTo(SkBits2Float(0x4199687b), SkBits2Float(0x4277093d), SkBits2Float(0x4198f7d7), SkBits2Float(0x4276f3bc), SkBits2Float(0x4198b64e), SkBits2Float(0x4276dd35));  // 19.176f, 61.759f, 19.121f, 61.738f, 19.089f, 61.716f\r
+path.cubicTo(SkBits2Float(0x419847b6), SkBits2Float(0x4276d1f1), SkBits2Float(0x4198062d), SkBits2Float(0x4276dd35), SkBits2Float(0x4197ae1d), SkBits2Float(0x4276d1f1));  // 19.035f, 61.705f, 19.003f, 61.716f, 18.96f, 61.705f\r
+path.cubicTo(SkBits2Float(0x4196fbf0), SkBits2Float(0x4276c6ad), SkBits2Float(0x4196083a), SkBits2Float(0x42768f62), SkBits2Float(0x4195831b), SkBits2Float(0x427679e1));  // 18.873f, 61.694f, 18.754f, 61.64f, 18.689f, 61.619f\r
+path.cubicTo(SkBits2Float(0x41951690), SkBits2Float(0x4276635a), SkBits2Float(0x41950009), SkBits2Float(0x427679e1), SkBits2Float(0x4194a5ec), SkBits2Float(0x4276635a));  // 18.636f, 61.597f, 18.625f, 61.619f, 18.581f, 61.597f\r
+path.cubicTo(SkBits2Float(0x41940c52), SkBits2Float(0x42764dd9), SkBits2Float(0x41935a25), SkBits2Float(0x4276168d), SkBits2Float(0x4192c08c), SkBits2Float(0x42760006));  // 18.506f, 61.576f, 18.419f, 61.522f, 18.344f, 61.5f\r
+path.cubicTo(SkBits2Float(0x4190c298), SkBits2Float(0x42759cb2), SkBits2Float(0x418f6257), SkBits2Float(0x427544a2), SkBits2Float(0x418e2b0b), SkBits2Float(0x42748837));  // 18.095f, 61.403f, 17.923f, 61.317f, 17.771f, 61.133f\r
+path.cubicTo(SkBits2Float(0x418e1690), SkBits2Float(0x4274666c), SkBits2Float(0x418dd2fb), SkBits2Float(0x4274666c), SkBits2Float(0x418dbe80), SkBits2Float(0x42745c2f));  // 17.761f, 61.1f, 17.728f, 61.1f, 17.718f, 61.09f\r
+path.cubicTo(SkBits2Float(0x418da7f9), SkBits2Float(0x42742f21), SkBits2Float(0x418da7f9), SkBits2Float(0x42740e5c), SkBits2Float(0x418d6670), SkBits2Float(0x4273ed97));  // 17.707f, 61.046f, 17.707f, 61.014f, 17.675f, 60.982f\r
+path.cubicTo(SkBits2Float(0x418d22da), SkBits2Float(0x42739fc4), SkBits2Float(0x418ccaca), SkBits2Float(0x427373bc), SkBits2Float(0x418c9dbc), SkBits2Float(0x42731aa5));  // 17.642f, 60.906f, 17.599f, 60.863f, 17.577f, 60.776f\r
+path.cubicTo(SkBits2Float(0x418bd714), SkBits2Float(0x4271b95d), SkBits2Float(0x418d22db), SkBits2Float(0x4270999f), SkBits2Float(0x418fd0ef), SkBits2Float(0x4270418e));  // 17.48f, 60.431f, 17.642f, 60.15f, 17.977f, 60.064f\r
+path.cubicTo(SkBits2Float(0x41919fc8), SkBits2Float(0x426ffeff), SkBits2Float(0x4193df45), SkBits2Float(0x42701fc3), SkBits2Float(0x4195f3c0), SkBits2Float(0x4270841d));  // 18.203f, 59.999f, 18.484f, 60.031f, 18.744f, 60.129f\r
+path.cubicTo(SkBits2Float(0x419847b8), SkBits2Float(0x4270e771), SkBits2Float(0x419a5a26), SkBits2Float(0x42718211), SkBits2Float(0x419bd2fb), SkBits2Float(0x42723231));  // 19.035f, 60.226f, 19.294f, 60.377f, 19.478f, 60.549f\r
+path.cubicTo(SkBits2Float(0x419be982), SkBits2Float(0x42723e7b), SkBits2Float(0x419be982), SkBits2Float(0x42726a83), SkBits2Float(0x419c1484), SkBits2Float(0x42726a83));  // 19.489f, 60.561f, 19.489f, 60.604f, 19.51f, 60.604f\r
+path.cubicTo(SkBits2Float(0x419c4192), SkBits2Float(0x42728004), SkBits2Float(0x419c831c), SkBits2Float(0x42728004), SkBits2Float(0x419c99a3), SkBits2Float(0x4272968b));  // 19.532f, 60.625f, 19.564f, 60.625f, 19.575f, 60.647f\r
+path.cubicTo(SkBits2Float(0x419cdb2c), SkBits2Float(0x4272b750), SkBits2Float(0x419d083b), SkBits2Float(0x4272ee9b), SkBits2Float(0x419d3549), SkBits2Float(0x427325e7));  // 19.607f, 60.679f, 19.629f, 60.733f, 19.651f, 60.787f\r
+path.cubicTo(SkBits2Float(0x419e28ff), SkBits2Float(0x4273cbca), SkBits2Float(0x419f062e), SkBits2Float(0x4274666a), SkBits2Float(0x419ff7d8), SkBits2Float(0x42750c4d));  // 19.77f, 60.949f, 19.878f, 61.1f, 19.996f, 61.262f\r
+path.cubicTo(SkBits2Float(0x41a0c08c), SkBits2Float(0x42758628), SkBits2Float(0x41a1f5cc), SkBits2Float(0x4275df3f), SkBits2Float(0x41a2d2fb), SkBits2Float(0x42766357));  // 20.094f, 61.381f, 20.245f, 61.468f, 20.353f, 61.597f\r
+path.cubicTo(SkBits2Float(0x41a31484), SkBits2Float(0x42769aa3), SkBits2Float(0x41a36c95), SkBits2Float(0x4276f3b9), SkBits2Float(0x41a3db2c), SkBits2Float(0x42771fc1));  // 20.385f, 61.651f, 20.428f, 61.738f, 20.482f, 61.781f\r
+path.cubicTo(SkBits2Float(0x41a4083a), SkBits2Float(0x42774bc9), SkBits2Float(0x41a4b85b), SkBits2Float(0x42778315), SkBits2Float(0x41a4e569), SkBits2Float(0x4277af1d));  // 20.504f, 61.824f, 20.59f, 61.878f, 20.612f, 61.921f\r
+path.cubicTo(SkBits2Float(0x41a4e569), SkBits2Float(0x4277ba61), SkBits2Float(0x41a4cee2), SkBits2Float(0x4277c5a4), SkBits2Float(0x41a4e569), SkBits2Float(0x4277d0e8));  // 20.612f, 61.932f, 20.601f, 61.943f, 20.612f, 61.954f\r
+path.moveTo(SkBits2Float(0x41ad72b9), SkBits2Float(0x42786044));  // 21.681f, 62.094f\r
+path.cubicTo(SkBits2Float(0x41ac106b), SkBits2Float(0x42788c4c), SkBits2Float(0x41a9d0ee), SkBits2Float(0x4277d0e8), SkBits2Float(0x41a8b236), SkBits2Float(0x42778e58));  // 21.508f, 62.137f, 21.227f, 61.954f, 21.087f, 61.889f\r
+path.cubicTo(SkBits2Float(0x41a2fdfd), SkBits2Float(0x42761689), SkBits2Float(0x41a10215), SkBits2Float(0x42733c6c), SkBits2Float(0x419fb64f), SkBits2Float(0x42704ccf));  // 20.374f, 61.522f, 20.126f, 60.809f, 19.964f, 60.075f\r
+path.cubicTo(SkBits2Float(0x419f9fc8), SkBits2Float(0x42700a40), SkBits2Float(0x419f47b7), SkBits2Float(0x426f9ba8), SkBits2Float(0x419f3130), SkBits2Float(0x426f5919));  // 19.953f, 60.01f, 19.91f, 59.902f, 19.899f, 59.837f\r
+path.cubicTo(SkBits2Float(0x419f3130), SkBits2Float(0x426f0b46), SkBits2Float(0x419f47b7), SkBits2Float(0x426ec9bd), SkBits2Float(0x419f3130), SkBits2Float(0x426e70a6));  // 19.899f, 59.761f, 19.91f, 59.697f, 19.899f, 59.61f\r
+path.cubicTo(SkBits2Float(0x419f1aa9), SkBits2Float(0x426de14a), SkBits2Float(0x419f062e), SkBits2Float(0x426ced94), SkBits2Float(0x419f3130), SkBits2Float(0x426c5d31));  // 19.888f, 59.47f, 19.878f, 59.232f, 19.899f, 59.091f\r
+path.cubicTo(SkBits2Float(0x419f72b9), SkBits2Float(0x426befa0), SkBits2Float(0x419fe35d), SkBits2Float(0x426b8108), SkBits2Float(0x41a00e5f), SkBits2Float(0x426b3335));  // 19.931f, 58.984f, 19.986f, 58.876f, 20.007f, 58.8f\r
+path.cubicTo(SkBits2Float(0x41a0666f), SkBits2Float(0x426acfe1), SkBits2Float(0x41a10215), SkBits2Float(0x4269c6aa), SkBits2Float(0x41a19dbb), SkBits2Float(0x4269bb66));  // 20.05f, 58.703f, 20.126f, 58.444f, 20.202f, 58.433f\r
+path.cubicTo(SkBits2Float(0x41a220cd), SkBits2Float(0x4269bb66), SkBits2Float(0x41a2a5ec), SkBits2Float(0x4269f2b2), SkBits2Float(0x41a31484), SkBits2Float(0x426a3f7f));  // 20.266f, 58.433f, 20.331f, 58.487f, 20.385f, 58.562f\r
+path.cubicTo(SkBits2Float(0x41a3c6b1), SkBits2Float(0x426aa3d9), SkBits2Float(0x41a449c3), SkBits2Float(0x426b1cae), SkBits2Float(0x41a476d2), SkBits2Float(0x426b3e79));  // 20.472f, 58.66f, 20.536f, 58.778f, 20.558f, 58.811f\r
+path.cubicTo(SkBits2Float(0x41a5ac11), SkBits2Float(0x426c0521), SkBits2Float(0x41a6caca), SkBits2Float(0x426ce250), SkBits2Float(0x41a8189d), SkBits2Float(0x426da9fe));  // 20.709f, 59.005f, 20.849f, 59.221f, 21.012f, 59.416f\r
+path.cubicTo(SkBits2Float(0x41aa3f86), SkBits2Float(0x426f1689), SkBits2Float(0x41ac5401), SkBits2Float(0x4270841b), SkBits2Float(0x41ae7aeb), SkBits2Float(0x4271f0a6));  // 21.281f, 59.772f, 21.541f, 60.129f, 21.81f, 60.485f\r
+path.cubicTo(SkBits2Float(0x41af000a), SkBits2Float(0x427248b6), SkBits2Float(0x41afb237), SkBits2Float(0x4272a1cd), SkBits2Float(0x41b020ce), SkBits2Float(0x4272ee9a));  // 21.875f, 60.571f, 21.962f, 60.658f, 22.016f, 60.733f\r
+path.cubicTo(SkBits2Float(0x41b06257), SkBits2Float(0x42731aa2), SkBits2Float(0x41b19797), SkBits2Float(0x4273f7d1), SkBits2Float(0x41b19797), SkBits2Float(0x4274199c));  // 22.048f, 60.776f, 22.199f, 60.992f, 22.199f, 61.025f\r
+path.cubicTo(SkBits2Float(0x41b1c4a5), SkBits2Float(0x427424e0), SkBits2Float(0x41b1831c), SkBits2Float(0x42746669), SkBits2Float(0x41b1831c), SkBits2Float(0x42746669));  // 22.221f, 61.036f, 22.189f, 61.1f, 22.189f, 61.1f\r
+path.cubicTo(SkBits2Float(0x41ac3d7a), SkBits2Float(0x42742f1d), SkBits2Float(0x41a96257), SkBits2Float(0x4271ae17), SkBits2Float(0x41a7a7f9), SkBits2Float(0x426fb12a));  // 21.53f, 61.046f, 21.173f, 60.42f, 20.957f, 59.923f\r
+path.cubicTo(SkBits2Float(0x41a77cf7), SkBits2Float(0x426f9ba9), SkBits2Float(0x41a73b6e), SkBits2Float(0x426f79de), SkBits2Float(0x41a73b6e), SkBits2Float(0x426f591a));  // 20.936f, 59.902f, 20.904f, 59.869f, 20.904f, 59.837f\r
+path.cubicTo(SkBits2Float(0x41a6e151), SkBits2Float(0x426eea82), SkBits2Float(0x41a68941), SkBits2Float(0x426e6564), SkBits2Float(0x41a672ba), SkBits2Float(0x426dec8f));  // 20.86f, 59.729f, 20.817f, 59.599f, 20.806f, 59.481f\r
+path.cubicTo(SkBits2Float(0x41a65e3f), SkBits2Float(0x426daa00), SkBits2Float(0x41a68941), SkBits2Float(0x426d71ae), SkBits2Float(0x41a65e3f), SkBits2Float(0x426d50e9));  // 20.796f, 59.416f, 20.817f, 59.361f, 20.796f, 59.329f\r
+path.cubicTo(SkBits2Float(0x41a63131), SkBits2Float(0x426d24e1), SkBits2Float(0x41a56a89), SkBits2Float(0x426cf8d9), SkBits2Float(0x41a4fbf1), SkBits2Float(0x426cf8d9));  // 20.774f, 59.286f, 20.677f, 59.243f, 20.623f, 59.243f\r
+path.cubicTo(SkBits2Float(0x41a449c4), SkBits2Float(0x426ced95), SkBits2Float(0x41a36c95), SkBits2Float(0x426cf8d9), SkBits2Float(0x41a31484), SkBits2Float(0x426d24e1));  // 20.536f, 59.232f, 20.428f, 59.243f, 20.385f, 59.286f\r
+path.cubicTo(SkBits2Float(0x41a20a47), SkBits2Float(0x426d71ae), SkBits2Float(0x41a1f5cc), SkBits2Float(0x426f645e), SkBits2Float(0x41a220ce), SkBits2Float(0x42701fc2));  // 20.255f, 59.361f, 20.245f, 59.848f, 20.266f, 60.031f\r
+path.cubicTo(SkBits2Float(0x41a28f66), SkBits2Float(0x4272e45e), SkBits2Float(0x41a4b85b), SkBits2Float(0x4274c9be), SkBits2Float(0x41a7eb8e), SkBits2Float(0x427621ce));  // 20.32f, 60.723f, 20.59f, 61.197f, 20.99f, 61.533f\r
+path.cubicTo(SkBits2Float(0x41a82d17), SkBits2Float(0x42764293), SkBits2Float(0x41a870ad), SkBits2Float(0x42764293), SkBits2Float(0x41a8b236), SkBits2Float(0x4276591a));  // 21.022f, 61.565f, 21.055f, 61.565f, 21.087f, 61.587f\r
+path.cubicTo(SkBits2Float(0x41a90a46), SkBits2Float(0x427679df), SkBits2Float(0x41a93755), SkBits2Float(0x4276b12a), SkBits2Float(0x41a98f65), SkBits2Float(0x4276c6ab));  // 21.13f, 61.619f, 21.152f, 61.673f, 21.195f, 61.694f\r
+path.cubicTo(SkBits2Float(0x41aadb2c), SkBits2Float(0x42774086), SkBits2Float(0x41ac958a), SkBits2Float(0x42778e59), SkBits2Float(0x41adb64e), SkBits2Float(0x427828f9));  // 21.357f, 61.813f, 21.573f, 61.889f, 21.714f, 62.04f\r
+path.cubicTo(SkBits2Float(0x41adb64e), SkBits2Float(0x427828f9), SkBits2Float(0x41ad8940), SkBits2Float(0x42786045), SkBits2Float(0x41ad72b8), SkBits2Float(0x42786045));  // 21.714f, 62.04f, 21.692f, 62.094f, 21.681f, 62.094f\r
+path.moveTo(SkBits2Float(0x41bd168f), SkBits2Float(0x4267be7a));  // 23.636f, 57.936f\r
+path.cubicTo(SkBits2Float(0x41bd168f), SkBits2Float(0x42679caf), SkBits2Float(0x41bd2d16), SkBits2Float(0x4267666a), SkBits2Float(0x41bd168f), SkBits2Float(0x42674fe2));  // 23.636f, 57.903f, 23.647f, 57.85f, 23.636f, 57.828f\r
+path.cubicTo(SkBits2Float(0x41bd168f), SkBits2Float(0x4267449e), SkBits2Float(0x41bd0008), SkBits2Float(0x42674fe2), SkBits2Float(0x41bce981), SkBits2Float(0x42672f1d));  // 23.636f, 57.817f, 23.625f, 57.828f, 23.614f, 57.796f\r
+path.cubicTo(SkBits2Float(0x41bcd2fa), SkBits2Float(0x42672f1d), SkBits2Float(0x41bc9171), SkBits2Float(0x4267449e), SkBits2Float(0x41bc7ae9), SkBits2Float(0x42672f1d));  // 23.603f, 57.796f, 23.571f, 57.817f, 23.56f, 57.796f\r
+path.cubicTo(SkBits2Float(0x41bb9dba), SkBits2Float(0x4267d500), SkBits2Float(0x41bbb441), SkBits2Float(0x42693648), SkBits2Float(0x41bb72b8), SkBits2Float(0x426a1377));  // 23.452f, 57.958f, 23.463f, 58.303f, 23.431f, 58.519f\r
+path.cubicTo(SkBits2Float(0x41bb45aa), SkBits2Float(0x426a6c8e), SkBits2Float(0x41bb2f22), SkBits2Float(0x426acfe1), SkBits2Float(0x41bb189b), SkBits2Float(0x426b3335));  // 23.409f, 58.606f, 23.398f, 58.703f, 23.387f, 58.8f\r
+path.lineTo(SkBits2Float(0x41baed99), SkBits2Float(0x426b5f3d));  // 23.366f, 58.843f\r
+path.cubicTo(SkBits2Float(0x41baac10), SkBits2Float(0x426bd918), SkBits2Float(0x41bac08b), SkBits2Float(0x426c3129), SkBits2Float(0x41baac10), SkBits2Float(0x426cab04));  // 23.334f, 58.962f, 23.344f, 59.048f, 23.334f, 59.167f\r
+path.cubicTo(SkBits2Float(0x41ba7f02), SkBits2Float(0x426d50e7), SkBits2Float(0x41ba3b6c), SkBits2Float(0x426e0d52), SkBits2Float(0x41ba106a), SkBits2Float(0x426ec9bc));  // 23.312f, 59.329f, 23.279f, 59.513f, 23.258f, 59.697f\r
+path.cubicTo(SkBits2Float(0x41b9ccd4), SkBits2Float(0x426f645c), SkBits2Float(0x41b974c4), SkBits2Float(0x42701fc0), SkBits2Float(0x41b949c2), SkBits2Float(0x4270c5a3));  // 23.225f, 59.848f, 23.182f, 60.031f, 23.161f, 60.193f\r
+path.cubicTo(SkBits2Float(0x41b9333b), SkBits2Float(0x42713f7e), SkBits2Float(0x41b98b4b), SkBits2Float(0x4271820d), SkBits2Float(0x41b9f9e3), SkBits2Float(0x4271ae16));  // 23.15f, 60.312f, 23.193f, 60.377f, 23.247f, 60.42f\r
+path.cubicTo(SkBits2Float(0x41ba3b6c), SkBits2Float(0x42718d51), SkBits2Float(0x41ba7f02), SkBits2Float(0x4271b95a), SkBits2Float(0x41ba9589), SkBits2Float(0x42716b87));  // 23.279f, 60.388f, 23.312f, 60.431f, 23.323f, 60.355f\r
+path.cubicTo(SkBits2Float(0x41baac10), SkBits2Float(0x4271343b), SkBits2Float(0x41ba9589), SkBits2Float(0x4270e76e), SkBits2Float(0x41ba9589), SkBits2Float(0x4270999b));  // 23.334f, 60.301f, 23.323f, 60.226f, 23.323f, 60.15f\r
+path.cubicTo(SkBits2Float(0x41ba9589), SkBits2Float(0x4270418b), SkBits2Float(0x41bac08b), SkBits2Float(0x426fd1ed), SkBits2Float(0x41baed99), SkBits2Float(0x426f645c));  // 23.323f, 60.064f, 23.344f, 59.955f, 23.366f, 59.848f\r
+path.cubicTo(SkBits2Float(0x41bb2f22), SkBits2Float(0x426e6562), SkBits2Float(0x41bb9dba), SkBits2Float(0x426d3b66), SkBits2Float(0x41bbf5ca), SkBits2Float(0x426c3c6c));  // 23.398f, 59.599f, 23.452f, 59.308f, 23.495f, 59.059f\r
+path.cubicTo(SkBits2Float(0x41bc0e5d), SkBits2Float(0x426bb853), SkBits2Float(0x41bc0e5d), SkBits2Float(0x426b5f3d), SkBits2Float(0x41bc22d8), SkBits2Float(0x426ae562));  // 23.507f, 58.93f, 23.507f, 58.843f, 23.517f, 58.724f\r
+path.cubicTo(SkBits2Float(0x41bc395f), SkBits2Float(0x426a820e), SkBits2Float(0x41bc9170), SkBits2Float(0x4269f2b2), SkBits2Float(0x41bca7f7), SkBits2Float(0x42698f5e));  // 23.528f, 58.627f, 23.571f, 58.487f, 23.582f, 58.39f\r
+path.cubicTo(SkBits2Float(0x41bcd2f9), SkBits2Float(0x426920c6), SkBits2Float(0x41bca7f7), SkBits2Float(0x4268d2f4), SkBits2Float(0x41bcd2f9), SkBits2Float(0x4268645c));  // 23.603f, 58.282f, 23.582f, 58.206f, 23.603f, 58.098f\r
+path.cubicTo(SkBits2Float(0x41bcd2f9), SkBits2Float(0x42684291), SkBits2Float(0x41bd168f), SkBits2Float(0x4267df3d), SkBits2Float(0x41bd168f), SkBits2Float(0x4267be79));  // 23.603f, 58.065f, 23.636f, 57.968f, 23.636f, 57.936f\r
+path.moveTo(SkBits2Float(0x41bd6e9f), SkBits2Float(0x426e916b));  // 23.679f, 59.642f\r
+path.cubicTo(SkBits2Float(0x41bdb028), SkBits2Float(0x426d199c), SkBits2Float(0x41bdf3be), SkBits2Float(0x426bb854), SkBits2Float(0x41be6255), SkBits2Float(0x426a343c));  // 23.711f, 59.275f, 23.744f, 58.93f, 23.798f, 58.551f\r
+path.cubicTo(SkBits2Float(0x41be78dc), SkBits2Float(0x4269f2b3), SkBits2Float(0x41bed0ed), SkBits2Float(0x4269841b), SkBits2Float(0x41bed0ed), SkBits2Float(0x4269418c));  // 23.809f, 58.487f, 23.852f, 58.379f, 23.852f, 58.314f\r
+path.cubicTo(SkBits2Float(0x41bee774), SkBits2Float(0x4268bc6d), SkBits2Float(0x41bee774), SkBits2Float(0x42684edc), SkBits2Float(0x41bf1276), SkBits2Float(0x4267df3e));  // 23.863f, 58.184f, 23.863f, 58.077f, 23.884f, 57.968f\r
+path.cubicTo(SkBits2Float(0x41bf3f84), SkBits2Float(0x4267a7f2), SkBits2Float(0x41bf3f84), SkBits2Float(0x4267872e), SkBits2Float(0x41bf9795), SkBits2Float(0x426770a6));  // 23.906f, 57.914f, 23.906f, 57.882f, 23.949f, 57.86f\r
+path.cubicTo(SkBits2Float(0x41c0ccd4), SkBits2Float(0x42675b25), SkBits2Float(0x41c6810e), SkBits2Float(0x4268d2f4), SkBits2Float(0x41c6d91e), SkBits2Float(0x426920c7));  // 24.1f, 57.839f, 24.813f, 58.206f, 24.856f, 58.282f\r
+path.cubicTo(SkBits2Float(0x41c7333b), SkBits2Float(0x42696d94), SkBits2Float(0x41c7062c), SkBits2Float(0x4270e76f), SkBits2Float(0x41c6ae1c), SkBits2Float(0x42713f7f));  // 24.9f, 58.357f, 24.878f, 60.226f, 24.835f, 60.312f\r
+path.cubicTo(SkBits2Float(0x41c63f84), SkBits2Float(0x4271a2d3), SkBits2Float(0x41c3a7f7), SkBits2Float(0x42716b87), SkBits2Float(0x41c2cac8), SkBits2Float(0x427176cb));  // 24.781f, 60.409f, 24.457f, 60.355f, 24.349f, 60.366f\r
+path.cubicTo(SkBits2Float(0x41c2b441), SkBits2Float(0x427176cb), SkBits2Float(0x41c270ab), SkBits2Float(0x4271a2d3), SkBits2Float(0x41c245a9), SkBits2Float(0x4271a2d3));  // 24.338f, 60.366f, 24.305f, 60.409f, 24.284f, 60.409f\r
+path.cubicTo(SkBits2Float(0x41c1aa03), SkBits2Float(0x4271b95a), SkBits2Float(0x41c1106a), SkBits2Float(0x4271ae17), SkBits2Float(0x41c05e3c), SkBits2Float(0x4271b95a));  // 24.208f, 60.431f, 24.133f, 60.42f, 24.046f, 60.431f\r
+path.cubicTo(SkBits2Float(0x41bf1275), SkBits2Float(0x4271e562), SkBits2Float(0x41be4bcd), SkBits2Float(0x427227f2), SkBits2Float(0x41bcd2f8), SkBits2Float(0x4272322f));  // 23.884f, 60.474f, 23.787f, 60.539f, 23.603f, 60.549f\r
+path.cubicTo(SkBits2Float(0x41bc395e), SkBits2Float(0x427128f8), SkBits2Float(0x41bd2d15), SkBits2Float(0x426f8f5e), SkBits2Float(0x41bd6e9e), SkBits2Float(0x426e916a));  // 23.528f, 60.29f, 23.647f, 59.89f, 23.679f, 59.642f\r
+path.moveTo(SkBits2Float(0x41d21481), SkBits2Float(0x42700a3f));  // 26.26f, 60.01f\r
+path.cubicTo(SkBits2Float(0x41d22b08), SkBits2Float(0x42704cce), SkBits2Float(0x41d299a0), SkBits2Float(0x4270f1ac), SkBits2Float(0x41d2418f), SkBits2Float(0x42713f7e));  // 26.271f, 60.075f, 26.325f, 60.236f, 26.282f, 60.312f\r
+path.cubicTo(SkBits2Float(0x41d2418f), SkBits2Float(0x42714ac2), SkBits2Float(0x41d22b08), SkBits2Float(0x42713f7e), SkBits2Float(0x41d21481), SkBits2Float(0x42715605));  // 26.282f, 60.323f, 26.271f, 60.312f, 26.26f, 60.334f\r
+path.cubicTo(SkBits2Float(0x41d1bc71), SkBits2Float(0x42715605), SkBits2Float(0x41d1916f), SkBits2Float(0x42715605), SkBits2Float(0x41d1395e), SkBits2Float(0x42714ac1));  // 26.217f, 60.334f, 26.196f, 60.334f, 26.153f, 60.323f\r
+path.cubicTo(SkBits2Float(0x41d0b233), SkBits2Float(0x42708419), SkBits2Float(0x41d0c8ba), SkBits2Float(0x426f645b), SkBits2Float(0x41d09db8), SkBits2Float(0x426e5a1d));  // 26.087f, 60.129f, 26.098f, 59.848f, 26.077f, 59.588f\r
+path.cubicTo(SkBits2Float(0x41d09db8), SkBits2Float(0x426e23d7), SkBits2Float(0x41d05a22), SkBits2Float(0x426d9375), SkBits2Float(0x41d070aa), SkBits2Float(0x426d50e6));  // 26.077f, 59.535f, 26.044f, 59.394f, 26.055f, 59.329f\r
+path.cubicTo(SkBits2Float(0x41d09db8), SkBits2Float(0x426d3b65), SkBits2Float(0x41d0b233), SkBits2Float(0x426d50e6), SkBits2Float(0x41d0b233), SkBits2Float(0x426d2f1b));  // 26.077f, 59.308f, 26.087f, 59.329f, 26.087f, 59.296f\r
+path.cubicTo(SkBits2Float(0x41d1395e), SkBits2Float(0x426d3b65), SkBits2Float(0x41d14dd9), SkBits2Float(0x426d2f1b), SkBits2Float(0x41d1916e), SkBits2Float(0x426d50e6));  // 26.153f, 59.308f, 26.163f, 59.296f, 26.196f, 59.329f\r
+path.cubicTo(SkBits2Float(0x41d1a5e9), SkBits2Float(0x426d50e6), SkBits2Float(0x41d1e97e), SkBits2Float(0x426de148), SkBits2Float(0x41d1e97e), SkBits2Float(0x426dec8c));  // 26.206f, 59.329f, 26.239f, 59.47f, 26.239f, 59.481f\r
+path.cubicTo(SkBits2Float(0x41d22b07), SkBits2Float(0x426e9cad), SkBits2Float(0x41d1e97e), SkBits2Float(0x426f4dd4), SkBits2Float(0x41d21480), SkBits2Float(0x42700a3e));  // 26.271f, 59.653f, 26.239f, 59.826f, 26.26f, 60.01f\r
+path.moveTo(SkBits2Float(0x41ee1274), SkBits2Float(0x42564ac1));  // 29.759f, 53.573f\r
+path.cubicTo(SkBits2Float(0x41ee1274), SkBits2Float(0x42566b86), SkBits2Float(0x41ee3f82), SkBits2Float(0x4256c49c), SkBits2Float(0x41ee28fb), SkBits2Float(0x4256fbe8));  // 29.759f, 53.605f, 29.781f, 53.692f, 29.77f, 53.746f\r
+path.cubicTo(SkBits2Float(0x41ee28fb), SkBits2Float(0x42571cad), SkBits2Float(0x41ede772), SkBits2Float(0x425748b5), SkBits2Float(0x41ede772), SkBits2Float(0x42576a80));  // 29.77f, 53.778f, 29.738f, 53.821f, 29.738f, 53.854f\r
+path.cubicTo(SkBits2Float(0x41ed8f62), SkBits2Float(0x425774bd), SkBits2Float(0x41ed20ca), SkBits2Float(0x42579688), SkBits2Float(0x41ec6e9d), SkBits2Float(0x42579688));  // 29.695f, 53.864f, 29.641f, 53.897f, 29.554f, 53.897f\r
+path.cubicTo(SkBits2Float(0x41ebeb8b), SkBits2Float(0x42579688), SkBits2Float(0x41eb666c), SkBits2Float(0x425774bd), SkBits2Float(0x41eaf7d4), SkBits2Float(0x42576a80));  // 29.49f, 53.897f, 29.425f, 53.864f, 29.371f, 53.854f\r
+path.cubicTo(SkBits2Float(0x41eacac6), SkBits2Float(0x425676ca), SkBits2Float(0x41eb666c), SkBits2Float(0x42556d92), SkBits2Float(0x41ebbe7c), SkBits2Float(0x42549063));  // 29.349f, 53.616f, 29.425f, 53.357f, 29.468f, 53.141f\r
+path.cubicTo(SkBits2Float(0x41ebd503), SkBits2Float(0x425421cb), SkBits2Float(0x41ebd503), SkBits2Float(0x4253d3f9), SkBits2Float(0x41ec0005), SkBits2Float(0x42537be8));  // 29.479f, 53.033f, 29.479f, 52.957f, 29.5f, 52.871f\r
+path.cubicTo(SkBits2Float(0x41ec2d13), SkBits2Float(0x42535a1d), SkBits2Float(0x41ec6e9d), SkBits2Float(0x42531894), SkBits2Float(0x41ecb232), SkBits2Float(0x42531894));  // 29.522f, 52.838f, 29.554f, 52.774f, 29.587f, 52.774f\r
+path.cubicTo(SkBits2Float(0x41ed3544), SkBits2Float(0x4253020d), SkBits2Float(0x41edd0ea), SkBits2Float(0x42531894), SkBits2Float(0x41ede771), SkBits2Float(0x4253449c));  // 29.651f, 52.752f, 29.727f, 52.774f, 29.738f, 52.817f\r
+path.cubicTo(SkBits2Float(0x41ee1273), SkBits2Float(0x42534fe0), SkBits2Float(0x41ede771), SkBits2Float(0x42536561), SkBits2Float(0x41ede771), SkBits2Float(0x42537be8));  // 29.759f, 52.828f, 29.738f, 52.849f, 29.738f, 52.871f\r
+path.cubicTo(SkBits2Float(0x41ee3f81), SkBits2Float(0x42544290), SkBits2Float(0x41ede771), SkBits2Float(0x42554ccd), SkBits2Float(0x41ee1273), SkBits2Float(0x42564ac1));  // 29.781f, 53.065f, 29.738f, 53.325f, 29.759f, 53.573f\r
+path.moveTo(SkBits2Float(0x41f51273), SkBits2Float(0x4258cbc7));  // 30.634f, 54.199f\r
+path.cubicTo(SkBits2Float(0x41f4e771), SkBits2Float(0x4259199a), SkBits2Float(0x41f3b025), SkBits2Float(0x4259bf7d), SkBits2Float(0x41f35815), SkBits2Float(0x4259eb85));  // 30.613f, 54.275f, 30.461f, 54.437f, 30.418f, 54.48f\r
+path.cubicTo(SkBits2Float(0x41f2395d), SkBits2Float(0x425aa6e9), SkBits2Float(0x41f2395d), SkBits2Float(0x425a449c), SkBits2Float(0x41f222d6), SkBits2Float(0x42596666));  // 30.278f, 54.663f, 30.278f, 54.567f, 30.267f, 54.35f\r
+path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x425945a1), SkBits2Float(0x41f1f5c8), SkBits2Float(0x4258e24d), SkBits2Float(0x41f222d6), SkBits2Float(0x4258ab02));  // 30.267f, 54.318f, 30.245f, 54.221f, 30.267f, 54.167f\r
+path.cubicTo(SkBits2Float(0x41f2395d), SkBits2Float(0x42589fbe), SkBits2Float(0x41f2e97e), SkBits2Float(0x42588a3d), SkBits2Float(0x41f30005), SkBits2Float(0x425873b6));  // 30.278f, 54.156f, 30.364f, 54.135f, 30.375f, 54.113f\r
+path.cubicTo(SkBits2Float(0x41f3b026), SkBits2Float(0x42586872), SkBits2Float(0x41f48d55), SkBits2Float(0x42588937), SkBits2Float(0x41f51274), SkBits2Float(0x4258947b));  // 30.461f, 54.102f, 30.569f, 54.134f, 30.634f, 54.145f\r
+path.cubicTo(SkBits2Float(0x41f4fdf9), SkBits2Float(0x42589fbf), SkBits2Float(0x41f51274), SkBits2Float(0x4258b646), SkBits2Float(0x41f51274), SkBits2Float(0x4258cbc7));  // 30.624f, 54.156f, 30.634f, 54.178f, 30.634f, 54.199f\r
+path.moveTo(SkBits2Float(0x41f20e5b), SkBits2Float(0x425727f0));  // 30.257f, 53.789f\r
+path.cubicTo(SkBits2Float(0x41f1cac5), SkBits2Float(0x4256da1d), SkBits2Float(0x41f222d6), SkBits2Float(0x42561375), SkBits2Float(0x41f222d6), SkBits2Float(0x4255d0e6));  // 30.224f, 53.713f, 30.267f, 53.519f, 30.267f, 53.454f\r
+path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x42553646), SkBits2Float(0x41f1b43e), SkBits2Float(0x4254374c), SkBits2Float(0x41f20e5b), SkBits2Float(0x42539169));  // 30.267f, 53.303f, 30.213f, 53.054f, 30.257f, 52.892f\r
+path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x42536561), SkBits2Float(0x41f2916d), SkBits2Float(0x4253449c), SkBits2Float(0x41f2be7c), SkBits2Float(0x4253449c));  // 30.267f, 52.849f, 30.321f, 52.817f, 30.343f, 52.817f\r
+path.cubicTo(SkBits2Float(0x41f3b026), SkBits2Float(0x42532e15), SkBits2Float(0x41f845a7), SkBits2Float(0x42539cac), SkBits2Float(0x41f88730), SkBits2Float(0x4253d3f8));  // 30.461f, 52.795f, 31.034f, 52.903f, 31.066f, 52.957f\r
+path.cubicTo(SkBits2Float(0x41f8cac6), SkBits2Float(0x42540000), SkBits2Float(0x41f8cac6), SkBits2Float(0x42544290), SkBits2Float(0x41f8e14d), SkBits2Float(0x4254851f));  // 31.099f, 53, 31.099f, 53.065f, 31.11f, 53.13f\r
+path.cubicTo(SkBits2Float(0x41f8f5c8), SkBits2Float(0x4254d1ec), SkBits2Float(0x41f97ae7), SkBits2Float(0x425578d5), SkBits2Float(0x41f9666c), SkBits2Float(0x4255e76d));  // 31.12f, 53.205f, 31.185f, 53.368f, 31.175f, 53.476f\r
+path.cubicTo(SkBits2Float(0x41f94dd9), SkBits2Float(0x42561375), SkBits2Float(0x41f88731), SkBits2Float(0x4256a2d1), SkBits2Float(0x41f85c2f), SkBits2Float(0x4256c49c));  // 31.163f, 53.519f, 31.066f, 53.659f, 31.045f, 53.692f\r
+path.cubicTo(SkBits2Float(0x41f845a8), SkBits2Float(0x4256da1d), SkBits2Float(0x41f7d710), SkBits2Float(0x4256f0a4), SkBits2Float(0x41f7d710), SkBits2Float(0x4256fbe8));  // 31.034f, 53.713f, 30.98f, 53.735f, 30.98f, 53.746f\r
+path.lineTo(SkBits2Float(0x41f7d710), SkBits2Float(0x42571cad));  // 30.98f, 53.778f\r
+path.cubicTo(SkBits2Float(0x41f79587), SkBits2Float(0x4257322e), SkBits2Float(0x41f73b6a), SkBits2Float(0x425748b5), SkBits2Float(0x41f6f9e1), SkBits2Float(0x42575f3c));  // 30.948f, 53.799f, 30.904f, 53.821f, 30.872f, 53.843f\r
+path.cubicTo(SkBits2Float(0x41f6062b), SkBits2Float(0x425774bd), SkBits2Float(0x41f2395e), SkBits2Float(0x425774bd), SkBits2Float(0x41f20e5c), SkBits2Float(0x425727f0));  // 30.753f, 53.864f, 30.278f, 53.864f, 30.257f, 53.789f\r
+path.moveTo(SkBits2Float(0x42048f5f), SkBits2Float(0x426b072b));  // 33.14f, 58.757f\r
+path.cubicTo(SkBits2Float(0x42046d94), SkBits2Float(0x426acfdf), SkBits2Float(0x42048f5f), SkBits2Float(0x426ab958), SkBits2Float(0x420478d8), SkBits2Float(0x426a77cf));  // 33.107f, 58.703f, 33.14f, 58.681f, 33.118f, 58.617f\r
+path.cubicTo(SkBits2Float(0x42045813), SkBits2Float(0x4269d0e6), SkBits2Float(0x42042c0b), SkBits2Float(0x42693646), SkBits2Float(0x42041584), SkBits2Float(0x4268851f));  // 33.086f, 58.454f, 33.043f, 58.303f, 33.021f, 58.13f\r
+path.cubicTo(SkBits2Float(0x4203e97c), SkBits2Float(0x4267c9bb), SkBits2Float(0x42039caf), SkBits2Float(0x42670d50), SkBits2Float(0x4203a6ec), SkBits2Float(0x426624dd));  // 32.978f, 57.947f, 32.903f, 57.763f, 32.913f, 57.536f\r
+path.cubicTo(SkBits2Float(0x4203a6ec), SkBits2Float(0x426624dd), SkBits2Float(0x4203de38), SkBits2Float(0x4265f8d5), SkBits2Float(0x4203e97b), SkBits2Float(0x4265f8d5));  // 32.913f, 57.536f, 32.967f, 57.493f, 32.978f, 57.493f\r
+path.cubicTo(SkBits2Float(0x42042c0a), SkBits2Float(0x4265ee98), SkBits2Float(0x4204c6aa), SkBits2Float(0x4266199a), SkBits2Float(0x4204e875), SkBits2Float(0x42663b64));  // 33.043f, 57.483f, 33.194f, 57.525f, 33.227f, 57.558f\r
+path.cubicTo(SkBits2Float(0x42051ebb), SkBits2Float(0x42668937), SkBits2Float(0x42051ebb), SkBits2Float(0x42671893), SkBits2Float(0x42054085), SkBits2Float(0x426770a3));  // 33.28f, 57.634f, 33.28f, 57.774f, 33.313f, 57.86f\r
+path.cubicTo(SkBits2Float(0x42058314), SkBits2Float(0x4268a6e9), SkBits2Float(0x4206072d), SkBits2Float(0x4269d0e5), SkBits2Float(0x42061271), SkBits2Float(0x426b3e76));  // 33.378f, 58.163f, 33.507f, 58.454f, 33.518f, 58.811f\r
+path.cubicTo(SkBits2Float(0x4205e669), SkBits2Float(0x426b3e76), SkBits2Float(0x4205e669), SkBits2Float(0x426b49ba), SkBits2Float(0x4205b95a), SkBits2Float(0x426b5f3b));  // 33.475f, 58.811f, 33.475f, 58.822f, 33.431f, 58.843f\r
+path.cubicTo(SkBits2Float(0x42056c8d), SkBits2Float(0x426b5f3b), SkBits2Float(0x4204e875), SkBits2Float(0x426b75c2), SkBits2Float(0x4204b023), SkBits2Float(0x426b49ba));  // 33.356f, 58.843f, 33.227f, 58.865f, 33.172f, 58.822f\r
+path.lineTo(SkBits2Float(0x4204b023), SkBits2Float(0x426b3333));  // 33.172f, 58.8f\r
+path.cubicTo(SkBits2Float(0x4204b023), SkBits2Float(0x426b27ef), SkBits2Float(0x42048f5e), SkBits2Float(0x426b072b), SkBits2Float(0x42048f5e), SkBits2Float(0x426b072b));  // 33.172f, 58.789f, 33.14f, 58.757f, 33.14f, 58.757f\r
+path.moveTo(SkBits2Float(0x42035918), SkBits2Float(0x426b6a7f));  // 32.837f, 58.854f\r
+path.cubicTo(SkBits2Float(0x42032d10), SkBits2Float(0x426b6a7f), SkBits2Float(0x42030108), SkBits2Float(0x426b75c3), SkBits2Float(0x4202d4ff), SkBits2Float(0x426b75c3));  // 32.794f, 58.854f, 32.751f, 58.865f, 32.708f, 58.865f\r
+path.cubicTo(SkBits2Float(0x42026667), SkBits2Float(0x426b75c3), SkBits2Float(0x42020d51), SkBits2Float(0x426b5f3c), SkBits2Float(0x4201ec8c), SkBits2Float(0x426b27f0));  // 32.6f, 58.865f, 32.513f, 58.843f, 32.481f, 58.789f\r
+path.cubicTo(SkBits2Float(0x4201cbc7), SkBits2Float(0x426ae561), SkBits2Float(0x4201cbc7), SkBits2Float(0x426a6c8c), SkBits2Float(0x4201b540), SkBits2Float(0x426a0832));  // 32.449f, 58.724f, 32.449f, 58.606f, 32.427f, 58.508f\r
+path.cubicTo(SkBits2Float(0x42018938), SkBits2Float(0x426920c5), SkBits2Float(0x42016873), SkBits2Float(0x42683853), SkBits2Float(0x42013021), SkBits2Float(0x42672f1b));  // 32.384f, 58.282f, 32.352f, 58.055f, 32.297f, 57.796f\r
+path.cubicTo(SkBits2Float(0x42013021), SkBits2Float(0x4267020d), SkBits2Float(0x4200f9db), SkBits2Float(0x42669375), SkBits2Float(0x4200f9db), SkBits2Float(0x426651ec));  // 32.297f, 57.752f, 32.244f, 57.644f, 32.244f, 57.58f\r
+path.cubicTo(SkBits2Float(0x42010418), SkBits2Float(0x4266199a), SkBits2Float(0x420151eb), SkBits2Float(0x4265ee98), SkBits2Float(0x42018937), SkBits2Float(0x4265ee98));  // 32.254f, 57.525f, 32.33f, 57.483f, 32.384f, 57.483f\r
+path.cubicTo(SkBits2Float(0x4201e147), SkBits2Float(0x4265e24e), SkBits2Float(0x42022f1a), SkBits2Float(0x4265ee98), SkBits2Float(0x42023a5e), SkBits2Float(0x4266199a));  // 32.47f, 57.471f, 32.546f, 57.483f, 32.557f, 57.525f\r
+path.cubicTo(SkBits2Float(0x420271aa), SkBits2Float(0x42665c29), SkBits2Float(0x42027be7), SkBits2Float(0x42670d50), SkBits2Float(0x42029db2), SkBits2Float(0x426770a4));  // 32.611f, 57.59f, 32.621f, 57.763f, 32.654f, 57.86f\r
+path.cubicTo(SkBits2Float(0x42029db2), SkBits2Float(0x4267be77), SkBits2Float(0x4202d4fe), SkBits2Float(0x4268178d), SkBits2Float(0x4202e041), SkBits2Float(0x42684ed9));  // 32.654f, 57.936f, 32.708f, 58.023f, 32.719f, 58.077f\r
+path.cubicTo(SkBits2Float(0x4202ea7e), SkBits2Float(0x4268bc6a), SkBits2Float(0x4202ea7e), SkBits2Float(0x4268fefa), SkBits2Float(0x42030106), SkBits2Float(0x42695810));  // 32.729f, 58.184f, 32.729f, 58.249f, 32.751f, 58.336f\r
+path.cubicTo(SkBits2Float(0x420322d1), SkBits2Float(0x4269fced), SkBits2Float(0x4203645a), SkBits2Float(0x426a820c), SkBits2Float(0x4203645a), SkBits2Float(0x426b49ba));  // 32.784f, 58.497f, 32.848f, 58.627f, 32.848f, 58.822f\r
+path.cubicTo(SkBits2Float(0x42034395), SkBits2Float(0x426b49ba), SkBits2Float(0x42035916), SkBits2Float(0x426b49ba), SkBits2Float(0x42035916), SkBits2Float(0x426b6a7f));  // 32.816f, 58.822f, 32.837f, 58.822f, 32.837f, 58.854f\r
+path.moveTo(SkBits2Float(0x42009580), SkBits2Float(0x426b6a7f));  // 32.146f, 58.854f\r
+path.lineTo(SkBits2Float(0x42008b43), SkBits2Float(0x426b8106));  // 32.136f, 58.876f\r
+path.cubicTo(SkBits2Float(0x42007fff), SkBits2Float(0x426b8106), SkBits2Float(0x42005e35), SkBits2Float(0x426b75c2), SkBits2Float(0x420048b4), SkBits2Float(0x426b8106));  // 32.125f, 58.876f, 32.092f, 58.865f, 32.071f, 58.876f\r
+path.cubicTo(SkBits2Float(0x41fdcccc), SkBits2Float(0x426bad0e), SkBits2Float(0x41f94dd2), SkBits2Float(0x426b8c4a), SkBits2Float(0x41f6cccc), SkBits2Float(0x426b8c4a));  // 31.725f, 58.919f, 31.163f, 58.887f, 30.85f, 58.887f\r
+path.cubicTo(SkBits2Float(0x41f65e34), SkBits2Float(0x426b8106), SkBits2Float(0x41f39ba5), SkBits2Float(0x426b8106), SkBits2Float(0x41f35810), SkBits2Float(0x426b49bb));  // 30.796f, 58.876f, 30.451f, 58.876f, 30.418f, 58.822f\r
+path.cubicTo(SkBits2Float(0x41f35810), SkBits2Float(0x426b3334), SkBits2Float(0x41f2e978), SkBits2Float(0x4267926f), SkBits2Float(0x41f31687), SkBits2Float(0x426723d8));  // 30.418f, 58.8f, 30.364f, 57.893f, 30.386f, 57.785f\r
+path.lineTo(SkBits2Float(0x41f36e97), SkBits2Float(0x4266ec8c));  // 30.429f, 57.731f\r
+path.cubicTo(SkBits2Float(0x41f3f3b6), SkBits2Float(0x4266b540), SkBits2Float(0x41f4d0e5), SkBits2Float(0x4266b540), SkBits2Float(0x41f58106), SkBits2Float(0x42669eb9));  // 30.494f, 57.677f, 30.602f, 57.677f, 30.688f, 57.655f\r
+path.cubicTo(SkBits2Float(0x41f7ed91), SkBits2Float(0x42663b65), SkBits2Float(0x41fac6a8), SkBits2Float(0x4265ee98), SkBits2Float(0x41fdb646), SkBits2Float(0x4265d811));  // 30.991f, 57.558f, 31.347f, 57.483f, 31.714f, 57.461f\r
+path.cubicTo(SkBits2Float(0x41fe51ec), SkBits2Float(0x4265c18a), SkBits2Float(0x41ff2f1b), SkBits2Float(0x4265d811), SkBits2Float(0x41ff872b), SkBits2Float(0x4265f8d6));  // 31.79f, 57.439f, 31.898f, 57.461f, 31.941f, 57.493f\r
+path.cubicTo(SkBits2Float(0x41ffb439), SkBits2Float(0x4266199b), SkBits2Float(0x41ffb439), SkBits2Float(0x42669eb9), SkBits2Float(0x41ffdf3b), SkBits2Float(0x4266d605));  // 31.963f, 57.525f, 31.963f, 57.655f, 31.984f, 57.709f\r
+path.cubicTo(SkBits2Float(0x41fff5c2), SkBits2Float(0x42670d51), SkBits2Float(0x42001cac), SkBits2Float(0x42675b24), SkBits2Float(0x42001cac), SkBits2Float(0x4267926f));  // 31.995f, 57.763f, 32.028f, 57.839f, 32.028f, 57.893f\r
+path.cubicTo(SkBits2Float(0x42003d71), SkBits2Float(0x42684290), SkBits2Float(0x420048b4), SkBits2Float(0x4268c7ae), SkBits2Float(0x42005e35), SkBits2Float(0x42696d92));  // 32.06f, 58.065f, 32.071f, 58.195f, 32.092f, 58.357f\r
+path.cubicTo(SkBits2Float(0x42008000), SkBits2Float(0x4269d0e6), SkBits2Float(0x4200ac08), SkBits2Float(0x426a5605), SkBits2Float(0x4200b74c), SkBits2Float(0x426acfe0));  // 32.125f, 58.454f, 32.168f, 58.584f, 32.179f, 58.703f\r
+path.cubicTo(SkBits2Float(0x4200c189), SkBits2Float(0x426b072c), SkBits2Float(0x4200b74c), SkBits2Float(0x426b49bb), SkBits2Float(0x42009581), SkBits2Float(0x426b6a80));  // 32.189f, 58.757f, 32.179f, 58.822f, 32.146f, 58.854f\r
+path.moveTo(SkBits2Float(0x41eeae14), SkBits2Float(0x426bef9f));  // 29.835f, 58.984f\r
+path.cubicTo(SkBits2Float(0x41ee8312), SkBits2Float(0x426c26eb), SkBits2Float(0x41ed353f), SkBits2Float(0x426c52f3), SkBits2Float(0x41ecc8b4), SkBits2Float(0x426c73b8));  // 29.814f, 59.038f, 29.651f, 59.081f, 29.598f, 59.113f\r
+path.cubicTo(SkBits2Float(0x41eb7ae1), SkBits2Float(0x426cd70c), SkBits2Float(0x41ea3127), SkBits2Float(0x426d9376), SkBits2Float(0x41e96872), SkBits2Float(0x426e2e16));  // 29.435f, 59.21f, 29.274f, 59.394f, 29.176f, 59.545f\r
+path.cubicTo(SkBits2Float(0x41e88b43), SkBits2Float(0x426ed3f9), SkBits2Float(0x41e7c49b), SkBits2Float(0x426fdd31), SkBits2Float(0x41e6a5e3), SkBits2Float(0x4270570c));  // 29.068f, 59.707f, 28.971f, 59.966f, 28.831f, 60.085f\r
+path.cubicTo(SkBits2Float(0x41e678d5), SkBits2Float(0x427078d7), SkBits2Float(0x41e6624d), SkBits2Float(0x42706d93), SkBits2Float(0x41e620c4), SkBits2Float(0x427078d7));  // 28.809f, 60.118f, 28.798f, 60.107f, 28.766f, 60.118f\r
+path.cubicTo(SkBits2Float(0x41e60a3d), SkBits2Float(0x4270841b), SkBits2Float(0x41e5f3b6), SkBits2Float(0x4270999c), SkBits2Float(0x41e5f3b6), SkBits2Float(0x4270999c));  // 28.755f, 60.129f, 28.744f, 60.15f, 28.744f, 60.15f\r
+path.cubicTo(SkBits2Float(0x41e52d0e), SkBits2Float(0x4270d0e8), SkBits2Float(0x41e49374), SkBits2Float(0x4270e76f), SkBits2Float(0x41e39fbe), SkBits2Float(0x4270fcf0));  // 28.647f, 60.204f, 28.572f, 60.226f, 28.453f, 60.247f\r
+path.cubicTo(SkBits2Float(0x41e2c28f), SkBits2Float(0x42711377), SkBits2Float(0x41e1a1ca), SkBits2Float(0x42714ac3), SkBits2Float(0x41e03f7c), SkBits2Float(0x4271343c));  // 28.345f, 60.269f, 28.204f, 60.323f, 28.031f, 60.301f\r
+path.cubicTo(SkBits2Float(0x41de2d0d), SkBits2Float(0x42711377), SkBits2Float(0x41e0c49b), SkBits2Float(0x426e9caf), SkBits2Float(0x41e149b9), SkBits2Float(0x426e23da));  // 27.772f, 60.269f, 28.096f, 59.653f, 28.161f, 59.535f\r
+path.cubicTo(SkBits2Float(0x41e23d6f), SkBits2Float(0x426d2f1e), SkBits2Float(0x41e38936), SkBits2Float(0x426c52f5), SkBits2Float(0x41e4eb84), SkBits2Float(0x426b8109));  // 28.28f, 59.296f, 28.442f, 59.081f, 28.615f, 58.876f\r
+path.cubicTo(SkBits2Float(0x41e55a1c), SkBits2Float(0x426b49bd), SkBits2Float(0x41e5dd2e), SkBits2Float(0x426b1caf), SkBits2Float(0x41e6624d), SkBits2Float(0x426ae563));  // 28.669f, 58.822f, 28.733f, 58.778f, 28.798f, 58.724f\r
+path.cubicTo(SkBits2Float(0x41e78312), SkBits2Float(0x426a77d2), SkBits2Float(0x41e88b43), SkBits2Float(0x4269fcf0), SkBits2Float(0x41e99580), SkBits2Float(0x42698f5f));  // 28.939f, 58.617f, 29.068f, 58.497f, 29.198f, 58.39f\r
+path.cubicTo(SkBits2Float(0x41ea3126), SkBits2Float(0x42695813), SkBits2Float(0x41edd0e4), SkBits2Float(0x4267a7f2), SkBits2Float(0x41eeae13), SkBits2Float(0x42684292));  // 29.274f, 58.336f, 29.727f, 57.914f, 29.835f, 58.065f\r
+path.cubicTo(SkBits2Float(0x41eeae13), SkBits2Float(0x42684292), SkBits2Float(0x41eec49a), SkBits2Float(0x42684edc), SkBits2Float(0x41eec49a), SkBits2Float(0x42685919));  // 29.835f, 58.065f, 29.846f, 58.077f, 29.846f, 58.087f\r
+path.cubicTo(SkBits2Float(0x41ef0623), SkBits2Float(0x4268a6ec), SkBits2Float(0x41eedb21), SkBits2Float(0x426bb854), SkBits2Float(0x41eeae13), SkBits2Float(0x426befa0));  // 29.878f, 58.163f, 29.857f, 58.93f, 29.835f, 58.984f\r
+path.moveTo(SkBits2Float(0x41eaf7cd), SkBits2Float(0x4258947d));  // 29.371f, 54.145f\r
+path.cubicTo(SkBits2Float(0x41ebd4fc), SkBits2Float(0x425873b8), SkBits2Float(0x41ed353e), SkBits2Float(0x42589fc1), SkBits2Float(0x41edba5c), SkBits2Float(0x4258ab04));  // 29.479f, 54.113f, 29.651f, 54.156f, 29.716f, 54.167f\r
+path.cubicTo(SkBits2Float(0x41ede76a), SkBits2Float(0x4259c9bc), SkBits2Float(0x41ee3f7b), SkBits2Float(0x425b6e9a), SkBits2Float(0x41ee126c), SkBits2Float(0x425c8314));  // 29.738f, 54.447f, 29.781f, 54.858f, 29.759f, 55.128f\r
+path.cubicTo(SkBits2Float(0x41ede76a), SkBits2Float(0x425d343b), SkBits2Float(0x41ee5602), SkBits2Float(0x425dda1e), SkBits2Float(0x41edd0e3), SkBits2Float(0x425e74be));  // 29.738f, 55.301f, 29.792f, 55.463f, 29.727f, 55.614f\r
+path.cubicTo(SkBits2Float(0x41ed624b), SkBits2Float(0x425f1aa1), SkBits2Float(0x41ec6e95), SkBits2Float(0x425f947c), SkBits2Float(0x41ebd4fc), SkBits2Float(0x426023d9));  // 29.673f, 55.776f, 29.554f, 55.895f, 29.479f, 56.035f\r
+path.cubicTo(SkBits2Float(0x41eb22cf), SkBits2Float(0x4260c9bc), SkBits2Float(0x41ea5c27), SkBits2Float(0x4261645c), SkBits2Float(0x41e9957f), SkBits2Float(0x42621583));  // 29.392f, 56.197f, 29.295f, 56.348f, 29.198f, 56.521f\r
+path.cubicTo(SkBits2Float(0x41e8e55e), SkBits2Float(0x4262c6aa), SkBits2Float(0x41e849b8), SkBits2Float(0x42638314), SkBits2Float(0x41e78310), SkBits2Float(0x426427f2));  // 29.112f, 56.694f, 29.036f, 56.878f, 28.939f, 57.039f\r
+path.cubicTo(SkBits2Float(0x41e72b00), SkBits2Float(0x42646b88), SkBits2Float(0x41e6e76a), SkBits2Float(0x4264b854), SkBits2Float(0x41e68f5a), SkBits2Float(0x4264efa0));  // 28.896f, 57.105f, 28.863f, 57.18f, 28.82f, 57.234f\r
+path.cubicTo(SkBits2Float(0x41e6624c), SkBits2Float(0x42651ba8), SkBits2Float(0x41e60a3b), SkBits2Float(0x4265322f), SkBits2Float(0x41e5dd2d), SkBits2Float(0x426552f4));  // 28.798f, 57.277f, 28.755f, 57.299f, 28.733f, 57.331f\r
+path.cubicTo(SkBits2Float(0x41e570a2), SkBits2Float(0x4264ad11), SkBits2Float(0x41e620c3), SkBits2Float(0x4263c49e), SkBits2Float(0x41e6624c), SkBits2Float(0x426329fe));  // 28.68f, 57.169f, 28.766f, 56.942f, 28.798f, 56.791f\r
+path.cubicTo(SkBits2Float(0x41e6a5e2), SkBits2Float(0x4262418b), SkBits2Float(0x41e6e76b), SkBits2Float(0x42617ae3), SkBits2Float(0x41e72b00), SkBits2Float(0x42609271));  // 28.831f, 56.564f, 28.863f, 56.37f, 28.896f, 56.143f\r
+path.cubicTo(SkBits2Float(0x41e75602), SkBits2Float(0x42604fe2), SkBits2Float(0x41e7978b), SkBits2Float(0x425fe250), SkBits2Float(0x41e7c49a), SkBits2Float(0x425f9fc1));  // 28.917f, 56.078f, 28.949f, 55.971f, 28.971f, 55.906f\r
+path.cubicTo(SkBits2Float(0x41e7db21), SkBits2Float(0x425f25e6), SkBits2Float(0x41e7db21), SkBits2Float(0x425ec18c), SkBits2Float(0x41e80623), SkBits2Float(0x425e53fa));  // 28.982f, 55.787f, 28.982f, 55.689f, 29.003f, 55.582f\r
+path.lineTo(SkBits2Float(0x41e849b9), SkBits2Float(0x425e26ec));  // 29.036f, 55.538f\r
+path.cubicTo(SkBits2Float(0x41e874bb), SkBits2Float(0x425da2d3), SkBits2Float(0x41e8b851), SkBits2Float(0x425d28f8), SkBits2Float(0x41e8e55f), SkBits2Float(0x425caf1d));  // 29.057f, 55.409f, 29.09f, 55.29f, 29.112f, 55.171f\r
+path.cubicTo(SkBits2Float(0x41e93b63), SkBits2Float(0x425b8f5f), SkBits2Float(0x41e97ef9), SkBits2Float(0x425a7ae4), SkBits2Float(0x41ea0417), SkBits2Float(0x42596669));  // 29.154f, 54.89f, 29.187f, 54.62f, 29.252f, 54.35f\r
+path.cubicTo(SkBits2Float(0x41ea3125), SkBits2Float(0x4259199c), SkBits2Float(0x41ea5c27), SkBits2Float(0x4258ab05), SkBits2Float(0x41eaf7cd), SkBits2Float(0x4258947d));  // 29.274f, 54.275f, 29.295f, 54.167f, 29.371f, 54.145f\r
+path.moveTo(SkBits2Float(0x41e96871), SkBits2Float(0x4256a2d3));  // 29.176f, 53.659f\r
+path.cubicTo(SkBits2Float(0x41e953f6), SkBits2Float(0x4256e562), SkBits2Float(0x41e96871), SkBits2Float(0x425727f2), SkBits2Float(0x41e93b63), SkBits2Float(0x42575f3d));  // 29.166f, 53.724f, 29.176f, 53.789f, 29.154f, 53.843f\r
+path.cubicTo(SkBits2Float(0x41e8fbe6), SkBits2Float(0x42578002), SkBits2Float(0x41e88b42), SkBits2Float(0x42578002), SkBits2Float(0x41e81cab), SkBits2Float(0x42578002));  // 29.123f, 53.875f, 29.068f, 53.875f, 29.014f, 53.875f\r
+path.cubicTo(SkBits2Float(0x41e7db22), SkBits2Float(0x42578002), SkBits2Float(0x41e78311), SkBits2Float(0x42576a81), SkBits2Float(0x41e75603), SkBits2Float(0x42575f3d));  // 28.982f, 53.875f, 28.939f, 53.854f, 28.917f, 53.843f\r
+path.cubicTo(SkBits2Float(0x41e72b01), SkBits2Float(0x4257322f), SkBits2Float(0x41e72b01), SkBits2Float(0x4257322f), SkBits2Float(0x41e72b01), SkBits2Float(0x4256fbe9));  // 28.896f, 53.799f, 28.896f, 53.799f, 28.896f, 53.746f\r
+path.cubicTo(SkBits2Float(0x41e72b01), SkBits2Float(0x4256b95a), SkBits2Float(0x41e78311), SkBits2Float(0x42564ac2), SkBits2Float(0x41e7978c), SkBits2Float(0x42561376));  // 28.896f, 53.681f, 28.939f, 53.573f, 28.949f, 53.519f\r
+path.cubicTo(SkBits2Float(0x41e7db22), SkBits2Float(0x4255570c), SkBits2Float(0x41e80624), SkBits2Float(0x4254b128), SkBits2Float(0x41e86040), SkBits2Float(0x42540b45));  // 28.982f, 53.335f, 29.003f, 53.173f, 29.047f, 53.011f\r
+path.cubicTo(SkBits2Float(0x41e874bb), SkBits2Float(0x4253cac2), SkBits2Float(0x41e86040), SkBits2Float(0x4253916a), SkBits2Float(0x41e8b850), SkBits2Float(0x42536562));  // 29.057f, 52.948f, 29.047f, 52.892f, 29.09f, 52.849f\r
+path.cubicTo(SkBits2Float(0x41e8ced7), SkBits2Float(0x42534fe1), SkBits2Float(0x41e953f6), SkBits2Float(0x42532e16), SkBits2Float(0x41e97ef8), SkBits2Float(0x42532e16));  // 29.101f, 52.828f, 29.166f, 52.795f, 29.187f, 52.795f\r
+path.cubicTo(SkBits2Float(0x41ea0417), SkBits2Float(0x425323d9), SkBits2Float(0x41ea3125), SkBits2Float(0x42534fe1), SkBits2Float(0x41ea72ae), SkBits2Float(0x42535a1e));  // 29.252f, 52.785f, 29.274f, 52.828f, 29.306f, 52.838f\r
+path.cubicTo(SkBits2Float(0x41ea72ae), SkBits2Float(0x42548520), SkBits2Float(0x41e9d708), SkBits2Float(0x4255a4df), SkBits2Float(0x41e96871), SkBits2Float(0x4256a2d2));  // 29.306f, 53.13f, 29.23f, 53.411f, 29.176f, 53.659f\r
+path.moveTo(SkBits2Float(0x41e874bb), SkBits2Float(0x4258b647));  // 29.057f, 54.178f\r
+path.cubicTo(SkBits2Float(0x41e86040), SkBits2Float(0x42595c2a), SkBits2Float(0x41e849b9), SkBits2Float(0x4259bf7e), SkBits2Float(0x41e80623), SkBits2Float(0x425a4eda));  // 29.047f, 54.34f, 29.036f, 54.437f, 29.003f, 54.577f\r
+path.cubicTo(SkBits2Float(0x41e7db21), SkBits2Float(0x425ad3f9), SkBits2Float(0x41e76c89), SkBits2Float(0x425b8520), SkBits2Float(0x41e72b00), SkBits2Float(0x425c147c));  // 28.982f, 54.707f, 28.928f, 54.88f, 28.896f, 55.02f\r
+path.cubicTo(SkBits2Float(0x41e71479), SkBits2Float(0x425c570b), SkBits2Float(0x41e72b00), SkBits2Float(0x425c77d0), SkBits2Float(0x41e71479), SkBits2Float(0x425cba5f));  // 28.885f, 55.085f, 28.896f, 55.117f, 28.885f, 55.182f\r
+path.cubicTo(SkBits2Float(0x41e68f5a), SkBits2Float(0x425dfae2), SkBits2Float(0x41e5dd2d), SkBits2Float(0x425f676d), SkBits2Float(0x41e570a2), SkBits2Float(0x4260a8f7));  // 28.82f, 55.495f, 28.733f, 55.851f, 28.68f, 56.165f\r
+path.cubicTo(SkBits2Float(0x41e52d0c), SkBits2Float(0x42610c4b), SkBits2Float(0x41e55a1b), SkBits2Float(0x42614eda), SkBits2Float(0x41e52d0c), SkBits2Float(0x42619ba7));  // 28.647f, 56.262f, 28.669f, 56.327f, 28.647f, 56.402f\r
+path.cubicTo(SkBits2Float(0x41e51685), SkBits2Float(0x4261f4be), SkBits2Float(0x41e4be74), SkBits2Float(0x42624cce), SkBits2Float(0x41e4a7ed), SkBits2Float(0x42628f5d));  // 28.636f, 56.489f, 28.593f, 56.575f, 28.582f, 56.64f\r
+path.cubicTo(SkBits2Float(0x41e46664), SkBits2Float(0x42634bc7), SkBits2Float(0x41e43b62), SkBits2Float(0x4263e667), SkBits2Float(0x41e3f7cc), SkBits2Float(0x4264a1cc));  // 28.55f, 56.824f, 28.529f, 56.975f, 28.496f, 57.158f\r
+path.cubicTo(SkBits2Float(0x41e39fbc), SkBits2Float(0x42657efb), SkBits2Float(0x41e31a9d), SkBits2Float(0x42669376), SkBits2Float(0x41e2ac05), SkBits2Float(0x426770a5));  // 28.453f, 57.374f, 28.388f, 57.644f, 28.334f, 57.86f\r
+path.cubicTo(SkBits2Float(0x41e27ef7), SkBits2Float(0x426821cc), SkBits2Float(0x41e253f5), SkBits2Float(0x4268bc6c), SkBits2Float(0x41e2105f), SkBits2Float(0x42695812));  // 28.312f, 58.033f, 28.291f, 58.184f, 28.258f, 58.336f\r
+path.cubicTo(SkBits2Float(0x41e1ced6), SkBits2Float(0x4269f2b2), SkBits2Float(0x41e1082e), SkBits2Float(0x426aa3d9), SkBits2Float(0x41e09996), SkBits2Float(0x426b3335));  // 28.226f, 58.487f, 28.129f, 58.66f, 28.075f, 58.8f\r
+path.lineTo(SkBits2Float(0x41e05600), SkBits2Float(0x426b3e79));  // 28.042f, 58.811f\r
+path.cubicTo(SkBits2Float(0x41dfe768), SkBits2Float(0x426bb854), SkBits2Float(0x41dfba5a), SkBits2Float(0x426c3129), SkBits2Float(0x41df4dcf), SkBits2Float(0x426ccccf));  // 27.988f, 58.93f, 27.966f, 59.048f, 27.913f, 59.2f\r
+path.cubicTo(SkBits2Float(0x41def5bf), SkBits2Float(0x426d50e8), SkBits2Float(0x41de5a19), SkBits2Float(0x426de14a), SkBits2Float(0x41ddeb81), SkBits2Float(0x426e70a6));  // 27.87f, 59.329f, 27.794f, 59.47f, 27.74f, 59.61f\r
+path.cubicTo(SkBits2Float(0x41dd3b60), SkBits2Float(0x426f79dd), SkBits2Float(0x41dd4fdb), SkBits2Float(0x426e1896), SkBits2Float(0x41dd6662), SkBits2Float(0x426db43c));  // 27.654f, 59.869f, 27.664f, 59.524f, 27.675f, 59.426f\r
+path.cubicTo(SkBits2Float(0x41de9ba1), SkBits2Float(0x426aa3da), SkBits2Float(0x41e01476), SkBits2Float(0x42679271), SkBits2Float(0x41e1332f), SkBits2Float(0x42648109));  // 27.826f, 58.66f, 28.01f, 57.893f, 28.15f, 57.126f\r
+path.cubicTo(SkBits2Float(0x41e149b6), SkBits2Float(0x42645f3e), SkBits2Float(0x41e1a1c7), SkBits2Float(0x4264072e), SkBits2Float(0x41e1a1c7), SkBits2Float(0x4263f1ad));  // 28.161f, 57.093f, 28.204f, 57.007f, 28.204f, 56.986f\r
+path.cubicTo(SkBits2Float(0x41e253f4), SkBits2Float(0x42626e9b), SkBits2Float(0x41e2c28c), SkBits2Float(0x42610109), SkBits2Float(0x41e3459e), SkBits2Float(0x425f72b3));  // 28.291f, 56.608f, 28.345f, 56.251f, 28.409f, 55.862f\r
+path.cubicTo(SkBits2Float(0x41e372ac), SkBits2Float(0x425f51ee), SkBits2Float(0x41e3b642), SkBits2Float(0x425ef9de), SkBits2Float(0x41e3b642), SkBits2Float(0x425ed813));  // 28.431f, 55.83f, 28.464f, 55.744f, 28.464f, 55.711f\r
+path.cubicTo(SkBits2Float(0x41e46663), SkBits2Float(0x425d76cb), SkBits2Float(0x41e4be73), SkBits2Float(0x425c3542), SkBits2Float(0x41e570a0), SkBits2Float(0x425ad3fa));  // 28.55f, 55.366f, 28.593f, 55.052f, 28.68f, 54.707f\r
+path.cubicTo(SkBits2Float(0x41e570a0), SkBits2Float(0x425a916b), SkBits2Float(0x41e5dd2b), SkBits2Float(0x425a22d3), SkBits2Float(0x41e5f3b2), SkBits2Float(0x4259e044));  // 28.68f, 54.642f, 28.733f, 54.534f, 28.744f, 54.469f\r
+path.cubicTo(SkBits2Float(0x41e620c0), SkBits2Float(0x42595c2b), SkBits2Float(0x41e60a39), SkBits2Float(0x4258ab05), SkBits2Float(0x41e72afe), SkBits2Float(0x4258947d));  // 28.766f, 54.34f, 28.755f, 54.167f, 28.896f, 54.145f\r
+path.cubicTo(SkBits2Float(0x41e79789), SkBits2Float(0x4258947d), SkBits2Float(0x41e80621), SkBits2Float(0x4258ab04), SkBits2Float(0x41e874b8), SkBits2Float(0x4258b648));  // 28.949f, 54.145f, 29.003f, 54.167f, 29.057f, 54.178f\r
+path.moveTo(SkBits2Float(0x41e5b229), SkBits2Float(0x4256a2d3));  // 28.712f, 53.659f\r
+path.cubicTo(SkBits2Float(0x41e5851b), SkBits2Float(0x4256e562), SkBits2Float(0x41e59ba2), SkBits2Float(0x425727f2), SkBits2Float(0x41e570a0), SkBits2Float(0x42575f3d));  // 28.69f, 53.724f, 28.701f, 53.789f, 28.68f, 53.843f\r
+path.cubicTo(SkBits2Float(0x41e52d0a), SkBits2Float(0x42578002), SkBits2Float(0x41e4a7ec), SkBits2Float(0x42579689), SkBits2Float(0x41e43b61), SkBits2Float(0x42578002));  // 28.647f, 53.875f, 28.582f, 53.897f, 28.529f, 53.875f\r
+path.cubicTo(SkBits2Float(0x41e3f7cb), SkBits2Float(0x42578002), SkBits2Float(0x41e39fbb), SkBits2Float(0x425748b6), SkBits2Float(0x41e3459e), SkBits2Float(0x42573e79));  // 28.496f, 53.875f, 28.453f, 53.821f, 28.409f, 53.811f\r
+path.cubicTo(SkBits2Float(0x41e39fbb), SkBits2Float(0x42566044), SkBits2Float(0x41e40e52), SkBits2Float(0x42558e58), SkBits2Float(0x41e47add), SkBits2Float(0x4254c7b0));  // 28.453f, 53.594f, 28.507f, 53.389f, 28.56f, 53.195f\r
+path.cubicTo(SkBits2Float(0x41e49370), SkBits2Float(0x425479dd), SkBits2Float(0x41e49370), SkBits2Float(0x42541689), SkBits2Float(0x41e4eb81), SkBits2Float(0x4253df3d));  // 28.572f, 53.119f, 28.572f, 53.022f, 28.615f, 52.968f\r
+path.cubicTo(SkBits2Float(0x41e4fffc), SkBits2Float(0x4253c9bc), SkBits2Float(0x41e5b229), SkBits2Float(0x4253916a), SkBits2Float(0x41e60a39), SkBits2Float(0x4253916a));  // 28.625f, 52.947f, 28.712f, 52.892f, 28.755f, 52.892f\r
+path.cubicTo(SkBits2Float(0x41e68f58), SkBits2Float(0x4253872d), SkBits2Float(0x41e68f58), SkBits2Float(0x4253a7f1), SkBits2Float(0x41e6e768), SkBits2Float(0x4253be78));  // 28.82f, 52.882f, 28.82f, 52.914f, 28.863f, 52.936f\r
+path.cubicTo(SkBits2Float(0x41e68f58), SkBits2Float(0x4254c7af), SkBits2Float(0x41e60a39), SkBits2Float(0x4255af1c), SkBits2Float(0x41e5b229), SkBits2Float(0x4256a2d2));  // 28.82f, 53.195f, 28.755f, 53.421f, 28.712f, 53.659f\r
+path.moveTo(SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0));  // 28.431f, 54.156f\r
+path.cubicTo(SkBits2Float(0x41e55a19), SkBits2Float(0x42586874), SkBits2Float(0x41e40e52), SkBits2Float(0x425a178f), SkBits2Float(0x41e3cabc), SkBits2Float(0x425a7ae3));  // 28.669f, 54.102f, 28.507f, 54.523f, 28.474f, 54.62f\r
+path.cubicTo(SkBits2Float(0x41e1fbe3), SkBits2Float(0x425f3b66), SkBits2Float(0x41dfd0e1), SkBits2Float(0x4263f1ac), SkBits2Float(0x41ddeb81), SkBits2Float(0x4268c7b0));  // 28.248f, 55.808f, 27.977f, 56.986f, 27.74f, 58.195f\r
+path.cubicTo(SkBits2Float(0x41ddd4fa), SkBits2Float(0x42690a3f), SkBits2Float(0x41dd7ce9), SkBits2Float(0x42696d93), SkBits2Float(0x41dd6662), SkBits2Float(0x4269999c));  // 27.729f, 58.26f, 27.686f, 58.357f, 27.675f, 58.4f\r
+path.cubicTo(SkBits2Float(0x41dd3b60), SkBits2Float(0x426a29fe), SkBits2Float(0x41dd3b60), SkBits2Float(0x426a8d52), SkBits2Float(0x41dcf7ca), SkBits2Float(0x426b1cae));  // 27.654f, 58.541f, 27.654f, 58.638f, 27.621f, 58.778f\r
+path.cubicTo(SkBits2Float(0x41dcb641), SkBits2Float(0x426bf9dd), SkBits2Float(0x41dc0414), SkBits2Float(0x426cf8d7), SkBits2Float(0x41db957c), SkBits2Float(0x426dec8d));  // 27.589f, 58.994f, 27.502f, 59.243f, 27.448f, 59.481f\r
+path.cubicTo(SkBits2Float(0x41db53f3), SkBits2Float(0x426e916a), SkBits2Float(0x41db3d6c), SkBits2Float(0x426eea81), SkBits2Float(0x41daa3d2), SkBits2Float(0x426f5918));  // 27.416f, 59.642f, 27.405f, 59.729f, 27.33f, 59.837f\r
+path.cubicTo(SkBits2Float(0x41da76c4), SkBits2Float(0x426f4dd4), SkBits2Float(0x41da49b5), SkBits2Float(0x426f4291), SkBits2Float(0x41da082c), SkBits2Float(0x426f21cc));  // 27.308f, 59.826f, 27.286f, 59.815f, 27.254f, 59.783f\r
+path.cubicTo(SkBits2Float(0x41d9db1e), SkBits2Float(0x426f0b45), SkBits2Float(0x41d9f1a5), SkBits2Float(0x426f0b45), SkBits2Float(0x41d9c6a3), SkBits2Float(0x426eea80));  // 27.232f, 59.761f, 27.243f, 59.761f, 27.222f, 59.729f\r
+path.lineTo(SkBits2Float(0x41d99995), SkBits2Float(0x426edf3c));  // 27.2f, 59.718f\r
+path.cubicTo(SkBits2Float(0x41d91476), SkBits2Float(0x426ea7f0), SkBits2Float(0x41d8e768), SkBits2Float(0x426e6561), SkBits2Float(0x41d8a5df), SkBits2Float(0x426e020d));  // 27.135f, 59.664f, 27.113f, 59.599f, 27.081f, 59.502f\r
+path.cubicTo(SkBits2Float(0x41d8a5df), SkBits2Float(0x426e020d), SkBits2Float(0x41d86456), SkBits2Float(0x426dd605), SkBits2Float(0x41d8a5df), SkBits2Float(0x426dd605));  // 27.081f, 59.502f, 27.049f, 59.459f, 27.081f, 59.459f\r
+path.cubicTo(SkBits2Float(0x41d8e768), SkBits2Float(0x426d5c2a), SkBits2Float(0x41d8fdef), SkBits2Float(0x426cf8d6), SkBits2Float(0x41d92afe), SkBits2Float(0x426c7efb));  // 27.113f, 59.34f, 27.124f, 59.243f, 27.146f, 59.124f\r
+path.cubicTo(SkBits2Float(0x41d9830e), SkBits2Float(0x426bb853), SkBits2Float(0x41da1eb4), SkBits2Float(0x426ae561), SkBits2Float(0x41da8d4c), SkBits2Float(0x426a29fd));  // 27.189f, 58.93f, 27.265f, 58.724f, 27.319f, 58.541f\r
+path.cubicTo(SkBits2Float(0x41dccabd), SkBits2Float(0x4265d811), SkBits2Float(0x41e02afe), SkBits2Float(0x42617ae2), SkBits2Float(0x41e1332f), SkBits2Float(0x425cfcef));  // 27.599f, 57.461f, 28.021f, 56.37f, 28.15f, 55.247f\r
+path.cubicTo(SkBits2Float(0x41e149b6), SkBits2Float(0x425c4085), SkBits2Float(0x41e1a1c7), SkBits2Float(0x425b8f5e), SkBits2Float(0x41e1fbe3), SkBits2Float(0x425adf3d));  // 28.161f, 55.063f, 28.204f, 54.89f, 28.248f, 54.718f\r
+path.cubicTo(SkBits2Float(0x41e226e5), SkBits2Float(0x425a4edb), SkBits2Float(0x41e226e5), SkBits2Float(0x42598833), SkBits2Float(0x41e2ac04), SkBits2Float(0x4258f7d0));  // 28.269f, 54.577f, 28.269f, 54.383f, 28.334f, 54.242f\r
+path.cubicTo(SkBits2Float(0x41e2c28b), SkBits2Float(0x4258ec8c), SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0), SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0));  // 28.345f, 54.231f, 28.431f, 54.156f, 28.431f, 54.156f\r
+path.moveTo(SkBits2Float(0x41d9830e), SkBits2Float(0x427128f7));  // 27.189f, 60.29f\r
+path.cubicTo(SkBits2Float(0x41d95600), SkBits2Float(0x42714ac2), SkBits2Float(0x41d92afe), SkBits2Float(0x427176ca), SkBits2Float(0x41d8e768), SkBits2Float(0x427176ca));  // 27.167f, 60.323f, 27.146f, 60.366f, 27.113f, 60.366f\r
+path.cubicTo(SkBits2Float(0x41d86456), SkBits2Float(0x42718d51), SkBits2Float(0x41d67ce9), SkBits2Float(0x4271820e), SkBits2Float(0x41d60e51), SkBits2Float(0x42716b86));  // 27.049f, 60.388f, 26.811f, 60.377f, 26.757f, 60.355f\r
+path.cubicTo(SkBits2Float(0x41d5f7ca), SkBits2Float(0x42716b86), SkBits2Float(0x41d5ccc8), SkBits2Float(0x42714ac1), SkBits2Float(0x41d5b641), SkBits2Float(0x42713f7e));  // 26.746f, 60.355f, 26.725f, 60.323f, 26.714f, 60.312f\r
+path.cubicTo(SkBits2Float(0x41d5b641), SkBits2Float(0x42708e57), SkBits2Float(0x41d5f7ca), SkBits2Float(0x426ffefb), SkBits2Float(0x41d69370), SkBits2Float(0x426f8f5d));  // 26.714f, 60.139f, 26.746f, 59.999f, 26.822f, 59.89f\r
+path.cubicTo(SkBits2Float(0x41d6eb80), SkBits2Float(0x426f9ba7), SkBits2Float(0x41d7188f), SkBits2Float(0x426f8f5d), SkBits2Float(0x41d7709f), SkBits2Float(0x426f9ba7));  // 26.865f, 59.902f, 26.887f, 59.89f, 26.93f, 59.902f\r
+path.cubicTo(SkBits2Float(0x41d7b228), SkBits2Float(0x426fb128), SkBits2Float(0x41d99995), SkBits2Float(0x42706d93), SkBits2Float(0x41d9c6a3), SkBits2Float(0x42708e57));  // 26.962f, 59.923f, 27.2f, 60.107f, 27.222f, 60.139f\r
+path.cubicTo(SkBits2Float(0x41d9db1e), SkBits2Float(0x4270d0e6), SkBits2Float(0x41d99995), SkBits2Float(0x42710832), SkBits2Float(0x41d9830d), SkBits2Float(0x427128f7));  // 27.232f, 60.204f, 27.2f, 60.258f, 27.189f, 60.29f\r
+path.moveTo(SkBits2Float(0x41e1603c), SkBits2Float(0x4255f1ab));  // 28.172f, 53.486f\r
+path.cubicTo(SkBits2Float(0x41e149b5), SkBits2Float(0x42563f7e), SkBits2Float(0x41e1603c), SkBits2Float(0x425676ca), SkBits2Float(0x41e1332e), SkBits2Float(0x4256c49d));  // 28.161f, 53.562f, 28.172f, 53.616f, 28.15f, 53.692f\r
+path.cubicTo(SkBits2Float(0x41e11eb3), SkBits2Float(0x4256f0a5), SkBits2Float(0x41e0db1e), SkBits2Float(0x425727f1), SkBits2Float(0x41e0b01c), SkBits2Float(0x425748b6));  // 28.14f, 53.735f, 28.107f, 53.789f, 28.086f, 53.821f\r
+path.lineTo(SkBits2Float(0x41e055ff), SkBits2Float(0x425748b6));  // 28.042f, 53.821f\r
+path.cubicTo(SkBits2Float(0x41e055ff), SkBits2Float(0x425748b6), SkBits2Float(0x41df4dce), SkBits2Float(0x4256e562), SkBits2Float(0x41df3747), SkBits2Float(0x4256da1e));  // 28.042f, 53.821f, 27.913f, 53.724f, 27.902f, 53.713f\r
+path.cubicTo(SkBits2Float(0x41deb228), SkBits2Float(0x4256820e), SkBits2Float(0x41de4391), SkBits2Float(0x42561376), SkBits2Float(0x41ddbe72), SkBits2Float(0x4255ba60));  // 27.837f, 53.627f, 27.783f, 53.519f, 27.718f, 53.432f\r
+path.lineTo(SkBits2Float(0x41dd7ce9), SkBits2Float(0x4255af1c));  // 27.686f, 53.421f\r
+path.cubicTo(SkBits2Float(0x41dd7ce9), SkBits2Float(0x4255a4df), SkBits2Float(0x41dda7eb), SkBits2Float(0x425578d6), SkBits2Float(0x41dd7ce9), SkBits2Float(0x42556d93));  // 27.686f, 53.411f, 27.707f, 53.368f, 27.686f, 53.357f\r
+path.cubicTo(SkBits2Float(0x41de9ba1), SkBits2Float(0x4255147c), SkBits2Float(0x41df8f58), SkBits2Float(0x4254c7b0), SkBits2Float(0x41e0b01c), SkBits2Float(0x42549064));  // 27.826f, 53.27f, 27.945f, 53.195f, 28.086f, 53.141f\r
+path.cubicTo(SkBits2Float(0x41e0c497), SkBits2Float(0x42548520), SkBits2Float(0x41e11eb4), SkBits2Float(0x4254645c), SkBits2Float(0x41e1332e), SkBits2Float(0x4254645c));  // 28.096f, 53.13f, 28.14f, 53.098f, 28.15f, 53.098f\r
+path.cubicTo(SkBits2Float(0x41e18b3e), SkBits2Float(0x42545918), SkBits2Float(0x41e1ced4), SkBits2Float(0x425479dd), SkBits2Float(0x41e1fbe2), SkBits2Float(0x425479dd));  // 28.193f, 53.087f, 28.226f, 53.119f, 28.248f, 53.119f\r
+path.cubicTo(SkBits2Float(0x41e1fbe2), SkBits2Float(0x4255147d), SkBits2Float(0x41e1a1c5), SkBits2Float(0x4255841a), SkBits2Float(0x41e1603c), SkBits2Float(0x4255f1ac));  // 28.248f, 53.27f, 28.204f, 53.379f, 28.172f, 53.486f\r
+path.moveTo(SkBits2Float(0x41df6248), SkBits2Float(0x425b4ccf));  // 27.923f, 54.825f\r
+path.cubicTo(SkBits2Float(0x41dfe767), SkBits2Float(0x425b9aa2), SkBits2Float(0x41df4dcd), SkBits2Float(0x425c6c8d), SkBits2Float(0x41df20bf), SkBits2Float(0x425cd0e8));  // 27.988f, 54.901f, 27.913f, 55.106f, 27.891f, 55.204f\r
+path.cubicTo(SkBits2Float(0x41ddeb80), SkBits2Float(0x425f893a), SkBits2Float(0x41dc8932), SkBits2Float(0x4262374e), SkBits2Float(0x41db105d), SkBits2Float(0x4264e45d));  // 27.74f, 55.884f, 27.567f, 56.554f, 27.383f, 57.223f\r
+path.cubicTo(SkBits2Float(0x41daced4), SkBits2Float(0x42657efd), SkBits2Float(0x41d78726), SkBits2Float(0x426c52f5), SkBits2Float(0x41d6c07e), SkBits2Float(0x426c3c6d));  // 27.351f, 57.374f, 26.941f, 59.081f, 26.844f, 59.059f\r
+path.cubicTo(SkBits2Float(0x41d58932), SkBits2Float(0x426c3129), SkBits2Float(0x41d50620), SkBits2Float(0x426b1caf), SkBits2Float(0x41d48101), SkBits2Float(0x426aa3da));  // 26.692f, 59.048f, 26.628f, 58.778f, 26.563f, 58.66f\r
+path.cubicTo(SkBits2Float(0x41d3d0e0), SkBits2Float(0x426a0834), SkBits2Float(0x41d34bc2), SkBits2Float(0x42696d94), SkBits2Float(0x41d2db1e), SkBits2Float(0x4268bc6d));  // 26.477f, 58.508f, 26.412f, 58.357f, 26.357f, 58.184f\r
+path.cubicTo(SkBits2Float(0x41d21476), SkBits2Float(0x42674fe2), SkBits2Float(0x41d19164), SkBits2Float(0x4265c18c), SkBits2Float(0x41d19164), SkBits2Float(0x426449bd));  // 26.26f, 57.828f, 26.196f, 57.439f, 26.196f, 57.072f\r
+path.cubicTo(SkBits2Float(0x41d1a5df), SkBits2Float(0x4261bd73), SkBits2Float(0x41d3d0e1), SkBits2Float(0x425f51ee), SkBits2Float(0x41d79dae), SkBits2Float(0x425d820f));  // 26.206f, 56.435f, 26.477f, 55.83f, 26.952f, 55.377f\r
+path.cubicTo(SkBits2Float(0x41d8a5df), SkBits2Float(0x425cfcf0), SkBits2Float(0x41d9db1f), SkBits2Float(0x425c8e59), SkBits2Float(0x41db105e), SkBits2Float(0x425c3542));  // 27.081f, 55.247f, 27.232f, 55.139f, 27.383f, 55.052f\r
+path.cubicTo(SkBits2Float(0x41dbed8d), SkBits2Float(0x425bf4bf), SkBits2Float(0x41ddbe72), SkBits2Float(0x425b21cd), SkBits2Float(0x41dec8b0), SkBits2Float(0x425b21cd));  // 27.491f, 54.989f, 27.718f, 54.783f, 27.848f, 54.783f\r
+path.cubicTo(SkBits2Float(0x41df20c0), SkBits2Float(0x425b374e), SkBits2Float(0x41df4dcf), SkBits2Float(0x425b4292), SkBits2Float(0x41df624a), SkBits2Float(0x425b4ccf));  // 27.891f, 54.804f, 27.913f, 54.815f, 27.923f, 54.825f\r
+path.moveTo(SkBits2Float(0x41d453f4), SkBits2Float(0x426fbc6d));  // 26.541f, 59.934f\r
+path.cubicTo(SkBits2Float(0x41d48102), SkBits2Float(0x426f8521), SkBits2Float(0x41d51a9c), SkBits2Float(0x426ea7f2), SkBits2Float(0x41d4957d), SkBits2Float(0x426e872e));  // 26.563f, 59.88f, 26.638f, 59.664f, 26.573f, 59.632f\r
+path.cubicTo(SkBits2Float(0x41d453f4), SkBits2Float(0x426e70a7), SkBits2Float(0x41d428f2), SkBits2Float(0x426e872e), SkBits2Float(0x41d3fbe3), SkBits2Float(0x426e70a7));  // 26.541f, 59.61f, 26.52f, 59.632f, 26.498f, 59.61f\r
+path.cubicTo(SkBits2Float(0x41d3d0e1), SkBits2Float(0x426e916c), SkBits2Float(0x41d3b84d), SkBits2Float(0x426e872e), SkBits2Float(0x41d3a3d3), SkBits2Float(0x426e916c));  // 26.477f, 59.642f, 26.465f, 59.632f, 26.455f, 59.642f\r
+path.cubicTo(SkBits2Float(0x41d3603d), SkBits2Float(0x426f010a), SkBits2Float(0x41d3d0e1), SkBits2Float(0x426f9ba9), SkBits2Float(0x41d4126b), SkBits2Float(0x426fdd33));  // 26.422f, 59.751f, 26.477f, 59.902f, 26.509f, 59.966f\r
+path.lineTo(SkBits2Float(0x41d43d6d), SkBits2Float(0x426fdd33));  // 26.53f, 59.966f\r
+path.cubicTo(SkBits2Float(0x41d43d6d), SkBits2Float(0x426fd1ef), SkBits2Float(0x41d43d6d), SkBits2Float(0x426fbc6e), SkBits2Float(0x41d453f4), SkBits2Float(0x426fbc6e));  // 26.53f, 59.955f, 26.53f, 59.934f, 26.541f, 59.934f\r
+path.moveTo(SkBits2Float(0x42071ba4), SkBits2Float(0x42670210));  // 33.777f, 57.752f\r
+path.cubicTo(SkBits2Float(0x42075e33), SkBits2Float(0x42670d54), SkBits2Float(0x4207957f), SkBits2Float(0x42671897), SkBits2Float(0x4207cccb), SkBits2Float(0x42672f1e));  // 33.842f, 57.763f, 33.896f, 57.774f, 33.95f, 57.796f\r
+path.cubicTo(SkBits2Float(0x4208a9fa), SkBits2Float(0x4267872e), SkBits2Float(0x42097be6), SkBits2Float(0x42681791), SkBits2Float(0x420a3850), SkBits2Float(0x42688522));  // 34.166f, 57.882f, 34.371f, 58.023f, 34.555f, 58.13f\r
+path.cubicTo(SkBits2Float(0x420b0a3c), SkBits2Float(0x4268fefd), SkBits2Float(0x420d1167), SkBits2Float(0x4269e770), SkBits2Float(0x420d27ee), SkBits2Float(0x426ae564));  // 34.76f, 58.249f, 35.267f, 58.476f, 35.289f, 58.724f\r
+path.cubicTo(SkBits2Float(0x420d0729), SkBits2Float(0x426af0a8), SkBits2Float(0x420cdb21), SkBits2Float(0x426afbeb), SkBits2Float(0x420cb956), SkBits2Float(0x426b072f));  // 35.257f, 58.735f, 35.214f, 58.746f, 35.181f, 58.757f\r
+path.cubicTo(SkBits2Float(0x420b9998), SkBits2Float(0x426b27f4), SkBits2Float(0x420a6f9c), SkBits2Float(0x426b27f4), SkBits2Float(0x42095b21), SkBits2Float(0x426b3337));  // 34.9f, 58.789f, 34.609f, 58.789f, 34.339f, 58.8f\r
+path.cubicTo(SkBits2Float(0x42090d4e), SkBits2Float(0x426b3337), SkBits2Float(0x4207b644), SkBits2Float(0x426b49be), SkBits2Float(0x420773b4), SkBits2Float(0x426b3337));  // 34.263f, 58.8f, 33.928f, 58.822f, 33.863f, 58.8f\r
+path.cubicTo(SkBits2Float(0x4207322b), SkBits2Float(0x426b072f), SkBits2Float(0x4206ef9b), SkBits2Float(0x4269999d), SkBits2Float(0x4206ced7), SkBits2Float(0x426920c8));  // 33.799f, 58.757f, 33.734f, 58.4f, 33.702f, 58.282f\r
+path.cubicTo(SkBits2Float(0x42069685), SkBits2Float(0x4268645e), SkBits2Float(0x4205c49a), SkBits2Float(0x4266b543), SkBits2Float(0x42071ba4), SkBits2Float(0x42670210));  // 33.647f, 58.098f, 33.442f, 57.677f, 33.777f, 57.752f\r
+path.moveTo(SkBits2Float(0x41f026e6), SkBits2Float(0x423f0c4e));  // 30.019f, 47.762f\r
+path.cubicTo(SkBits2Float(0x41effbe4), SkBits2Float(0x42400004), SkBits2Float(0x41f0105f), SkBits2Float(0x4240e877), SkBits2Float(0x41f03b61), SkBits2Float(0x4241d0ea));  // 29.998f, 48, 30.008f, 48.227f, 30.029f, 48.454f\r
+path.lineTo(SkBits2Float(0x41f03b61), SkBits2Float(0x424228fa));  // 30.029f, 48.54f\r
+path.cubicTo(SkBits2Float(0x41f051e8), SkBits2Float(0x42423f81), SkBits2Float(0x41f0c080), SkBits2Float(0x424276cd), SkBits2Float(0x41f11890), SkBits2Float(0x424276cd));  // 30.04f, 48.562f, 30.094f, 48.616f, 30.137f, 48.616f\r
+path.cubicTo(SkBits2Float(0x41f11890), SkBits2Float(0x424276cd), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89), SkBits2Float(0x41f12f17), SkBits2Float(0x42426b89));  // 30.137f, 48.616f, 30.192f, 48.605f, 30.148f, 48.605f\r
+path.cubicTo(SkBits2Float(0x41f1459e), SkBits2Float(0x42426045), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89));  // 30.159f, 48.594f, 30.192f, 48.605f, 30.192f, 48.605f\r
+path.cubicTo(SkBits2Float(0x41f19daf), SkBits2Float(0x424249be), SkBits2Float(0x41f19daf), SkBits2Float(0x42423f81), SkBits2Float(0x41f1b436), SkBits2Float(0x42423f81));  // 30.202f, 48.572f, 30.202f, 48.562f, 30.213f, 48.562f\r
+path.cubicTo(SkBits2Float(0x41f18934), SkBits2Float(0x42414087), SkBits2Float(0x41f11890), SkBits2Float(0x424079df), SkBits2Float(0x41f0ac05), SkBits2Float(0x423f9cb0));  // 30.192f, 48.313f, 30.137f, 48.119f, 30.084f, 47.903f\r
+path.cubicTo(SkBits2Float(0x41f0957e), SkBits2Float(0x423f7ae5), SkBits2Float(0x41f0c080), SkBits2Float(0x423f5a21), SkBits2Float(0x41f0957e), SkBits2Float(0x423f395c));  // 30.073f, 47.87f, 30.094f, 47.838f, 30.073f, 47.806f\r
+path.lineTo(SkBits2Float(0x41f026e6), SkBits2Float(0x423f0c4e));  // 30.019f, 47.762f\r
+path.moveTo(SkBits2Float(0x41ed4dcf), SkBits2Float(0x423fd3fc));  // 29.663f, 47.957f\r
+path.cubicTo(SkBits2Float(0x41ecc8b0), SkBits2Float(0x42408523), SkBits2Float(0x41ec580c), SkBits2Float(0x42414bcb), SkBits2Float(0x41ec580c), SkBits2Float(0x42423f81));  // 29.598f, 48.13f, 29.543f, 48.324f, 29.543f, 48.562f\r
+path.cubicTo(SkBits2Float(0x41ec6e93), SkBits2Float(0x42423f81), SkBits2Float(0x41ec9ba2), SkBits2Float(0x42426046), SkBits2Float(0x41ecb229), SkBits2Float(0x42426b89));  // 29.554f, 48.562f, 29.576f, 48.594f, 29.587f, 48.605f\r
+path.cubicTo(SkBits2Float(0x41ecc8b0), SkBits2Float(0x42426b89), SkBits2Float(0x41ecdd2b), SkBits2Float(0x42426045), SkBits2Float(0x41ecf3b2), SkBits2Float(0x42426b89));  // 29.598f, 48.605f, 29.608f, 48.594f, 29.619f, 48.605f\r
+path.cubicTo(SkBits2Float(0x41ecf3b2), SkBits2Float(0x42426b89), SkBits2Float(0x41eda5df), SkBits2Float(0x42426045), SkBits2Float(0x41edba5a), SkBits2Float(0x42423f81));  // 29.619f, 48.605f, 29.706f, 48.594f, 29.716f, 48.562f\r
+path.cubicTo(SkBits2Float(0x41ee126a), SkBits2Float(0x4241e66a), SkBits2Float(0x41edd0e1), SkBits2Float(0x42403750), SkBits2Float(0x41eda5df), SkBits2Float(0x423fdf3f));  // 29.759f, 48.475f, 29.727f, 48.054f, 29.706f, 47.968f\r
+path.lineTo(SkBits2Float(0x41ed4dcf), SkBits2Float(0x423fd3fb));  // 29.663f, 47.957f\r
+path.moveTo(SkBits2Float(0x41d05a19), SkBits2Float(0x4258ab05));  // 26.044f, 54.167f\r
+path.cubicTo(SkBits2Float(0x41d05a19), SkBits2Float(0x42589fc1), SkBits2Float(0x41d070a0), SkBits2Float(0x42588a40), SkBits2Float(0x41d05a19), SkBits2Float(0x42586876));  // 26.044f, 54.156f, 26.055f, 54.135f, 26.044f, 54.102f\r
+path.cubicTo(SkBits2Float(0x41d05a19), SkBits2Float(0x42583c6e), SkBits2Float(0x41d02f17), SkBits2Float(0x4257ee9b), SkBits2Float(0x41d00209), SkBits2Float(0x4257c293));  // 26.044f, 54.059f, 26.023f, 53.983f, 26.001f, 53.94f\r
+path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x42571cb0), SkBits2Float(0x41d00209), SkBits2Float(0x42568210), SkBits2Float(0x41cfeb82), SkBits2Float(0x4255c5a5));  // 25.99f, 53.778f, 26.001f, 53.627f, 25.99f, 53.443f\r
+path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x4255a4e0), SkBits2Float(0x41cfc080), SkBits2Float(0x42552b05), SkBits2Float(0x41cfd4fb), SkBits2Float(0x4254dd32));  // 25.99f, 53.411f, 25.969f, 53.292f, 25.979f, 53.216f\r
+path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x4254b12a), SkBits2Float(0x41d05a1a), SkBits2Float(0x4254b12a), SkBits2Float(0x41d0df38), SkBits2Float(0x4254c7b1));  // 25.99f, 53.173f, 26.044f, 53.173f, 26.109f, 53.195f\r
+path.cubicTo(SkBits2Float(0x41d24186), SkBits2Float(0x42552b05), SkBits2Float(0x41d4ac05), SkBits2Float(0x42563f80), SkBits2Float(0x41d50621), SkBits2Float(0x42566044));  // 26.282f, 53.292f, 26.584f, 53.562f, 26.628f, 53.594f\r
+path.cubicTo(SkBits2Float(0x41d60e52), SkBits2Float(0x4256da1f), SkBits2Float(0x41d70208), SkBits2Float(0x425748b7), SkBits2Float(0x41d80a3a), SkBits2Float(0x4257c292));  // 26.757f, 53.713f, 26.876f, 53.821f, 27.005f, 53.94f\r
+path.cubicTo(SkBits2Float(0x41d8a5e0), SkBits2Float(0x4257f9de), SkBits2Float(0x41da1eb5), SkBits2Float(0x4258947e), SkBits2Float(0x41d8a5e0), SkBits2Float(0x4258ab05));  // 27.081f, 53.994f, 27.265f, 54.145f, 27.081f, 54.167f\r
+path.cubicTo(SkBits2Float(0x41d7df38), SkBits2Float(0x4258cbca), SkBits2Float(0x41d72d0b), SkBits2Float(0x4258b649), SkBits2Float(0x41d66663), SkBits2Float(0x4258b649));  // 26.984f, 54.199f, 26.897f, 54.178f, 26.8f, 54.178f\r
+path.cubicTo(SkBits2Float(0x41d547ab), SkBits2Float(0x4258cbca), SkBits2Float(0x41d1bc67), SkBits2Float(0x42592f1e), SkBits2Float(0x41d0b22a), SkBits2Float(0x4258e251));  // 26.66f, 54.199f, 26.217f, 54.296f, 26.087f, 54.221f\r
+path.lineTo(SkBits2Float(0x41d0b22a), SkBits2Float(0x4258d70d));  // 26.087f, 54.21f\r
+path.cubicTo(SkBits2Float(0x41d09daf), SkBits2Float(0x4258d70d), SkBits2Float(0x41d070a1), SkBits2Float(0x4258b648), SkBits2Float(0x41d05a1a), SkBits2Float(0x4258ab05));  // 26.077f, 54.21f, 26.055f, 54.178f, 26.044f, 54.167f\r
+path.moveTo(SkBits2Float(0x41ce8b41), SkBits2Float(0x42588a40));  // 25.818f, 54.135f\r
+path.cubicTo(SkBits2Float(0x41ceb643), SkBits2Float(0x4258ab05), SkBits2Float(0x41ce74ba), SkBits2Float(0x4258ab05), SkBits2Float(0x41ceccca), SkBits2Float(0x4258ab05));  // 25.839f, 54.167f, 25.807f, 54.167f, 25.85f, 54.167f\r
+path.cubicTo(SkBits2Float(0x41cef7cc), SkBits2Float(0x4258ab05), SkBits2Float(0x41cf0e53), SkBits2Float(0x4258b336), SkBits2Float(0x41cf0e53), SkBits2Float(0x42589db5));  // 25.871f, 54.167f, 25.882f, 54.175f, 25.882f, 54.154f\r
+path.cubicTo(SkBits2Float(0x41cf0e53), SkBits2Float(0x4258395b), SkBits2Float(0x41cf0a3a), SkBits2Float(0x42579790), SkBits2Float(0x41cedd2c), SkBits2Float(0x4257343c));  // 25.882f, 54.056f, 25.88f, 53.898f, 25.858f, 53.801f\r
+path.cubicTo(SkBits2Float(0x41cec8b1), SkBits2Float(0x42564086), SkBits2Float(0x41ceccca), SkBits2Float(0x4254f3b9), SkBits2Float(0x41ce5e32), SkBits2Float(0x425421cd));  // 25.848f, 53.563f, 25.85f, 53.238f, 25.796f, 53.033f\r
+path.lineTo(SkBits2Float(0x41cdef9a), SkBits2Float(0x425421cd));  // 25.742f, 53.033f\r
+path.cubicTo(SkBits2Float(0x41cdd913), SkBits2Float(0x4254dd31), SkBits2Float(0x41ce126b), SkBits2Float(0x425626ec), SkBits2Float(0x41ce28f2), SkBits2Float(0x4256e250));  // 25.731f, 53.216f, 25.759f, 53.538f, 25.77f, 53.721f\r
+path.cubicTo(SkBits2Float(0x41ce3f79), SkBits2Float(0x42579377), SkBits2Float(0x41ce47aa), SkBits2Float(0x42580f5e), SkBits2Float(0x41ce8b40), SkBits2Float(0x42588a40));  // 25.781f, 53.894f, 25.785f, 54.015f, 25.818f, 54.135f\r
+path.moveTo(SkBits2Float(0x41c58d4c), SkBits2Float(0x425271ad));  // 24.694f, 52.611f\r
+path.cubicTo(SkBits2Float(0x41c58d4c), SkBits2Float(0x42525c2c), SkBits2Float(0x41c5ba5a), SkBits2Float(0x42523024), SkBits2Float(0x41c5fbe4), SkBits2Float(0x425224e0));  // 24.694f, 52.59f, 24.716f, 52.547f, 24.748f, 52.536f\r
+path.lineTo(SkBits2Float(0x41c6126b), SkBits2Float(0x4252199c));  // 24.759f, 52.525f\r
+path.cubicTo(SkBits2Float(0x41c6978a), SkBits2Float(0x42520f5f), SkBits2Float(0x41c774b9), SkBits2Float(0x42523023), SkBits2Float(0x41c79fbb), SkBits2Float(0x42525c2b));  // 24.824f, 52.515f, 24.932f, 52.547f, 24.953f, 52.59f\r
+path.cubicTo(SkBits2Float(0x41c7f9d8), SkBits2Float(0x4252a9fe), SkBits2Float(0x41c79fbb), SkBits2Float(0x4258e250), SkBits2Float(0x41c78b40), SkBits2Float(0x4259199c));  // 24.997f, 52.666f, 24.953f, 54.221f, 24.943f, 54.275f\r
+path.lineTo(SkBits2Float(0x41c78b40), SkBits2Float(0x42592f1d));  // 24.943f, 54.296f\r
+path.cubicTo(SkBits2Float(0x41c747aa), SkBits2Float(0x42595c2b), SkBits2Float(0x41c68103), SkBits2Float(0x42596669), SkBits2Float(0x41c5fbe4), SkBits2Float(0x42596669));  // 24.91f, 54.34f, 24.813f, 54.35f, 24.748f, 54.35f\r
+path.cubicTo(SkBits2Float(0x41c5353c), SkBits2Float(0x425971ad), SkBits2Float(0x41c41684), SkBits2Float(0x425971ad), SkBits2Float(0x41c3e975), SkBits2Float(0x42592f1d));  // 24.651f, 54.361f, 24.511f, 54.361f, 24.489f, 54.296f\r
+path.cubicTo(SkBits2Float(0x41c3a7ec), SkBits2Float(0x4258cbc9), SkBits2Float(0x41c42afe), SkBits2Float(0x4257d919), SkBits2Float(0x41c44185), SkBits2Float(0x42578002));  // 24.457f, 54.199f, 24.521f, 53.962f, 24.532f, 53.875f\r
+path.cubicTo(SkBits2Float(0x41c46e93), SkBits2Float(0x42563f7f), SkBits2Float(0x41c4c6a4), SkBits2Float(0x42550a3f), SkBits2Float(0x41c5353b), SkBits2Float(0x4253df3d));  // 24.554f, 53.562f, 24.597f, 53.26f, 24.651f, 52.968f\r
+path.cubicTo(SkBits2Float(0x41c54bc2), SkBits2Float(0x42537be9), SkBits2Float(0x41c56249), SkBits2Float(0x42530d51), SkBits2Float(0x41c58d4b), SkBits2Float(0x4252cac2));  // 24.662f, 52.871f, 24.673f, 52.763f, 24.694f, 52.698f\r
+path.cubicTo(SkBits2Float(0x41c58d4b), SkBits2Float(0x4252a9fd), SkBits2Float(0x41c56249), SkBits2Float(0x42528833), SkBits2Float(0x41c58d4b), SkBits2Float(0x425271ab));  // 24.694f, 52.666f, 24.673f, 52.633f, 24.694f, 52.611f\r
+path.moveTo(SkBits2Float(0x41c36662), SkBits2Float(0x42534fe0));  // 24.425f, 52.828f\r
+path.cubicTo(SkBits2Float(0x41c33954), SkBits2Float(0x4253c9bb), SkBits2Float(0x41c34dcf), SkBits2Float(0x42541688), SkBits2Float(0x41c322cc), SkBits2Float(0x42549063));  // 24.403f, 52.947f, 24.413f, 53.022f, 24.392f, 53.141f\r
+path.cubicTo(SkBits2Float(0x41c2f5be), SkBits2Float(0x4254fefb), SkBits2Float(0x41c2b434), SkBits2Float(0x42558e57), SkBits2Float(0x41c29dad), SkBits2Float(0x42560832));  // 24.37f, 53.249f, 24.338f, 53.389f, 24.327f, 53.508f\r
+path.cubicTo(SkBits2Float(0x41c2709f), SkBits2Float(0x4256e561), SkBits2Float(0x41c2459d), SkBits2Float(0x4257ad0f), SkBits2Float(0x41c1ed8c), SkBits2Float(0x42586874));  // 24.305f, 53.724f, 24.284f, 53.919f, 24.241f, 54.102f\r
+path.cubicTo(SkBits2Float(0x41c1d705), SkBits2Float(0x4258cbc8), SkBits2Float(0x41c20207), SkBits2Float(0x42590e57), SkBits2Float(0x41c1c07e), SkBits2Float(0x425950e7));  // 24.23f, 54.199f, 24.251f, 54.264f, 24.219f, 54.329f\r
+path.cubicTo(SkBits2Float(0x41c1c07e), SkBits2Float(0x42596668), SkBits2Float(0x41c1686e), SkBits2Float(0x42599270), SkBits2Float(0x41c13b5f), SkBits2Float(0x42599270));  // 24.219f, 54.35f, 24.176f, 54.393f, 24.154f, 54.393f\r
+path.cubicTo(SkBits2Float(0x41c0ccc7), SkBits2Float(0x4259a8f7), SkBits2Float(0x41c074b7), SkBits2Float(0x42599270), SkBits2Float(0x41c00620), SkBits2Float(0x425971ab));  // 24.1f, 54.415f, 24.057f, 54.393f, 24.003f, 54.361f\r
+path.cubicTo(SkBits2Float(0x41c00620), SkBits2Float(0x425825e4), SkBits2Float(0x41c08b3f), SkBits2Float(0x4256da1e), SkBits2Float(0x41c0f9d6), SkBits2Float(0x42558e57));  // 24.003f, 54.037f, 24.068f, 53.713f, 24.122f, 53.389f\r
+path.cubicTo(SkBits2Float(0x41c151e6), SkBits2Float(0x425479dc), SkBits2Float(0x41c151e6), SkBits2Float(0x42534fe0), SkBits2Float(0x41c1ed8c), SkBits2Float(0x425245a3));  // 24.165f, 53.119f, 24.165f, 52.828f, 24.241f, 52.568f\r
+path.cubicTo(SkBits2Float(0x41c22f15), SkBits2Float(0x42520f5d), SkBits2Float(0x41c22f15), SkBits2Float(0x4251d70b), SkBits2Float(0x41c25c24), SkBits2Float(0x4251ccce));  // 24.273f, 52.515f, 24.273f, 52.46f, 24.295f, 52.45f\r
+path.cubicTo(SkBits2Float(0x41c2e143), SkBits2Float(0x4251b647), SkBits2Float(0x41c34dce), SkBits2Float(0x4251e24f), SkBits2Float(0x41c3a7eb), SkBits2Float(0x4251e24f));  // 24.36f, 52.428f, 24.413f, 52.471f, 24.457f, 52.471f\r
+path.cubicTo(SkBits2Float(0x41c3be72), SkBits2Float(0x42525c2a), SkBits2Float(0x41c37add), SkBits2Float(0x4252e149), SkBits2Float(0x41c36662), SkBits2Float(0x42534fe0));  // 24.468f, 52.59f, 24.435f, 52.72f, 24.425f, 52.828f\r
+path.moveTo(SkBits2Float(0x41b3105e), SkBits2Float(0x426e020d));  // 22.383f, 59.502f\r
+path.cubicTo(SkBits2Float(0x41b2ced5), SkBits2Float(0x426dcac1), SkBits2Float(0x41b28b3f), SkBits2Float(0x426d9375), SkBits2Float(0x41b21ca8), SkBits2Float(0x426d676d));  // 22.351f, 59.448f, 22.318f, 59.394f, 22.264f, 59.351f\r
+path.lineTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d676d));  // 22.243f, 59.351f\r
+path.lineTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d50e6));  // 22.243f, 59.329f\r
+path.cubicTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d2f1b), SkBits2Float(0x41b1830e), SkBits2Float(0x426d199a), SkBits2Float(0x41b15600), SkBits2Float(0x426d0f5d));  // 22.243f, 59.296f, 22.189f, 59.275f, 22.167f, 59.265f\r
+path.cubicTo(SkBits2Float(0x41b0e768), SkBits2Float(0x426cccce), SkBits2Float(0x41af1683), SkBits2Float(0x426bd917), SkBits2Float(0x41aefffc), SkBits2Float(0x426b8107));  // 22.113f, 59.2f, 21.886f, 58.962f, 21.875f, 58.876f\r
+path.cubicTo(SkBits2Float(0x41aeeb81), SkBits2Float(0x426b3334), SkBits2Float(0x41af5a19), SkBits2Float(0x426acfe0), SkBits2Float(0x41af70a0), SkBits2Float(0x426a8d51));  // 21.865f, 58.8f, 21.919f, 58.703f, 21.93f, 58.638f\r
+path.cubicTo(SkBits2Float(0x41b04dcf), SkBits2Float(0x42693647), SkBits2Float(0x41b1db1f), SkBits2Float(0x4268645b), SkBits2Float(0x41b43123), SkBits2Float(0x4267c9bc));  // 22.038f, 58.303f, 22.232f, 58.098f, 22.524f, 57.947f\r
+path.cubicTo(SkBits2Float(0x41b472ac), SkBits2Float(0x4267a7f1), SkBits2Float(0x41b4f7cb), SkBits2Float(0x426770a5), SkBits2Float(0x41b56662), SkBits2Float(0x42676668));  // 22.556f, 57.914f, 22.621f, 57.86f, 22.675f, 57.85f\r
+path.cubicTo(SkBits2Float(0x41b5a7eb), SkBits2Float(0x42675b24), SkBits2Float(0x41b5d4fa), SkBits2Float(0x42676668), SkBits2Float(0x41b62d0a), SkBits2Float(0x42675b24));  // 22.707f, 57.839f, 22.729f, 57.85f, 22.772f, 57.839f\r
+path.cubicTo(SkBits2Float(0x41b69ba2), SkBits2Float(0x42674fe0), SkBits2Float(0x41b78f58), SkBits2Float(0x42671895), SkBits2Float(0x41b828f1), SkBits2Float(0x42671895));  // 22.826f, 57.828f, 22.945f, 57.774f, 23.02f, 57.774f\r
+path.cubicTo(SkBits2Float(0x41b8ae10), SkBits2Float(0x42671895), SkBits2Float(0x41b8c497), SkBits2Float(0x42672f1c), SkBits2Float(0x41b91ca7), SkBits2Float(0x4267449d));  // 23.085f, 57.774f, 23.096f, 57.796f, 23.139f, 57.817f\r
+path.lineTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x42675b24));  // 23.139f, 57.839f\r
+path.cubicTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x42674fe0), SkBits2Float(0x41b9332e), SkBits2Float(0x426770a5), SkBits2Float(0x41b9332e), SkBits2Float(0x4267872c));  // 23.139f, 57.828f, 23.15f, 57.86f, 23.15f, 57.882f\r
+path.cubicTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x4267df3c), SkBits2Float(0x41b90620), SkBits2Float(0x42685918), SkBits2Float(0x41b8db1e), SkBits2Float(0x4268bc6b));  // 23.139f, 57.968f, 23.128f, 58.087f, 23.107f, 58.184f\r
+path.cubicTo(SkBits2Float(0x41b855ff), SkBits2Float(0x426a29fc), SkBits2Float(0x41b7d0e1), SkBits2Float(0x426bc290), SkBits2Float(0x41b76249), SkBits2Float(0x426d2f1b));  // 23.042f, 58.541f, 22.977f, 58.94f, 22.923f, 59.296f\r
+path.cubicTo(SkBits2Float(0x41b720c0), SkBits2Float(0x426e0d50), SkBits2Float(0x41b720c0), SkBits2Float(0x426ed3f8), SkBits2Float(0x41b69ba1), SkBits2Float(0x426f79dc));  // 22.891f, 59.513f, 22.891f, 59.707f, 22.826f, 59.869f\r
+path.cubicTo(SkBits2Float(0x41b64391), SkBits2Float(0x426f645b), SkBits2Float(0x41b62d09), SkBits2Float(0x426f79dc), SkBits2Float(0x41b5eb80), SkBits2Float(0x426f645b));  // 22.783f, 59.848f, 22.772f, 59.869f, 22.74f, 59.848f\r
+path.cubicTo(SkBits2Float(0x41b5a7ea), SkBits2Float(0x426f5917), SkBits2Float(0x41b57adc), SkBits2Float(0x426f374d), SkBits2Float(0x41b53953), SkBits2Float(0x426f1688));  // 22.707f, 59.837f, 22.685f, 59.804f, 22.653f, 59.772f\r
+path.lineTo(SkBits2Float(0x41b53953), SkBits2Float(0x426f0107));  // 22.653f, 59.751f\r
+path.cubicTo(SkBits2Float(0x41b472ab), SkBits2Float(0x426ea7f0), SkBits2Float(0x41b3ac03), SkBits2Float(0x426e5a1e), SkBits2Float(0x41b3105d), SkBits2Float(0x426e020d));  // 22.556f, 59.664f, 22.459f, 59.588f, 22.383f, 59.502f\r
+    testSimplify(reporter, path, filename);
+}\r
+
+static void joel_5(skiatest::Reporter* reporter, const char* filename) {
+    SkPath path;
+    path.setFillType((SkPath::FillType) 0);
+path.moveTo(SkBits2Float(0x43c5145a), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f\r
+path.lineTo(SkBits2Float(0x43c5145a), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f\r
+path.lineTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f\r
+path.cubicTo(SkBits2Float(0x43b64a5e), SkBits2Float(0x43dc9604), SkBits2Float(0x43be0958), SkBits2Float(0x43dbb604), SkBits2Float(0x43c5145a), SkBits2Float(0x43dc8312));  // 364.581f, 441.172f, 380.073f, 439.422f, 394.159f, 441.024f\r
+path.cubicTo(SkBits2Float(0x43be0958), SkBits2Float(0x43dbb604), SkBits2Float(0x43b64a5e), SkBits2Float(0x43dc9604), SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 380.073f, 439.422f, 364.581f, 441.172f, 350.612f, 439.547f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f\r
+path.lineTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f\r
+path.cubicTo(SkBits2Float(0x43ab3c6b), SkBits2Float(0x43debc08), SkBits2Float(0x43ad1b65), SkBits2Float(0x43de18f6), SkBits2Float(0x43af4e77), SkBits2Float(0x43dbc604));  // 342.472f, 445.469f, 346.214f, 444.195f, 350.613f, 439.547f\r
+path.cubicTo(SkBits2Float(0x43ad1b65), SkBits2Float(0x43de18f6), SkBits2Float(0x43ab3c6b), SkBits2Float(0x43debc08), SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 346.214f, 444.195f, 342.472f, 445.469f, 338.144f, 450.172f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f\r
+path.lineTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f\r
+path.cubicTo(SkBits2Float(0x43aa0852), SkBits2Float(0x43e183f8), SkBits2Float(0x43a9be56), SkBits2Float(0x43e0d2f2), SkBits2Float(0x43a9124e), SkBits2Float(0x43e11604));  // 340.065f, 451.031f, 339.487f, 449.648f, 338.143f, 450.172f\r
+path.cubicTo(SkBits2Float(0x43a9be56), SkBits2Float(0x43e0d2f2), SkBits2Float(0x43aa0852), SkBits2Float(0x43e183f8), SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 339.487f, 449.648f, 340.065f, 451.031f, 341.229f, 450.906f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f\r
+path.lineTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f\r
+path.cubicTo(SkBits2Float(0x43aead71), SkBits2Float(0x43dd9d0e), SkBits2Float(0x43acd375), SkBits2Float(0x43dff20c), SkBits2Float(0x43aa9d71), SkBits2Float(0x43e173f8));  // 349.355f, 443.227f, 345.652f, 447.891f, 341.23f, 450.906f\r
+path.cubicTo(SkBits2Float(0x43acd354), SkBits2Float(0x43dff20c), SkBits2Float(0x43aead50), SkBits2Float(0x43dd9d0f), SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 345.651f, 447.891f, 349.354f, 443.227f, 354.425f, 441.758f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f\r
+path.lineTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f\r
+path.cubicTo(SkBits2Float(0x43adc76d), SkBits2Float(0x43e0f4fe), SkBits2Float(0x43b21a5f), SkBits2Float(0x43df7efa), SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 347.558f, 449.914f, 356.206f, 446.992f, 354.425f, 441.758f\r
+path.cubicTo(SkBits2Float(0x43b21a5f), SkBits2Float(0x43df7efa), SkBits2Float(0x43adc76d), SkBits2Float(0x43e0f4fe), SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 356.206f, 446.992f, 347.558f, 449.914f, 345.042f, 454.008f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f\r
+path.lineTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f\r
+path.cubicTo(SkBits2Float(0x43b16169), SkBits2Float(0x43ded7f0), SkBits2Float(0x43aef375), SkBits2Float(0x43e13be8), SkBits2Float(0x43ac8561), SkBits2Float(0x43e300e6));  // 354.761f, 445.687f, 349.902f, 450.468f, 345.042f, 454.007f\r
+path.cubicTo(SkBits2Float(0x43aef355), SkBits2Float(0x43e13c09), SkBits2Float(0x43b16169), SkBits2Float(0x43ded811), SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 349.901f, 450.469f, 354.761f, 445.688f, 358.386f, 441.023f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f\r
+path.lineTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f\r
+path.cubicTo(SkBits2Float(0x43b44959), SkBits2Float(0x43dcddf4), SkBits2Float(0x43b3e76d), SkBits2Float(0x43dc48f6), SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 360.573f, 441.734f, 359.808f, 440.57f, 358.386f, 441.023f\r
+path.cubicTo(SkBits2Float(0x43b3e76d), SkBits2Float(0x43dc48f6), SkBits2Float(0x43b44959), SkBits2Float(0x43dcddf4), SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 359.808f, 440.57f, 360.573f, 441.734f, 361.464f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f\r
+path.lineTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f\r
+path.cubicTo(SkBits2Float(0x43af945b), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b3a74d), SkBits2Float(0x43e0ce14), SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 351.159f, 452.227f, 359.307f, 449.61f, 361.464f, 442.5f\r
+path.cubicTo(SkBits2Float(0x43b3a76d), SkBits2Float(0x43e0cdf4), SkBits2Float(0x43af945b), SkBits2Float(0x43e21d0e), SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 359.308f, 449.609f, 351.159f, 452.227f, 348.995f, 459.305f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f\r
+path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f\r
+path.cubicTo(SkBits2Float(0x43b2c063), SkBits2Float(0x43dfa604), SkBits2Float(0x43b1d561), SkBits2Float(0x43e374fe), SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 357.503f, 447.297f, 355.667f, 454.914f, 348.995f, 459.305f\r
+path.cubicTo(SkBits2Float(0x43b1d561), SkBits2Float(0x43e374fe), SkBits2Float(0x43b2c063), SkBits2Float(0x43dfa604), SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 355.667f, 454.914f, 357.503f, 447.297f, 363.081f, 441.758f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f\r
+path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f\r
+path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f\r
+path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f\r
+path.lineTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f\r
+path.cubicTo(SkBits2Float(0x43b29f5d), SkBits2Float(0x43e3e810), SkBits2Float(0x43b59667), SkBits2Float(0x43e0f916), SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 357.245f, 455.813f, 363.175f, 449.946f, 365.417f, 442.5f\r
+path.cubicTo(SkBits2Float(0x43b59667), SkBits2Float(0x43e0f8f6), SkBits2Float(0x43b29f5d), SkBits2Float(0x43e3e7f0), SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 363.175f, 449.945f, 357.245f, 455.812f, 352.956f, 462.266f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f\r
+path.lineTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f\r
+path.cubicTo(SkBits2Float(0x43b03a5f), SkBits2Float(0x43e934fe), SkBits2Float(0x43b1345b), SkBits2Float(0x43e7870a), SkBits2Float(0x43b07a5f), SkBits2Float(0x43e721ec));  // 352.456f, 466.414f, 354.409f, 463.055f, 352.956f, 462.265f\r
+path.cubicTo(SkBits2Float(0x43b1345b), SkBits2Float(0x43e7870b), SkBits2Float(0x43b03a5f), SkBits2Float(0x43e934fe), SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 354.409f, 463.055f, 352.456f, 466.414f, 353.69f, 464.617f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f\r
+path.lineTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f\r
+path.cubicTo(SkBits2Float(0x43b42667), SkBits2Float(0x43e039fc), SkBits2Float(0x43b39d71), SkBits2Float(0x43e4e000), SkBits2Float(0x43b0d873), SkBits2Float(0x43e84efa));  // 360.3f, 448.453f, 359.23f, 457.75f, 353.691f, 464.617f\r
+path.cubicTo(SkBits2Float(0x43b39d50), SkBits2Float(0x43e4e000), SkBits2Float(0x43b42667), SkBits2Float(0x43e039fc), SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 359.229f, 457.75f, 360.3f, 448.453f, 368.503f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f\r
+path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f\r
+path.lineTo(SkBits2Float(0x43b84043), SkBits2Float(0x43ddb106));  // 368.502f, 443.383f\r
+path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f\r
+path.cubicTo(SkBits2Float(0x43b48d72), SkBits2Float(0x43e569fc), SkBits2Float(0x43b7897a), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b89d72), SkBits2Float(0x43de0efa));  // 361.105f, 458.828f, 367.074f, 452.227f, 369.23f, 444.117f\r
+path.cubicTo(SkBits2Float(0x43b78959), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b48d51), SkBits2Float(0x43e569fc), SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 367.073f, 452.227f, 361.104f, 458.828f, 356.769f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f\r
+path.lineTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f\r
+path.cubicTo(SkBits2Float(0x43b7d74d), SkBits2Float(0x43e17604), SkBits2Float(0x43b5824f), SkBits2Float(0x43e59604), SkBits2Float(0x43b33149), SkBits2Float(0x43e90c08));  // 367.682f, 450.922f, 363.018f, 459.172f, 358.385f, 466.094f\r
+path.cubicTo(SkBits2Float(0x43b58270), SkBits2Float(0x43e59604), SkBits2Float(0x43b7d76e), SkBits2Float(0x43e17604), SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 363.019f, 459.172f, 367.683f, 450.922f, 372.315f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f\r
+path.lineTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f\r
+path.cubicTo(SkBits2Float(0x43bb1853), SkBits2Float(0x43dd92f2), SkBits2Float(0x43ba9e57), SkBits2Float(0x43ddab02), SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 374.19f, 443.148f, 373.237f, 443.336f, 372.315f, 443.383f\r
+path.cubicTo(SkBits2Float(0x43ba9e57), SkBits2Float(0x43ddab02), SkBits2Float(0x43bb1853), SkBits2Float(0x43dd92f2), SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 373.237f, 443.336f, 374.19f, 443.148f, 374.651f, 444.117f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f\r
+path.cubicTo(SkBits2Float(0x43b76c6b), SkBits2Float(0x43e55d0e), SkBits2Float(0x43ba4a5f), SkBits2Float(0x43e21312), SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 366.847f, 458.727f, 372.581f, 452.149f, 374.651f, 444.117f\r
+path.cubicTo(SkBits2Float(0x43ba4a5f), SkBits2Float(0x43e212f2), SkBits2Float(0x43b76c6c), SkBits2Float(0x43e55d0e), SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 372.581f, 452.148f, 366.847f, 458.727f, 363.081f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f\r
+path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f\r
+path.lineTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f\r
+path.cubicTo(SkBits2Float(0x43b9de57), SkBits2Float(0x43e29df4), SkBits2Float(0x43b84355), SkBits2Float(0x43e5fefa), SkBits2Float(0x43b6b561), SkBits2Float(0x43e90be8));  // 371.737f, 453.234f, 368.526f, 459.992f, 365.417f, 466.093f\r
+path.cubicTo(SkBits2Float(0x43b84355), SkBits2Float(0x43e5fefa), SkBits2Float(0x43b9de57), SkBits2Float(0x43e29df4), SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 368.526f, 459.992f, 371.737f, 453.234f, 377.003f, 448.695f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f\r
+path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f\r
+path.cubicTo(SkBits2Float(0x43b98149), SkBits2Float(0x43e637f0), SkBits2Float(0x43bd3355), SkBits2Float(0x43e3adf4), SkBits2Float(0x43bc8043), SkBits2Float(0x43e058f6));  // 371.01f, 460.437f, 378.401f, 455.359f, 377.002f, 448.695f\r
+path.cubicTo(SkBits2Float(0x43bd3355), SkBits2Float(0x43e3adf4), SkBits2Float(0x43b9816a), SkBits2Float(0x43e638f6), SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 378.401f, 455.359f, 371.011f, 460.445f, 369.229f, 466.828f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f\r
+path.lineTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f\r
+path.cubicTo(SkBits2Float(0x43ba1376), SkBits2Float(0x43e90000), SkBits2Float(0x43b94270), SkBits2Float(0x43e8f1ec), SkBits2Float(0x43b89d72), SkBits2Float(0x43e969fc));  // 372.152f, 466, 370.519f, 465.89f, 369.23f, 466.828f\r
+path.cubicTo(SkBits2Float(0x43b94270), SkBits2Float(0x43e8f20c), SkBits2Float(0x43ba1355), SkBits2Float(0x43e90000), SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 370.519f, 465.891f, 372.151f, 466, 373.05f, 467.562f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f\r
+path.lineTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f\r
+path.cubicTo(SkBits2Float(0x43be095a), SkBits2Float(0x43e0acee), SkBits2Float(0x43bd8a60), SkBits2Float(0x43e5c0e6), SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 380.073f, 449.351f, 379.081f, 459.507f, 373.05f, 467.562f\r
+path.cubicTo(SkBits2Float(0x43bd8a60), SkBits2Float(0x43e5c107), SkBits2Float(0x43be095a), SkBits2Float(0x43e0ad0f), SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 379.081f, 459.508f, 380.073f, 449.352f, 385.503f, 441.023f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f\r
+path.lineTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f\r
+path.cubicTo(SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e013f8), SkBits2Float(0x43c40668), SkBits2Float(0x43ddc2f2), SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 383.37f, 448.156f, 392.05f, 443.523f, 385.503f, 441.023f\r
+path.cubicTo(SkBits2Float(0x43c40668), SkBits2Float(0x43ddc2f2), SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e013f8), SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 392.05f, 443.523f, 383.37f, 448.156f, 384.042f, 452.375f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f\r
+path.lineTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f\r
+path.cubicTo(SkBits2Float(0x43c06562), SkBits2Float(0x43e4b4fe), SkBits2Float(0x43bf095a), SkBits2Float(0x43e2fd0e), SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.792f, 457.414f, 382.073f, 453.977f, 384.042f, 452.375f\r
+path.cubicTo(SkBits2Float(0x43bf095a), SkBits2Float(0x43e2fdf4), SkBits2Float(0x43c06562), SkBits2Float(0x43e4b4fe), SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 382.073f, 453.984f, 384.792f, 457.414f, 381.69f, 458.43f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f\r
+path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f\r
+path.lineTo(SkBits2Float(0x43bed874), SkBits2Float(0x43e5370a));  // 381.691f, 458.43f\r
+path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f\r
+path.lineTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f\r
+path.cubicTo(SkBits2Float(0x43bdfb66), SkBits2Float(0x43e888f5), SkBits2Float(0x43bd6854), SkBits2Float(0x43e69ced), SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a6e9));  // 379.964f, 465.07f, 378.815f, 461.226f, 382.425f, 459.304f\r
+path.cubicTo(SkBits2Float(0x43bd6854), SkBits2Float(0x43e69d0e), SkBits2Float(0x43bdfb66), SkBits2Float(0x43e888f5), SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 378.815f, 461.227f, 379.964f, 465.07f, 377.737f, 467.562f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f\r
+path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f\r
+path.cubicTo(SkBits2Float(0x43bebf5e), SkBits2Float(0x43e99e14), SkBits2Float(0x43bdc562), SkBits2Float(0x43e9d70a), SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c810));  // 381.495f, 467.235f, 379.542f, 467.68f, 377.737f, 467.563f\r
+path.cubicTo(SkBits2Float(0x43bdc562), SkBits2Float(0x43e9d70a), SkBits2Float(0x43bebf5e), SkBits2Float(0x43e99df3), SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 379.542f, 467.68f, 381.495f, 467.234f, 382.425f, 469.188f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463\r
+path.lineTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463\r
+path.cubicTo(SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e7f9fc), SkBits2Float(0x43bfbe58), SkBits2Float(0x43e98b02), SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 383.37f, 463.953f, 383.487f, 467.086f, 382.425f, 469.188f\r
+path.cubicTo(SkBits2Float(0x43bfbe58), SkBits2Float(0x43e98b02), SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e7f9fc), SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 383.487f, 467.086f, 383.37f, 463.953f, 385.503f, 463\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f\r
+path.lineTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f\r
+path.cubicTo(SkBits2Float(0x43c35270), SkBits2Float(0x43e586ea), SkBits2Float(0x43beb064), SkBits2Float(0x43e561ec), SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 390.644f, 459.054f, 381.378f, 458.765f, 385.503f, 463\r
+path.cubicTo(SkBits2Float(0x43beb064), SkBits2Float(0x43e5620c), SkBits2Float(0x43c35270), SkBits2Float(0x43e5870a), SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 381.378f, 458.766f, 390.644f, 459.055f, 386.386f, 454.742f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f\r
+path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f\r
+path.cubicTo(SkBits2Float(0x43c2ba60), SkBits2Float(0x43e07810), SkBits2Float(0x43c32a60), SkBits2Float(0x43e31106), SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 389.456f, 448.938f, 390.331f, 454.133f, 386.386f, 454.742f\r
+path.cubicTo(SkBits2Float(0x43c32a60), SkBits2Float(0x43e31106), SkBits2Float(0x43c2ba60), SkBits2Float(0x43e07811), SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 390.331f, 454.133f, 389.456f, 448.938f, 391.808f, 446.336f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f\r
+path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f\r
+path.cubicTo(SkBits2Float(0x43c2a668), SkBits2Float(0x43ddbefa), SkBits2Float(0x43c35f7e), SkBits2Float(0x43def4fe), SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 389.3f, 443.492f, 390.746f, 445.914f, 391.808f, 446.336f\r
+path.cubicTo(SkBits2Float(0x43c35f5e), SkBits2Float(0x43def4fe), SkBits2Float(0x43c2a668), SkBits2Float(0x43ddbefa), SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 390.745f, 445.914f, 389.3f, 443.492f, 391.808f, 442.5f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f\r
+path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f\r
+path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f\r
+path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c5145c), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f\r
+path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb0e6));  // 392.542f, 443.382f\r
+path.lineTo(SkBits2Float(0x43c5145c), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f\r
+path.close();
+    testSimplify(reporter, path, filename);
+}\r
+
+static void joel_6(skiatest::Reporter* reporter, const char* filename) {
+    SkPath path;
+path.moveTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f\r
+path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a74efa));  // 390.761f, 334.617f\r
+path.lineTo(SkBits2Float(0x43c33666), SkBits2Float(0x43a6f7f0));  // 390.425f, 333.937f\r
+path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a6e1ec));  // 390.761f, 333.765f\r
+path.lineTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73810));  // 391.128f, 334.438f\r
+path.lineTo(SkBits2Float(0x43c3676c), SkBits2Float(0x43a75106));  // 390.808f, 334.633f\r
+path.lineTo(SkBits2Float(0x43c33374), SkBits2Float(0x43a6fefa));  // 390.402f, 333.992f\r
+path.lineTo(SkBits2Float(0x43c35d70), SkBits2Float(0x43a6e3f8));  // 390.73f, 333.781f\r
+path.lineTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73811));  // 391.128f, 334.438f\r
+path.lineTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73810));  // 391.128f, 334.438f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f\r
+path.lineTo(SkBits2Float(0x43e3824e), SkBits2Float(0x43973000));  // 455.018f, 302.375f\r
+path.lineTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f\r
+path.lineTo(SkBits2Float(0x43e35a5e), SkBits2Float(0x43970df4));  // 454.706f, 302.109f\r
+path.lineTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f\r
+path.lineTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f\r
+path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a6e1ec));  // 390.761f, 333.765f\r
+path.lineTo(SkBits2Float(0x43e3445a), SkBits2Float(0x4396e1ec));  // 454.534f, 301.765f\r
+path.lineTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e41f5c), SkBits2Float(0x43946efa));  // 456.245f, 296.867f\r
+path.lineTo(SkBits2Float(0x43e4545a), SkBits2Float(0x439479fc));  // 456.659f, 296.953f\r
+path.lineTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394acee));  // 456.526f, 297.351f\r
+path.lineTo(SkBits2Float(0x43e41646), SkBits2Float(0x43949efa));  // 456.174f, 297.242f\r
+path.lineTo(SkBits2Float(0x43e41f5d), SkBits2Float(0x43946efa));  // 456.245f, 296.867f\r
+path.lineTo(SkBits2Float(0x43e41f5c), SkBits2Float(0x43946efa));  // 456.245f, 296.867f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f\r
+path.lineTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f\r
+path.lineTo(SkBits2Float(0x43e32b64), SkBits2Float(0x43970000));  // 454.339f, 302\r
+path.lineTo(SkBits2Float(0x43e3e76c), SkBits2Float(0x43949106));  // 455.808f, 297.133f\r
+path.lineTo(SkBits2Float(0x43e44353), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f\r
+path.lineTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f20c));  // 450.979f, 295.891f\r
+path.lineTo(SkBits2Float(0x43e18e56), SkBits2Float(0x4393e810));  // 451.112f, 295.813f\r
+path.lineTo(SkBits2Float(0x43e1a148), SkBits2Float(0x4393eb02));  // 451.26f, 295.836f\r
+path.lineTo(SkBits2Float(0x43e19852), SkBits2Float(0x43941b02));  // 451.19f, 296.211f\r
+path.lineTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f20c));  // 450.979f, 295.891f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43e1a169), SkBits2Float(0x4393eb02));  // 451.261f, 295.836f\r
+path.lineTo(SkBits2Float(0x43e41f5d), SkBits2Float(0x43946efa));  // 456.245f, 296.867f\r
+path.lineTo(SkBits2Float(0x43e40b65), SkBits2Float(0x4394cefa));  // 456.089f, 297.617f\r
+path.lineTo(SkBits2Float(0x43e18d71), SkBits2Float(0x43944b02));  // 451.105f, 296.586f\r
+path.lineTo(SkBits2Float(0x43e1a169), SkBits2Float(0x4393eb02));  // 451.261f, 295.836f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43c35d50), SkBits2Float(0x43a6e3f8));  // 390.729f, 333.781f\r
+path.lineTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f1ec));  // 450.979f, 295.89f\r
+path.lineTo(SkBits2Float(0x43e1b148), SkBits2Float(0x439443f8));  // 451.385f, 296.531f\r
+path.lineTo(SkBits2Float(0x43c39042), SkBits2Float(0x43a737f0));  // 391.127f, 334.437f\r
+path.lineTo(SkBits2Float(0x43c35d50), SkBits2Float(0x43a6e3f8));  // 390.729f, 333.781f\r
+path.close();
+testSimplify(reporter, path, filename);
+}\r
+
+static void joel_7(skiatest::Reporter* reporter, const char* filename) {
+    SkPath path;
+path.moveTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f\r
+path.lineTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f\r
+path.lineTo(SkBits2Float(0x431f8e14), SkBits2Float(0x43eb3b02));  // 159.555f, 470.461f\r
+path.lineTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f\r
+path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f\r
+path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f\r
+path.lineTo(SkBits2Float(0x431d4c08), SkBits2Float(0x43ef720c));  // 157.297f, 478.891f\r
+path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x431c6419), SkBits2Float(0x43eea7f0));  // 156.391f, 477.312f\r
+path.cubicTo(SkBits2Float(0x431d6e15), SkBits2Float(0x43ee5ae2), SkBits2Float(0x431e2000), SkBits2Float(0x43ede000), SkBits2Float(0x431e69fc), SkBits2Float(0x43ed55e4));  // 157.43f, 476.71f, 158.125f, 475.75f, 158.414f, 474.671f\r
+path.cubicTo(SkBits2Float(0x431eb3f8), SkBits2Float(0x43eccbc8), SkBits2Float(0x431e93f8), SkBits2Float(0x43ec35e4), SkBits2Float(0x431df9db), SkBits2Float(0x43ebafe0));  // 158.703f, 473.592f, 158.578f, 472.421f, 157.976f, 471.374f\r
+path.lineTo(SkBits2Float(0x432121cb), SkBits2Float(0x43eac6ea));  // 161.132f, 469.554f\r
+path.cubicTo(SkBits2Float(0x432355c3), SkBits2Float(0x43ecb0e6), SkBits2Float(0x432207ae), SkBits2Float(0x43ef1fe0), SkBits2Float(0x431e33b7), SkBits2Float(0x43f03ae2));  // 163.335f, 473.382f, 162.03f, 478.249f, 158.202f, 480.46f\r
+path.lineTo(SkBits2Float(0x431c6419), SkBits2Float(0x43eea7f0));  // 156.391f, 477.312f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f\r
+path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f\r
+path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f\r
+path.lineTo(SkBits2Float(0x4314e20c), SkBits2Float(0x43ee5106));  // 148.883f, 476.633f\r
+path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x431673f8), SkBits2Float(0x43eddc08));  // 150.453f, 475.719f\r
+path.cubicTo(SkBits2Float(0x43170e15), SkBits2Float(0x43ee620c), SkBits2Float(0x43180000), SkBits2Float(0x43eebb02), SkBits2Float(0x43191604), SkBits2Float(0x43eee000));  // 151.055f, 476.766f, 152, 477.461f, 153.086f, 477.75f\r
+path.cubicTo(SkBits2Float(0x431a2c08), SkBits2Float(0x43ef04fe), SkBits2Float(0x431b5810), SkBits2Float(0x43eef4fe), SkBits2Float(0x431c6418), SkBits2Float(0x43eea7f0));  // 154.172f, 478.039f, 155.344f, 477.914f, 156.391f, 477.312f\r
+path.lineTo(SkBits2Float(0x431e33f7), SkBits2Float(0x43f03ae2));  // 158.203f, 480.46f\r
+path.cubicTo(SkBits2Float(0x431a620b), SkBits2Float(0x43f154de), SkBits2Float(0x4315820c), SkBits2Float(0x43f0add4), SkBits2Float(0x43134c07), SkBits2Float(0x43eec4de));  // 154.383f, 482.663f, 149.508f, 481.358f, 147.297f, 477.538f\r
+path.lineTo(SkBits2Float(0x431673f8), SkBits2Float(0x43eddc08));  // 150.453f, 475.719f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f\r
+path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f\r
+path.lineTo(SkBits2Float(0x4317220d), SkBits2Float(0x43ea19fc));  // 151.133f, 468.203f\r
+path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x43180c08), SkBits2Float(0x43eae3f8));  // 152.047f, 469.781f\r
+path.cubicTo(SkBits2Float(0x43170000), SkBits2Float(0x43eb31ec), SkBits2Float(0x43164e14), SkBits2Float(0x43ebabe8), SkBits2Float(0x43160418), SkBits2Float(0x43ec3604));  // 151, 470.39f, 150.305f, 471.343f, 150.016f, 472.422f\r
+path.cubicTo(SkBits2Float(0x4315ba1c), SkBits2Float(0x43ecc106), SkBits2Float(0x4315d810), SkBits2Float(0x43ed570a), SkBits2Float(0x43167439), SkBits2Float(0x43eddc08));  // 149.727f, 473.508f, 149.844f, 474.68f, 150.454f, 475.719f\r
+path.lineTo(SkBits2Float(0x43134c49), SkBits2Float(0x43eec4fe));  // 147.298f, 477.539f\r
+path.cubicTo(SkBits2Float(0x43111851), SkBits2Float(0x43ecdb02), SkBits2Float(0x43126830), SkBits2Float(0x43ea6c08), SkBits2Float(0x43163a5d), SkBits2Float(0x43e95106));  // 145.095f, 473.711f, 146.407f, 468.844f, 150.228f, 466.633f\r
+path.lineTo(SkBits2Float(0x43180c08), SkBits2Float(0x43eae3f8));  // 152.047f, 469.781f\r
+path.close();\r
+path.moveTo(SkBits2Float(0x431dfa1d), SkBits2Float(0x43ebb000));  // 157.977f, 471.375f\r
+path.cubicTo(SkBits2Float(0x431d620d), SkBits2Float(0x43eb29fc), SkBits2Float(0x431c6e15), SkBits2Float(0x43ead20c), SkBits2Float(0x431b5811), SkBits2Float(0x43eaad0e));  // 157.383f, 470.328f, 156.43f, 469.641f, 155.344f, 469.352f\r
+path.cubicTo(SkBits2Float(0x431a420d), SkBits2Float(0x43ea8810), SkBits2Float(0x43191605), SkBits2Float(0x43ea970a), SkBits2Float(0x43180c09), SkBits2Float(0x43eae418));  // 154.258f, 469.063f, 153.086f, 469.18f, 152.047f, 469.782f\r
+path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95126));  // 150.227f, 466.634f\r
+path.cubicTo(SkBits2Float(0x431a0c09), SkBits2Float(0x43e8372a), SkBits2Float(0x431eec08), SkBits2Float(0x43e8de34), SkBits2Float(0x4321220d), SkBits2Float(0x43eac72a));  // 154.047f, 464.431f, 158.922f, 465.736f, 161.133f, 469.556f\r
+path.lineTo(SkBits2Float(0x431dfa1d), SkBits2Float(0x43ebb000));  // 157.977f, 471.375f\r
+path.close();
+testSimplify(reporter, path, filename);
+}\r
+\r
+static void joel_8(skiatest::Reporter* reporter, const char* filename) {
+    SkPath path;
+path.moveTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429)); // 108.729f, 8.67289f \r
+path.cubicTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429), SkBits2Float(0x42e9a9ce), SkBits2Float(0x41834e87), SkBits2Float(0x42e99c8c), SkBits2Float(0x41c5c960)); // 108.729f, 8.67289f, 116.832f, 16.4133f, 116.806f, 24.7233f \r
+path.cubicTo(SkBits2Float(0x42e98f49), SkBits2Float(0x4204221c), SkBits2Float(0x42d97520), SkBits2Float(0x4223825f), SkBits2Float(0x42d97520), SkBits2Float(0x4223825f)); // 116.78f, 33.0333f, 108.729f, 40.8773f, 108.729f, 40.8773f \r
+path.cubicTo(SkBits2Float(0x42d97520), SkBits2Float(0x4223825f), SkBits2Float(0x42dbbc54), SkBits2Float(0x42099f18), SkBits2Float(0x42d1cb74), SkBits2Float(0x41f77dc0)); // 108.729f, 40.8773f, 109.868f, 34.4054f, 104.897f, 30.9364f \r
+path.cubicTo(SkBits2Float(0x42c7da94), SkBits2Float(0x41dbbd4f), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41d802fb), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41d802fb)); // 99.9269f, 27.4674f, 88.8469f, 27.0015f, 88.8469f, 27.0015f \r
+path.cubicTo(SkBits2Float(0x42a75637), SkBits2Float(0x41d6909f), SkBits2Float(0x4296c543), SkBits2Float(0x41f1b139), SkBits2Float(0x4296c543), SkBits2Float(0x41f1b139)); // 83.6684f, 26.8206f, 75.3853f, 30.2115f, 75.3853f, 30.2115f \r
+path.lineTo(SkBits2Float(0x42824475), SkBits2Float(0x41c69d70)); // 65.1337f, 24.8269f \r
+path.lineTo(SkBits2Float(0x4296c543), SkBits2Float(0x419b89a8)); // 75.3853f, 19.4422f \r
+path.cubicTo(SkBits2Float(0x4296c543), SkBits2Float(0x419b89a8), SkBits2Float(0x42a6b798), SkBits2Float(0x41b89815), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41b95c48)); // 75.3853f, 19.4422f, 83.3586f, 23.0743f, 88.8469f, 23.1701f \r
+path.cubicTo(SkBits2Float(0x42b1b1a1), SkBits2Float(0x41b95c48), SkBits2Float(0x42c80258), SkBits2Float(0x41b03f7a), SkBits2Float(0x42d1cb74), SkBits2Float(0x419340ee)); // 88.8469f, 23.1701f, 100.005f, 22.031f, 104.897f, 18.4067f \r
+path.cubicTo(SkBits2Float(0x42db9490), SkBits2Float(0x416c84c2), SkBits2Float(0x42d97520), SkBits2Float(0x410ac42a), SkBits2Float(0x42d97520), SkBits2Float(0x410ac42a)); // 109.79f, 14.7824f, 108.729f, 8.67289f, 108.729f, 8.67289f \r
+path.lineTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429)); // 108.729f, 8.67289f \r
+path.close(); \r
+testSimplify(reporter, path, filename);
+}\r
 
 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
-static void (*firstTest)(skiatest::Reporter* , const char* filename) = joel_2;
+static void (*firstTest)(skiatest::Reporter* , const char* filename) = joel_5;
 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
 
 static TestDesc tests[] = {
+    TEST(joel_8),
+    TEST(joel_7),
+    TEST(joel_6),
+    TEST(joel_5),
+    TEST(joel_4),
     TEST(joel_3),
     TEST(joel_2),
     TEST(joel_1),
index 37c44c7..392d692 100644 (file)
 <head>
 <div height="0" hidden="true">
 \r
-    Skia UnitTests: --match Simplify$ --resourcePath resources\ -v -V SK_DEBUG\r
+Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ -v -V SK_DEBUG\r
 \r
-Skia UnitTests: --match Simplify$ --resourcePath resources\ -v -V SK_DEBUG\r
-\r
-<div id="joel_2">\r
-SkDCubic::ComplexBreak\r
-{{{403.282989501953125, 497.196990966796875}, {403.42401123046875, 497.243988037109375}, {391.110992431640625, 495.555999755859375}, {391.110992431640625, 495.555999755859375}}},\r
-inflectionsTs[0]=1 {{{403.42401123046875, 497.243988037109375}, {378.7979736328125, 493.868011474609375}}},\r
-maxCurvature[0]=0.502921076 {{{415.5605946972181641, 498.8838844379989155}, {378.8318672594865006, 493.8897667505245295}}},\r
-maxCurvature[1]=0.00584573653 {{{402.8611256294230998, 497.0566467700529643}, {403.7072560005168498, 497.3386291919279643}}},\r
-maxCurvature[2]=1 {{{-235.2805739523428201, 408.7003728645441925}, {1017.50255881562407, 582.4116266471745575}}},\r
+<div id="skpeldorado_com_ua1_working">\r
 SkDCubic::ComplexBreak\r
-{{{378.938995361328125, 485.69500732421875}, {378.790985107421875, 483.57000732421875}, {383.063995361328125, 485.25}, {384.87701416015625, 485.842987060546875}}},\r
-inflectionsTs[0]=0.902182922 {{{377.5954936265454194, 483.3658459632096083}, {390.9661239382471081, 487.9188557410542444}}},\r
-maxCurvature[0]=0.147284654 {{{376.1242685781696196, 488.3189209317107498}, {382.1543795482792234, 481.657199359124661}}},\r
-maxCurvature[1]=0.665451111 {{{382.9330766387548124, 491.4410294434536581}, {382.0450151153173124, 478.6910294434536581}}},\r
+{{{1006.69512939453125, 291}, {1023.263671875, 291}, {1033.8402099609375, 304.43145751953125}, {1030.318359375, 321}}},\r
+maxCurvature[0]=0.474344964 {{{998.1828178832590766, 267.6895845341347808}, {1052.542975701327805, 330.2457181562319306}}},\r
 SkDCubic::ComplexBreak\r
-{{{378.040008544921875, 503.029998779296875}, {378.040008544921875, 503.029998779296875}, {391.415008544921875, 505.795989990234375}, {391.39898681640625, 505.865997314453125}}},\r
-inflectionsTs[0]=0 {{{364.665008544921875, 500.264007568359375}, {391.415008544921875, 505.795989990234375}}},\r
-maxCurvature[0]=0.999930835 {{{391.4414983461760471, 505.6548420424298342}, {391.3564815511855954, 506.0771234565896179}}},\r
-maxCurvature[1]=0.49997578 {{{384.7250201963161089, 504.4216435381547967}, {384.7250201963161089, 504.4216435381547967}}},\r
-maxCurvature[2]=0 {{{378.040008544921875, 503.029998779296875}, {378.040008544921875, 503.029998779296875}}},\r
-seg=1 {{{403.28299f, 497.196991f}, {403.284241f, 497.197388f}, {403.28418f, 497.197632f}}}\r
-seg=2 {{{403.28418f, 497.197632f}, {403.280487f, 497.224304f}, {391.110992f, 495.556f}, {391.110992f, 495.556f}}}\r
-seg=3 {{{403.28299f, 497.196991f}, {403.424011f, 497.243988f}, {391.110992f, 495.556f}, {391.110992f, 495.556f}}}\r
-seg=4 {{{391.110992f, 495.556f}, {392.290985f, 493.165009f}}}\r
-seg=5 {{{392.290985f, 493.165009f}, {392.290985f, 493.165009f}, {388.993988f, 492.056f}, {386.649994f, 491.821014f}}}\r
-seg=6 {{{386.649994f, 491.821014f}, {384.243988f, 491.45401f}, {381.602997f, 490.773987f}, {381.602997f, 490.773987f}}}\r
-seg=7 {{{381.602997f, 490.773987f}, {383.391998f, 488.382996f}}}\r
-seg=8 {{{383.391998f, 488.382996f}, {383.391998f, 488.382996f}, {379.118988f, 487.453003f}, {378.938995f, 485.695007f}}}\r
-seg=9 {{{378.938995f, 485.695007f}, {378.80545f, 483.777863f}, {382.270355f, 484.957733f}, {384.280823f, 485.642365f}}}\r
-seg=10 {{{384.280823f, 485.642365f}, {384.498779f, 485.716583f}, {384.699677f, 485.784973f}, {384.877014f, 485.842987f}}}\r
-seg=11 {{{378.938995f, 485.695007f}, {378.790985f, 483.570007f}, {383.063995f, 485.25f}, {384.877014f, 485.842987f}}}\r
-seg=12 {{{384.877014f, 485.842987f}, {387.696991f, 484.351013f}}}\r
-seg=13 {{{387.696991f, 484.351013f}, {382.752014f, 483.834991f}, {376.595001f, 482.123993f}, {374.477997f, 480.312012f}}}\r
-seg=14 {{{374.477997f, 480.312012f}, {356.220001f, 496.303986f}}}\r
-seg=15 {{{356.220001f, 496.303986f}, {368.095001f, 510.498993f}}}\r
-seg=16 {{{368.095001f, 510.498993f}, {373.884003f, 510.201996f}}}\r
-seg=17 {{{373.884003f, 510.201996f}, {374.477997f, 509.006989f}}}\r
-seg=18 {{{374.477997f, 509.006989f}, {370.915985f, 506.912994f}}}\r
-seg=19 {{{370.915985f, 506.912994f}, {371.807007f, 506.022003f}}}\r
-seg=20 {{{371.807007f, 506.022003f}, {371.807007f, 506.022003f}, {374.807007f, 507.279999f}, {377.752014f, 507.514008f}}}\r
-seg=21 {{{377.752014f, 507.514008f}, {380.752014f, 507.881012f}, {387.399994f, 508.108002f}, {387.399994f, 508.108002f}}}\r
-seg=22 {{{387.399994f, 508.108002f}, {388.884003f, 506.764008f}}}\r
-seg=23 {{{388.884003f, 506.764008f}, {388.884003f, 506.764008f}, {378.345001f, 504.997986f}, {378.345001f, 504.819f}}}\r
-seg=24 {{{378.345001f, 504.819f}, {378.040009f, 503.029999f}}}\r
-seg=25 {{{378.040009f, 503.029999f}, {378.040009f, 503.029999f}, {391.415009f, 505.79599f}, {391.398987f, 505.865997f}}}\r
-seg=26 {{{391.398987f, 505.865997f}, {386.062988f, 502.131989f}}}\r
-seg=27 {{{386.062988f, 502.131989f}, {387.546997f, 500.334991f}}}\r
-seg=28 {{{387.546997f, 500.334991f}, {398.375f, 501.976013f}}}\r
-seg=29 {{{398.375f, 501.976013f}, {403.28299f, 497.196991f}}}\r
-debugShowCubicQuadIntersection wtTs[0]=0 {{{403.28418,497.197632}, {403.280487,497.224304}, {391.110992,495.556}, {391.110992,495.556}}} {{403.28418,497.197632}} wnTs[0]=1 {{{403.28299,497.196991}, {403.284241,497.197388}, {403.28418,497.197632}}}\r
-debugShowCubicQuadIntersection wtTs[0]=0 {{{403.28299,497.196991}, {403.424011,497.243988}, {391.110992,495.556}, {391.110992,495.556}}} {{403.28299,497.196991}} wtTs[1]=0.005859375 {{403.28418,497.197632}} wnTs[0]=0 {{{403.28299,497.196991}, {403.284241,497.197388}, {403.28418,497.197632}}} wnTs[1]=0.985625909\r
-SkOpSegment::addT insert t=0.005859375 segID=3 spanID=59\r
-debugShowQuadLineIntersection wtTs[0]=0 {{{403.28299,497.196991}, {403.284241,497.197388}, {403.28418,497.197632}}} {{403.28299,497.196991}} wnTs[0]=1 {{{398.375,501.976013}, {403.28299,497.196991}}}\r
-debugShowCubicIntersection wtTs[0]=0 {{{403.28418,497.197632}, {403.280487,497.224304}, {391.110992,495.556}, {391.110992,495.556}}} {{403.28418,497.197632}} wtTs[1]=1 {{391.110992,495.556}} wnTs[0]=0.00578961 {{{403.28299,497.196991}, {403.424011,497.243988}, {391.110992,495.556}, {391.110992,495.556}}} wnTs[1]=1\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{403.28418,497.197632}, {403.280487,497.224304}, {391.110992,495.556}, {391.110992,495.556}}} {{391.110992,495.556}} wnTs[0]=0 {{{391.110992,495.556}, {392.290985,493.165009}}}\r
-debugShowCubicLineIntersection wtTs[0]=0.00758417328 {{{403.28418,497.197632}, {403.280487,497.224304}, {391.110992,495.556}, {391.110992,495.556}}} {{403.282013,497.197937}} wnTs[0]=0.9998 {{{398.375,501.976013}, {403.28299,497.196991}}}\r
-SkOpSegment::addT insert t=0.00758417328 segID=2 spanID=60\r
-SkOpSegment::addT insert t=0.999799809 segID=29 spanID=61\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{403.28299,497.196991}, {403.424011,497.243988}, {391.110992,495.556}, {391.110992,495.556}}} {{391.110992,495.556}} wnTs[0]=0 {{{391.110992,495.556}, {392.290985,493.165009}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{403.28299,497.196991}, {403.424011,497.243988}, {391.110992,495.556}, {391.110992,495.556}}} {{403.28299,497.196991}} wtTs[1]=0.0134156992 {{403.282013,497.197968}} wnTs[0]=1 {{{398.375,501.976013}, {403.28299,497.196991}}} wnTs[1]=0.999798501\r
-SkOpSegment::addT insert t=0.0134156992 segID=3 spanID=62\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{392.290985,493.165009}, {392.290985,493.165009}, {388.993988,492.056}, {386.649994,491.821014}}} {{392.290985,493.165009}} wnTs[0]=1 {{{391.110992,495.556}, {392.290985,493.165009}}}\r
-debugShowCubicIntersection wtTs[0]=1 {{{392.290985,493.165009}, {392.290985,493.165009}, {388.993988,492.056}, {386.649994,491.821014}}} {{386.649994,491.821014}} wnTs[0]=0 {{{386.649994,491.821014}, {384.243988,491.45401}, {381.602997,490.773987}, {381.602997,490.773987}}}\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{386.649994,491.821014}, {384.243988,491.45401}, {381.602997,490.773987}, {381.602997,490.773987}}} {{381.602997,490.773987}} wnTs[0]=0 {{{381.602997,490.773987}, {383.391998,488.382996}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{383.391998,488.382996}, {383.391998,488.382996}, {379.118988,487.453003}, {378.938995,485.695007}}} {{383.391998,488.382996}} wnTs[0]=1 {{{381.602997,490.773987}, {383.391998,488.382996}}}\r
-debugShowCubicIntersection wtTs[0]=1 {{{383.391998,488.382996}, {383.391998,488.382996}, {379.118988,487.453003}, {378.938995,485.695007}}} {{378.938995,485.695007}} wnTs[0]=0 {{{378.938995,485.695007}, {378.80545,483.777863}, {382.270355,484.957733}, {384.280823,485.642365}}}\r
-debugShowCubicIntersection wtTs[0]=1 {{{383.391998,488.382996}, {383.391998,488.382996}, {379.118988,487.453003}, {378.938995,485.695007}}} {{378.938995,485.695007}} wnTs[0]=0 {{{378.938995,485.695007}, {378.790985,483.570007}, {383.063995,485.25}, {384.877014,485.842987}}}\r
-debugShowCubicIntersection wtTs[0]=1 {{{378.938995,485.695007}, {378.80545,483.777863}, {382.270355,484.957733}, {384.280823,485.642365}}} {{384.280823,485.642365}} wnTs[0]=0 {{{384.280823,485.642365}, {384.498779,485.716583}, {384.699677,485.784973}, {384.877014,485.842987}}}\r
-debugShowCubicIntersection wtTs[0]=0 {{{378.938995,485.695007}, {378.80545,483.777863}, {382.270355,484.957733}, {384.280823,485.642365}}} {{378.938995,485.695007}} wtTs[1]=1 {{384.280823,485.642365}} wnTs[0]=0 {{{378.938995,485.695007}, {378.790985,483.570007}, {383.063995,485.25}, {384.877014,485.842987}}} wnTs[1]=0.902185418\r
-SkOpSegment::addT insert t=0.902185418 segID=11 spanID=63\r
-SkTSect<struct SkDCubic,struct SkDCubic>::addForPerp priorSpan=-1 t=0.926637941 opp=-1\r
--1=(0,0.929688) []\r
-SkTSect<struct SkDCubic,struct SkDCubic>::addForPerp addBounded span=-1 opp=-1\r
--1=(0.9375,0.945313) [-1]\r
-SkTSect<struct SkDCubic,struct SkDCubic>::addForPerp addBounded span=-1 opp=-1\r
--1=(0.9375,0.945313) [*-1*,*-1*]\r
-SkTSect<struct SkDCubic,struct SkDCubic>::addForPerp addBounded span=-1 opp=-1\r
-debugShowCubicIntersection wtTs[0]=0.25 {{{384.280823,485.642365}, {384.498779,485.716583}, {384.699677,485.784973}, {384.877014,485.842987}}} {{384.440979,485.696869}} wtTs[1]=1 {{384.877014,485.842987}} wnTs[0]=0.926638 {{{378.938995,485.695007}, {378.790985,483.570007}, {383.063995,485.25}, {384.877014,485.842987}}} wnTs[1]=1\r
-SkOpSegment::addT insert t=0.25 segID=10 spanID=64\r
-SkOpSegment::addT insert t=0.926637941 segID=11 spanID=65\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{384.280823,485.642365}, {384.498779,485.716583}, {384.699677,485.784973}, {384.877014,485.842987}}} {{384.877014,485.842987}} wnTs[0]=0 {{{384.877014,485.842987}, {387.696991,484.351013}}}\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{378.938995,485.695007}, {378.790985,483.570007}, {383.063995,485.25}, {384.877014,485.842987}}} {{384.877014,485.842987}} wnTs[0]=0 {{{384.877014,485.842987}, {387.696991,484.351013}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{387.696991,484.351013}, {382.752014,483.834991}, {376.595001,482.123993}, {374.477997,480.312012}}} {{387.696991,484.351013}} wnTs[0]=1 {{{384.877014,485.842987}, {387.696991,484.351013}}}\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{387.696991,484.351013}, {382.752014,483.834991}, {376.595001,482.123993}, {374.477997,480.312012}}} {{374.477997,480.312012}} wnTs[0]=0 {{{374.477997,480.312012}, {356.220001,496.303986}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{374.477997,480.312012}, {356.220001,496.303986}}} {{356.220001,496.303986}} wnTs[0]=0 {{{356.220001,496.303986}, {368.095001,510.498993}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{356.220001,496.303986}, {368.095001,510.498993}}} {{368.095001,510.498993}} wnTs[0]=0 {{{368.095001,510.498993}, {373.884003,510.201996}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{368.095001,510.498993}, {373.884003,510.201996}}} {{373.884003,510.201996}} wnTs[0]=0 {{{373.884003,510.201996}, {374.477997,509.006989}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{373.884003,510.201996}, {374.477997,509.006989}}} {{374.477997,509.006989}} wnTs[0]=0 {{{374.477997,509.006989}, {370.915985,506.912994}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{374.477997,509.006989}, {370.915985,506.912994}}} {{370.915985,506.912994}} wnTs[0]=0 {{{370.915985,506.912994}, {371.807007,506.022003}}}\r
-debugShowCubicLineIntersection no intersect {{{371.807007,506.022003}, {371.807007,506.022003}, {374.807007,507.279999}, {377.752014,507.514008}}} {{{374.477997,509.006989}, {370.915985,506.912994}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{371.807007,506.022003}, {371.807007,506.022003}, {374.807007,507.279999}, {377.752014,507.514008}}} {{371.807007,506.022003}} wnTs[0]=1 {{{370.915985,506.912994}, {371.807007,506.022003}}}\r
-debugShowCubicIntersection wtTs[0]=1 {{{371.807007,506.022003}, {371.807007,506.022003}, {374.807007,507.279999}, {377.752014,507.514008}}} {{377.752014,507.514008}} wnTs[0]=0 {{{377.752014,507.514008}, {380.752014,507.881012}, {387.399994,508.108002}, {387.399994,508.108002}}}\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{377.752014,507.514008}, {380.752014,507.881012}, {387.399994,508.108002}, {387.399994,508.108002}}} {{387.399994,508.108002}} wnTs[0]=0 {{{387.399994,508.108002}, {388.884003,506.764008}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{388.884003,506.764008}, {388.884003,506.764008}, {378.345001,504.997986}, {378.345001,504.819}}} {{388.884003,506.764008}} wnTs[0]=1 {{{387.399994,508.108002}, {388.884003,506.764008}}}\r
-debugShowCubicLineIntersection wtTs[0]=1 {{{388.884003,506.764008}, {388.884003,506.764008}, {378.345001,504.997986}, {378.345001,504.819}}} {{378.345001,504.819}} wnTs[0]=0 {{{378.345001,504.819}, {378.040009,503.029999}}}\r
-debugShowCubicIntersection no intersect {{{388.884003,506.764008}, {388.884003,506.764008}, {378.345001,504.997986}, {378.345001,504.819}}} {{{378.040009,503.029999}, {378.040009,503.029999}, {391.415009,505.79599}, {391.398987,505.865997}}}\r
-debugShowCubicLineIntersection no intersect {{{388.884003,506.764008}, {388.884003,506.764008}, {378.345001,504.997986}, {378.345001,504.819}}} {{{391.398987,505.865997}, {386.062988,502.131989}}}\r
-debugShowCubicLineIntersection wtTs[0]=0 {{{378.040009,503.029999}, {378.040009,503.029999}, {391.415009,505.79599}, {391.398987,505.865997}}} {{378.040009,503.029999}} wnTs[0]=1 {{{378.345001,504.819}, {378.040009,503.029999}}}\r
-debugShowCubicLineIntersection wtTs[0]=0.987732177 {{{378.040009,503.029999}, {378.040009,503.029999}, {391.415009,505.79599}, {391.398987,505.865997}}} {{391.393585,505.862213}} wtTs[1]=1 {{391.398987,505.865997}} wnTs[0]=0.0010133 {{{391.398987,505.865997}, {386.062988,502.131989}}} wnTs[1]=0\r
-SkOpSegment::addT insert t=0.987732177 segID=25 spanID=66\r
-SkOpSegment::addT insert t=0.00101329714 segID=26 spanID=67\r
-debugShowLineIntersection wtTs[0]=1 {{{391.398987,505.865997}, {386.062988,502.131989}}} {{386.062988,502.131989}} wnTs[0]=0 {{{386.062988,502.131989}, {387.546997,500.334991}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{386.062988,502.131989}, {387.546997,500.334991}}} {{387.546997,500.334991}} wnTs[0]=0 {{{387.546997,500.334991}, {398.375,501.976013}}}\r
-debugShowLineIntersection wtTs[0]=1 {{{387.546997,500.334991}, {398.375,501.976013}}} {{398.375,501.976013}} wnTs[0]=0 {{{398.375,501.976013}, {403.28299,497.196991}}}\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-----------------xxxx-x-x--------------00:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-01:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-02:  coinSeg/Span/PtT=11/63/63 endSpan=65 oppSeg/Span/PtT=10/19/19 oppEndSpan=64 MissingCoin\r
-03:  coinSeg/Span/PtT=10/19/19 endSpan=64 oppSeg/Span/PtT=11/63/63 oppEndSpan=65 MissingCoin\r
-04:  coinSeg/Span/PtT=11/65/65 endSpan=19 oppSeg/Span/PtT=11/63/63 oppEndSpan=19 ExpandCoin\r
-05:  coinSeg/Span/PtT=11/65/65 endSpan=22 Fail\r
-06:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-07:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-08:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-09:  seg/base=11/65 seg/base=10/64 MarkCoinStart\r
-10:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-11:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-12:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-13:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-14:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-15:  seg/base=2/60 MarkCoinInsert\r
-16:  seg/base=3/62 MarkCoinInsert\r
-17:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-18:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------xxx-x----------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-04:  seg/base=11/63 seg/base=10/19 MarkCoinStart\r
-05:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-06:  seg/base=10/64 MarkCoinInsert\r
-07:  seg/base=11/65 MarkCoinInsert\r
-08:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-09:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-10:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-11:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-12:  seg/base=2/60 MarkCoinInsert\r
-13:  seg/base=3/62 MarkCoinInsert\r
-14:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-15:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------xxx-x----------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-04:  seg/base=11/63 seg/base=10/19 MarkCoinStart\r
-05:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-06:  seg/base=10/64 MarkCoinInsert\r
-07:  seg/base=11/65 MarkCoinInsert\r
-08:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-09:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-10:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-11:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-12:  seg/base=2/60 MarkCoinInsert\r
-13:  seg/base=3/62 MarkCoinInsert\r
-14:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-15:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------xxx-x----------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-04:  seg/base=11/63 seg/base=10/19 MarkCoinStart\r
-05:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-06:  seg/base=10/64 MarkCoinInsert\r
-07:  seg/base=11/65 MarkCoinInsert\r
-08:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-09:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-10:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-11:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-12:  seg/base=2/60 MarkCoinInsert\r
-13:  seg/base=3/62 MarkCoinInsert\r
-14:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-15:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------xxx-x----------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-04:  seg/base=11/63 seg/base=10/19 MarkCoinStart\r
-05:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-06:  seg/base=10/64 MarkCoinInsert\r
-07:  seg/base=11/65 MarkCoinInsert\r
-08:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-09:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-10:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-11:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-12:  seg/base=2/60 MarkCoinInsert\r
-13:  seg/base=3/62 MarkCoinInsert\r
-14:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-15:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------xxx-x----------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-04:  seg/base=11/63 seg/base=10/19 MarkCoinStart\r
-05:  seg/base=11/22 seg/base=10/20 MarkCoinEnd\r
-06:  seg/base=10/64 MarkCoinInsert\r
-07:  seg/base=11/65 MarkCoinInsert\r
-08:  seg/base=11/21 seg/base=9/17 MarkCoinStart\r
-09:  seg/base=11/63 seg/base=9/18 MarkCoinEnd\r
-10:  seg/base=3/59 seg/base=2/3 MarkCoinStart\r
-11:  seg/base=3/6 seg/base=2/4 MarkCoinEnd\r
-12:  seg/base=2/60 MarkCoinInsert\r
-13:  seg/base=3/62 MarkCoinInsert\r
-14:  seg/base=1/1 seg/base=3/5 MarkCoinStart\r
-15:  seg/base=1/2 seg/base=3/59 MarkCoinEnd\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------x--------------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------x--------------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
------------------x--------------------00:  coinSeg/Span/PtT=11/63/63 endSpan=22 Fail\r
-01:  coinSeg/Span/PtT=11/21/21 endSpan=63 Fail\r
-02:  coinSeg/Span/PtT=3/59/59 endSpan=6 Fail\r
-03:  coinSeg/Span/PtT=1/1/1 endSpan=2 Fail\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
---------------------------------------SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.28418,497.197632 403.28418,497.197834 403.28343,497.197937 403.282013,497.197937) t=0 tEnd=0.00758417328 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=2 (403.282013,497.197937 403.096602,497.199084 391.110992,495.556 391.110992,495.556) t=0.00758417328 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28299,497.196991 403.283816,497.197266 403.28418,497.197475 403.28418,497.197632) t=0 tEnd=0.005859375 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.280823,485.642365 384.335312,485.660919 384.388724,485.679114 384.440979,485.696869) t=0 tEnd=0.25 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=10 (384.440979,485.696869 384.597744,485.750134 384.744011,485.799477 384.877014,485.842987) t=0.25 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::markDone id=10 (384.280823,485.642365 384.498779,485.716583 384.699677,485.784973 384.877014,485.842987) t=0 [19] (384.280823,485.642365) tEnd=0.25 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
-SkOpSegment::markDone id=10 (384.280823,485.642365 384.498779,485.716583 384.699677,485.784973 384.877014,485.842987) t=0.25 [64] (384.440979,485.696869) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
-SkOpSegment::markDone id=9 (378.938995,485.695007 378.80545,483.777863 382.270355,484.957733 384.280823,485.642365) t=0 [17] (378.938995,485.695007) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
-SkOpSegment::markDone id=2 (403.28418,497.197632 403.280487,497.224304 391.110992,495.556 391.110992,495.556) t=0 [3] (403.28418,497.197632) tEnd=0.00758417328 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
-SkOpSegment::markDone id=2 (403.28418,497.197632 403.280487,497.224304 391.110992,495.556 391.110992,495.556) t=0.00758417328 [60] (403.282013,497.197937) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
-SkOpSegment::markDone id=3 (403.28299,497.196991 403.424011,497.243988 391.110992,495.556 391.110992,495.556) t=0 [5] (403.28299,497.196991) tEnd=0.005859375 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
---------------------------------------SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
---------------------------------------SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::sortAngles [1] tStart=0 [1]\r
-SkOpSegment::sortAngles [1] tStart=1 [2]\r
-SkOpSegment::sortAngles [3] tStart=0.005859375 [59]\r
-SkOpSegment::sortAngles [3] tStart=0.0134156992 [62]\r
-SkOpAngle::after [3/4] 31/31 tStart=0.0134156992 tEnd=0.005859375 < [29/20] 17/17 tStart=0.999799809 tEnd=0 < [3/5] 17/13 tStart=0.0134156992 tEnd=1  F 11\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {403.28418,497.197601}, {403.28418,497.197804}, {403.28418,497.197601}}} id=3\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {398.375,501.976013}}} id=29\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {403.095864,497.198984}, {391.110992,495.555969}, {391.110992,495.555969}}} id=3\r
-SkOpAngle::after [3/4] 31/31 tStart=0.0134156992 tEnd=0.005859375 < [29/21] 1/1 tStart=0.999799809 tEnd=1 < [3/5] 17/13 tStart=0.0134156992 tEnd=1  T 4\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {403.28418,497.197601}, {403.28418,497.197804}, {403.28418,497.197601}}} id=3\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {403.28299,497.196991}}} id=29\r
-SkOpAngle::afterPart {{{403.282013,497.197937}, {403.095864,497.198984}, {391.110992,495.555969}, {391.110992,495.555969}}} id=3\r
-SkOpSegment::sortAngles [3] tStart=1 [6]\r
-SkOpSegment::sortAngles [4] tStart=0 [7]\r
-SkOpSegment::sortAngles [8] tStart=1 [16]\r
-SkOpSegment::sortAngles [11] tStart=0 [21]\r
-SkOpSegment::sortAngles [11] tStart=0.902185418 [63]\r
-SkOpSegment::sortAngles [11] tStart=0.926637941 [65]\r
+{{{259.30487060546875, 561}, {242.7363128662109375, 561}, {232.1598052978515625, 547.56854248046875}, {235.681549072265625, 531}}},\r
+maxCurvature[0]=0.474343429 {{{267.8173432015576623, 584.3103847404762519}, {213.4569259608067568, 521.7544086132262464}}},\r
+seg=1 {{{286.695129f, 291}, {229.304855f, 561}}}\r
+seg=2 {{{229.304855f, 561}, {979.304871f, 561}}}\r
+seg=3 {{{979.304871f, 561}, {1036.69507f, 291}}}\r
+seg=4 {{{1036.69507f, 291}, {286.695129f, 291}}}\r
+op sect\r
+seg=5 {{{1006.69513f, 291}, {1023.26367f, 291}, {1033.84021f, 304.431458f}, {1030.31836f, 321}}}\r
+seg=6 {{{1030.31836f, 321}, {985.681519f, 531}}}\r
+seg=7 {{{985.681519f, 531}, {982.15979f, 547.568542f}, {965.873413f, 561}, {949.304871f, 561}}}\r
+seg=8 {{{949.304871f, 561}, {259.304871f, 561}}}\r
+seg=9 {{{259.304871f, 561}, {242.736313f, 561}, {232.159805f, 547.568542f}, {235.681549f, 531}}}\r
+seg=10 {{{235.681549f, 531}, {280.31842f, 321}}}\r
+seg=11 {{{280.31842f, 321}, {283.840179f, 304.431458f}, {300.126587f, 291}, {316.695129f, 291}}}\r
+seg=12 {{{316.695129f, 291}, {1006.69513f, 291}}}\r
+debugShowLineIntersection wtTs[0]=1 {{{286.695129,291}, {229.304855,561}}} {{229.304855,561}} wnTs[0]=0 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowLineIntersection wtTs[0]=0 {{{286.695129,291}, {229.304855,561}}} {{286.695129,291}} wnTs[0]=1 {{{1036.69507,291}, {286.695129,291}}}\r
+debugShowLineIntersection wtTs[0]=0 {{{979.304871,561}, {1036.69507,291}}} {{979.304871,561}} wnTs[0]=1 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowLineIntersection wtTs[0]=1 {{{979.304871,561}, {1036.69507,291}}} {{1036.69507,291}} wnTs[0]=0 {{{1036.69507,291}, {286.695129,291}}}\r
+debugShowLineIntersection no intersect {{{286.695129,291}, {229.304855,561}}} {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=0.999710227 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{235.678497,531.014404}} wtTs[1]=1 {{235.681549,531}} wnTs[0]=0.888942 {{{286.695129,291}, {229.304855,561}}} wnTs[1]=0.888888891\r
+SkOpSegment::addT insert t=0.888942232 segID=1 spanID=25\r
+SkOpSegment::addT insert t=0.999710227 segID=9 spanID=26\r
+SkOpSegment::addT insert t=0.888888891 segID=1 spanID=27\r
+debugShowLineIntersection wtTs[0]=0.11111112 {{{286.695129,291}, {229.304855,561}}} {{280.31842,321}} wtTs[1]=0.888888891 {{235.681549,531}} wnTs[0]=1 {{{235.681549,531}, {280.31842,321}}} wnTs[1]=0\r
+SkOpSegment::addT insert t=0.11111112 segID=1 spanID=28\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{280.31842,321}} wtTs[1]=0.000542504226 {{280.324158,320.973022}} wnTs[0]=0.111111 {{{286.695129,291}, {229.304855,561}}} wnTs[1]=0.111011249\r
+SkOpSegment::addT insert t=0.111011249 segID=1 spanID=29\r
+SkOpSegment::addT insert t=0.000542504226 segID=11 spanID=30\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{949.304871,561}} wnTs[0]=0.96 {{{229.304855,561}, {979.304871,561}}}\r
+SkOpSegment::addT insert t=0.960000001 segID=2 spanID=31\r
+debugShowLineIntersection wtTs[0]=0 {{{949.304871,561}, {259.304871,561}}} {{949.304871,561}} wtTs[1]=1 {{259.304871,561}} wnTs[0]=0.96 {{{229.304855,561}, {979.304871,561}}} wnTs[1]=0.0400000195\r
+SkOpSegment::addT insert t=0.0400000195 segID=2 spanID=32\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{259.304871,561}} wnTs[0]=0.04 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1030.31836,321}} wnTs[0]=0.888889 {{{979.304871,561}, {1036.69507,291}}}\r
+SkOpSegment::addT insert t=0.888888874 segID=3 spanID=33\r
+debugShowLineIntersection wtTs[0]=0.11111108 {{{979.304871,561}, {1036.69507,291}}} {{985.681519,531}} wtTs[1]=0.888888874 {{1030.31836,321}} wnTs[0]=1 {{{1030.31836,321}, {985.681519,531}}} wnTs[1]=0\r
+SkOpSegment::addT insert t=0.11111108 segID=3 spanID=34\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{985.681519,531}} wnTs[0]=0.111111 {{{979.304871,561}, {1036.69507,291}}}\r
+debugShowLineIntersection no intersect {{{979.304871,561}, {1036.69507,291}}} {{{316.695129,291}, {1006.69513,291}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1006.69513,291}} wnTs[0]=0.0399999 {{{1036.69507,291}, {286.695129,291}}}\r
+SkOpSegment::addT insert t=0.0399999219 segID=4 spanID=35\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{316.695129,291}} wnTs[0]=0.96 {{{1036.69507,291}, {286.695129,291}}}\r
+SkOpSegment::addT insert t=0.959999997 segID=4 spanID=36\r
+debugShowLineIntersection wtTs[0]=0 {{{316.695129,291}, {1006.69513,291}}} {{316.695129,291}} wtTs[1]=1 {{1006.69513,291}} wnTs[0]=0.96 {{{1036.69507,291}, {286.695129,291}}} wnTs[1]=0.0399999219\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1030.31836,321}} wnTs[0]=0 {{{1030.31836,321}, {985.681519,531}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1006.69513,291}} wnTs[0]=1 {{{316.695129,291}, {1006.69513,291}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{985.681519,531}} wnTs[0]=1 {{{1030.31836,321}, {985.681519,531}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{949.304871,561}} wnTs[0]=0 {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{259.304871,561}} wnTs[0]=1 {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{235.681549,531}} wnTs[0]=0 {{{235.681549,531}, {280.31842,321}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{280.31842,321}} wnTs[0]=1 {{{235.681549,531}, {280.31842,321}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{316.695129,291}} wnTs[0]=0 {{{316.695129,291}, {1006.69513,291}}}\r
+-----------------xx--x---------------- addExpanded\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- move_multiples\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- move_nearby\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- correctEnds\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- addEndMovedSpans\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- expand\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- addExpanded\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------xx--x---------------- mark\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+06:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+07:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+08:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+09:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+10:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+11:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+12:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+13:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+14:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+15:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+16:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+17:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------x-------------------- missing_coincidence\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------x-------------------- expand\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-----------------x-------------------- expand\r
+00:  coinSeg/Span/PtT=12/23/23 endSpan=24 Fail\r
+01:  coinSeg/Span/PtT=3/34/34 endSpan=33 Fail\r
+02:  coinSeg/Span/PtT=2/32/32 endSpan=31 Fail\r
+03:  coinSeg/Span/PtT=1/29/29 endSpan=28 Fail\r
+04:  coinSeg/Span/PtT=10/19/19 endSpan=20 Fail\r
+05:  coinSeg/Span/PtT=1/27/27 endSpan=25 Fail\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+-------------------------------------- apply\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0.0399999219 [35] (1006.69513,291) tEnd=0.959999997 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=6 (1030.31836,321 985.681519,531) t=0 [11] (1030.31836,321) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=8 (949.304871,561 259.304871,561) t=0 [15] (949.304871,561) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0 [21] (280.31842,321) tEnd=0.000542504226 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.11111112 [28] (280.31842,321) tEnd=0.888888891 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0.999710227 [26] (235.678497,531.014404) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+-------------------------------------- findOverlaps\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+-------------------------------------- calc_angles\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::sortAngles [1] tStart=0.111011249 [29]\r
+SkOpAngle::after [1/1] 5/5 tStart=0.111011249 tEnd=0 < [11/25] 5/1 tStart=0.000542504226 tEnd=1 < [1/2] 21/21 tStart=0.111011249 tEnd=0.11111112  F 12\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {286.695129,291}}} id=1\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {283.857845,304.416873}, {300.135575,291}, {316.695129,291}}} id=11\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {280.31842,321}}} id=1\r
+SkOpSegment::sortAngles [1] tStart=0.11111112 [28]\r
+SkOpSegment::sortAngles [1] tStart=0.888888891 [27]\r
+SkOpSegment::sortAngles [1] tStart=0.888942232 [25]\r
+SkOpAngle::after [1/5] 5/5 tStart=0.888942232 tEnd=0.888888891 < [9/22] 21/25 tStart=0.999710227 tEnd=0 < [1/6] 21/21 tStart=0.888942232 tEnd=1  F 11\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {235.681549,531}}} id=1\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {232.165942,547.576327}, {242.741114,561}, {259.304871,561}}} id=9\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {229.304855,561}}} id=1\r
+SkOpSegment::sortAngles [2] tStart=0.0400000195 [32]\r
+SkOpAngle::after [2/7] 15/15 tStart=0.0400000195 tEnd=0 < [9/21] 14/9 tStart=0 tEnd=0.999710227 < [2/8] 31/31 tStart=0.0400000195 tEnd=0.960000001  F 4\r
+SkOpAngle::afterPart {{{259.304871,561}, {229.304855,561}}} id=2\r
+SkOpAngle::afterPart {{{259.304871,561}, {242.741114,561}, {232.165942,547.576327}, {235.678497,531.014404}}} id=9\r
+SkOpAngle::afterPart {{{259.304871,561}, {949.304871,561}}} id=2\r
+SkOpSegment::sortAngles [2] tStart=0.960000001 [31]\r
+SkOpAngle::after [2/9] 15/15 tStart=0.960000001 tEnd=0.0400000195 < [7/20] 0/1 tStart=1 tEnd=0 < [2/10] 31/31 tStart=0.960000001 tEnd=1  F 4\r
+SkOpAngle::afterPart {{{949.304871,561}, {259.304871,561}}} id=2\r
+SkOpAngle::afterPart {{{949.304871,561}, {965.873413,561}, {982.15979,547.568542}, {985.681519,531}}} id=7\r
+SkOpAngle::afterPart {{{949.304871,561}, {979.304871,561}}} id=2\r
+SkOpSegment::sortAngles [3] tStart=0.11111108 [34]\r
+SkOpAngle::after [3/11] 21/21 tStart=0.11111108 tEnd=0 < [7/19] 21/17 tStart=0 tEnd=1 < [3/12] 5/5 tStart=0.11111108 tEnd=0.888888874  F 12\r
+SkOpAngle::afterPart {{{985.681519,531}, {979.30481,561}}} id=3\r
+SkOpAngle::afterPart {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} id=7\r
+SkOpAngle::afterPart {{{985.681519,531}, {1030.3183,321}}} id=3\r
+SkOpSegment::sortAngles [3] tStart=0.888888874 [33]\r
+SkOpAngle::after [3/13] 21/21 tStart=0.888888874 tEnd=0.11111108 < [5/18] 5/9 tStart=1 tEnd=0 < [3/14] 5/5 tStart=0.888888874 tEnd=1  F 11\r
+SkOpAngle::afterPart {{{1030.31836,321}, {985.68158,531}}} id=3\r
+SkOpAngle::afterPart {{{1030.31836,321}, {1033.84021,304.431458}, {1023.26367,291}, {1006.69513,291}}} id=5\r
+SkOpAngle::afterPart {{{1030.31836,321}, {1036.69507,291}}} id=3\r
+SkOpSegment::sortAngles [4] tStart=0.0399999219 [35]\r
+SkOpAngle::after [4/15] 31/31 tStart=0.0399999219 tEnd=0 < [5/17] 30/25 tStart=0 tEnd=1 < [12/28] 15/15 tStart=1 tEnd=0  F 4\r
+SkOpAngle::afterPart {{{1006.69513,291}, {1036.69507,291}}} id=4\r
+SkOpAngle::afterPart {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} id=5\r
+SkOpAngle::afterPart {{{1006.69513,291}, {316.695129,291}}} id=12\r
+SkOpSegment::sortAngles [4] tStart=0.959999997 [36]\r
+SkOpAngle::after [4/16] 15/15 tStart=0.959999997 tEnd=1 < [11/26] 16/17 tStart=1 tEnd=0.000542504226 < [12/27] 31/31 tStart=0 tEnd=1  T 4\r
+SkOpAngle::afterPart {{{316.695129,291}, {286.695129,291}}} id=4\r
+SkOpAngle::afterPart {{{316.695129,291}, {300.135575,291}, {283.857845,304.416873}, {280.324158,320.973022}}} id=11\r
+SkOpAngle::afterPart {{{316.695129,291}, {1006.69513,291}}} id=12\r
+SkOpSegment::sortAngles [5] tStart=0 [9]\r
+SkOpSegment::sortAngles [5] tStart=1 [10]\r
+SkOpSegment::sortAngles [7] tStart=0 [13]\r
+SkOpSegment::sortAngles [7] tStart=1 [14]\r
+SkOpSegment::sortAngles [9] tStart=0 [17]\r
+SkOpSegment::sortAngles [9] tStart=0.999710227 [26]\r
+SkOpSegment::sortAngles [10] tStart=0 [19]\r
+SkOpSegment::sortAngles [10] tStart=1 [20]\r
+SkOpSegment::sortAngles [11] tStart=0.000542504226 [30]\r
 SkOpSegment::sortAngles [11] tStart=1 [22]\r
 SkOpSegment::sortAngles [12] tStart=0 [23]\r
-SkOpSegment::sortAngles [25] tStart=0.987732177 [66]\r
-SkOpAngle::after [25/16] 13/13 tStart=0.987732177 tEnd=0 < [26/18] 29/29 tStart=0.00101329714 tEnd=0 < [25/17] 29/29 tStart=0.987732177 tEnd=1  T 11\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.088863,505.72854}, {378.040009,503.029999}, {378.040009,503.029999}}} id=25\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.398987,505.865997}}} id=26\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.39737,505.863873}, {391.399183,505.865138}, {391.398987,505.865997}}} id=25\r
-SkOpAngle::after [25/16] 13/13 tStart=0.987732177 tEnd=0 < [26/19] 13/13 tStart=0.00101329714 tEnd=1 < [26/18] 29/29 tStart=0.00101329714 tEnd=0  F 12\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.088863,505.72854}, {378.040009,503.029999}, {378.040009,503.029999}}} id=25\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {386.062988,502.131989}}} id=26\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.398987,505.865997}}} id=26\r
-SkOpAngle::after [26/18] 29/29 tStart=0.00101329714 tEnd=0 < [26/19] 13/13 tStart=0.00101329714 tEnd=1 < [25/17] 29/29 tStart=0.987732177 tEnd=1  F 5\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.398987,505.865997}}} id=26\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {386.062988,502.131989}}} id=26\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.39737,505.863873}, {391.399183,505.865138}, {391.398987,505.865997}}} id=25\r
-SkOpAngle::after [25/17] 29/29 tStart=0.987732177 tEnd=1 < [26/19] 13/13 tStart=0.00101329714 tEnd=1 < [25/16] 13/13 tStart=0.987732177 tEnd=0  T 11\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.39737,505.863873}, {391.399183,505.865138}, {391.398987,505.865997}}} id=25\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {386.062988,502.131989}}} id=26\r
-SkOpAngle::afterPart {{{391.393585,505.862213}, {391.088863,505.72854}, {378.040009,503.029999}, {378.040009,503.029999}}} id=25\r
-SkOpSegment::sortAngles [26] tStart=0.00101329714 [67]\r
-SkOpSegment::sortAngles [29] tStart=0.999799809 [61]\r
-SkOpSegment::sortAngles [29] tStart=1 [58]\r
-coinSpan - id=11 t=0.902185418 tEnd=1\r
-coinSpan + id=10 t=0 tEnd=1\r
-coinSpan - id=11 t=0 tEnd=0.902185418\r
-coinSpan + id=9 t=0 tEnd=1\r
-coinSpan - id=3 t=0.005859375 tEnd=1\r
-coinSpan + id=2 t=0 tEnd=1\r
-coinSpan - id=1 t=0 tEnd=1\r
-coinSpan + id=3 t=0 tEnd=0.005859375\r
-SkOpSegment::debugShowActiveSpans id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.28418,497.197632 403.28418,497.197834 403.283439,497.197968 403.282013,497.197968) t=0.005859375 tEnd=0.0134156992 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.393585,505.862213 386.062988,502.131989) t=0.00101329714 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=27 (386.062988,502.131989 387.546997,500.334991) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=28 (387.546997,500.334991 398.375,501.976013) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (398.375,501.976013 403.282013,497.197937) t=0 tEnd=0.999799809 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=29 (403.282013,497.197937 403.28299,497.196991) t=0.999799809 tEnd=1 windSum=? windValue=1\r
-SkOpSpan::sortableTop dir=kTop seg=1 t=0.5 pt=(403.283905,497.197357)\r
-SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{403.28299f, 497.196991f}, {403.284241f, 497.197388f}, {403.28418f, 497.197632f}}} t=0.5 pt=(403.283905,497.197357) slope=(0.000595092773,0.00032043457)\r
-SkOpSpan::sortableTop [1] valid=0 operand=0 span=59 ccw=0 seg=3 {{{403.28299f, 497.196991f}, {403.424011f, 497.243988f}, {391.110992f, 495.556f}, {391.110992f, 495.556f}}} t=0.00848215884 pt=(403.283905,497.197815) slope=(0,0)\r
-SkOpSpan::sortableTop dir=kTop seg=3 t=0.00963753708 pt=(403.28363,497.197876)\r
-SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{403.28299f, 497.196991f}, {403.284241f, 497.197388f}, {403.28418f, 497.197632f}}} t=0.304822061 pt=(403.28363,497.197205) slope=(0.000851216167,0.00035021636)\r
-SkOpSpan::sortableTop [1] valid=1 operand=0 span=59 ccw=0 seg=3 {{{403.28299f, 497.196991f}, {403.424011f, 497.243988f}, {391.110992f, 495.556f}, {391.110992f, 495.556f}}} t=0.00963753708 pt=(403.28363,497.197876) slope=(-0.290191228,0.0416190962)\r
-SkOpSegment::markWinding id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 [1] (403.28299,497.196991) tEnd=1 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=3 (403.28299,497.196991 403.424011,497.243988 391.110992,495.556 391.110992,495.556) t=0.005859375 [59] (403.28418,497.197632) tEnd=0.0134156992 newWindSum=-2 newOppSum=0 oppSum=? windSum=? windValue=2 oppValue=0\r
-SkOpSegment::markWinding id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 [1] (403.28299,497.196991) tEnd=1 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=3 (403.28299,497.196991 403.424011,497.243988 391.110992,495.556 391.110992,495.556) t=0.005859375 [59] (403.28418,497.197632) tEnd=0.0134156992 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=2 oppValue=0\r
-bridgeWinding current id=3 from=(403.282013,497.197968) to=(403.28418,497.197632)\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=29 (398.375,501.976013 403.28299,497.196991) t=0.999799809 [61] (403.282013,497.197937) tEnd=1 newWindSum=-1 windSum=? windValue=1\r
-SkOpSegment::markAngle last seg=29 span=61 windSum=-1\r
-SkOpSegment::findNextWinding\r
-SkOpAngle::dumpOne [1/1] next=29/22 sect=29/29  s=0 [1] e=1 [2] sgn=-1 windVal=2 windSum=-2 oppVal=0 oppSum=0\r
-SkOpAngle::dumpOne [29/22] next=1/1 sect=17/17  s=1 [58] e=0.999799809 [61] sgn=1 windVal=1 windSum=-1\r
-SkOpSegment::findNextWinding chase.append segment=29 span=61 windSum=-1\r
-SkOpSegment::markDone id=1 (403.28299,497.196991 403.284241,497.197388 403.28418,497.197632) t=0 [1] (403.28299,497.196991) tEnd=1 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=2 oppValue=0\r
-SkOpSegment::findNextWinding from:[1] to:[29] start=4226608 end=4227160\r
-bridgeWinding current id=1 from=(403.28418,497.197632) to=(403.28299,497.196991)\r
-path.moveTo(403.282013,497.197968);\r
-path.lineTo(403.28418,497.197632);\r
-SkOpSegment::markWinding id=3 (403.28299,497.196991 403.424011,497.243988 391.110992,495.556 391.110992,495.556) t=0.0134156992 [62] (403.282013,497.197968) tEnd=1 newWindSum=2 windSum=? windValue=2\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markAngle last seg=4 span=7 windSum=?\r
-SkOpSegment::markWinding id=29 (398.375,501.976013 403.28299,497.196991) t=0 [57] (398.375,501.976013) tEnd=0.999799809 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=28 (387.546997,500.334991 398.375,501.976013) t=0 [55] (387.546997,500.334991) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=27 (386.062988,502.131989 387.546997,500.334991) t=0 [53] (386.062988,502.131989) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=26 (391.398987,505.865997 386.062988,502.131989) t=0.00101329714 [67] (391.393585,505.862213) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markAngle last seg=26 span=67 windSum=2\r
-SkOpSegment::findNextWinding\r
-SkOpAngle::dumpOne [29/21] next=3/5 sect=1/1  s=0.999799809 [61] e=1 [58] sgn=-1 windVal=1 windSum=-1\r
-SkOpAngle::dumpOne [3/5] next=29/20 sect=17/13  s=0.0134156992 [62] e=1 [6] sgn=-1 windVal=2 windSum=2\r
-SkOpAngle::dumpOne [29/20] next=3/4 sect=17/17  s=0.999799809 [61] e=0 [57] sgn=1 windVal=1 windSum=2\r
-SkOpAngle::dumpOne [3/4] next=29/21 sect=31/31  s=0.0134156992 [62] e=0.005859375 [59] sgn=1 windVal=2 windSum=-2 oppVal=0 oppSum=0 done\r
-SkOpSegment::findNextWinding chase.append segment=4 span=7 windSum=-2147483647\r
-SkOpSegment::markDone id=29 (398.375,501.976013 403.28299,497.196991) t=0 [57] (398.375,501.976013) tEnd=0.999799809 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=28 (387.546997,500.334991 398.375,501.976013) t=0 [55] (387.546997,500.334991) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=27 (386.062988,502.131989 387.546997,500.334991) t=0 [53] (386.062988,502.131989) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=26 (391.398987,505.865997 386.062988,502.131989) t=0.00101329714 [67] (391.393585,505.862213) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::findNextWinding chase.append segment=26 span=67 windSum=2\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markDone id=29 (398.375,501.976013 403.28299,497.196991) t=0.999799809 [61] (403.282013,497.197937) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0\r
-SkOpSegment::findNextWinding from:[29] to:[3] start=4227304 end=4218168\r
-bridgeWinding current id=29 from=(403.28299,497.196991) to=(403.282013,497.197937)\r
-path.lineTo(403.28299,497.196991);\r
-path.lineTo(403.282013,497.197937);\r
-path.close();\r
-SkOpSegment::markWinding id=25 (378.040009,503.029999 378.040009,503.029999 391.415009,505.79599 391.398987,505.865997) t=0 [49] (378.040009,503.029999) tEnd=0.987732177 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=24 (378.345001,504.819 378.040009,503.029999) t=0 [47] (378.345001,504.819) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 [45] (388.884003,506.764008) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=22 (387.399994,508.108002 388.884003,506.764008) t=0 [43] (387.399994,508.108002) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 [41] (377.752014,507.514008) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 [39] (371.807007,506.022003) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=19 (370.915985,506.912994 371.807007,506.022003) t=0 [37] (370.915985,506.912994) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=18 (374.477997,509.006989 370.915985,506.912994) t=0 [35] (374.477997,509.006989) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=17 (373.884003,510.201996 374.477997,509.006989) t=0 [33] (373.884003,510.201996) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=16 (368.095001,510.498993 373.884003,510.201996) t=0 [31] (368.095001,510.498993) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=15 (356.220001,496.303986 368.095001,510.498993) t=0 [29] (356.220001,496.303986) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=14 (374.477997,480.312012 356.220001,496.303986) t=0 [27] (374.477997,480.312012) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 [25] (387.696991,484.351013) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::markWinding id=12 (384.877014,485.842987 387.696991,484.351013) t=0 [23] (384.877014,485.842987) tEnd=1 newWindSum=2 windSum=? windValue=1\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markAngle last seg=11 span=22\r
-SkOpSegment::markWinding id=26 (391.398987,505.865997 386.062988,502.131989) t=0 [51] (391.398987,505.865997) tEnd=0.00101329714 newWindSum=1 windSum=? windValue=1\r
-SkOpSegment::markWinding id=25 (378.040009,503.029999 378.040009,503.029999 391.415009,505.79599 391.398987,505.865997) t=0.987732177 [66] (391.393585,505.862213) tEnd=1 newWindSum=1 windSum=? windValue=1\r
-SkOpSegment::markAngle last seg=25 span=66 windSum=1\r
-SkOpSegment::markWinding id=25 (378.040009,503.029999 378.040009,503.029999 391.415009,505.79599 391.398987,505.865997) t=0.987732177 [66] (391.393585,505.862213) tEnd=1 newWindSum=1 windSum=1 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=2 windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=12 (384.877014,485.842987 387.696991,484.351013) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=14 (374.477997,480.312012 356.220001,496.303986) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=15 (356.220001,496.303986 368.095001,510.498993) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=16 (368.095001,510.498993 373.884003,510.201996) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=17 (373.884003,510.201996 374.477997,509.006989) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=18 (374.477997,509.006989 370.915985,506.912994) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=19 (370.915985,506.912994 371.807007,506.022003) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=22 (387.399994,508.108002 388.884003,506.764008) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=24 (378.345001,504.819 378.040009,503.029999) t=0 tEnd=1 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (378.040009,503.029999 378.040009,503.029999 391.088863,505.72854 391.393585,505.862213) t=0 tEnd=0.987732177 windSum=2 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=1 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=1 windValue=1\r
-SkOpSegment::markDone id=25 (378.040009,503.029999 378.040009,503.029999 391.415009,505.79599 391.398987,505.865997) t=0 [49] (378.040009,503.029999) tEnd=0.987732177 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=24 (378.345001,504.819 378.040009,503.029999) t=0 [47] (378.345001,504.819) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=23 (388.884003,506.764008 388.884003,506.764008 378.345001,504.997986 378.345001,504.819) t=0 [45] (388.884003,506.764008) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=22 (387.399994,508.108002 388.884003,506.764008) t=0 [43] (387.399994,508.108002) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=21 (377.752014,507.514008 380.752014,507.881012 387.399994,508.108002 387.399994,508.108002) t=0 [41] (377.752014,507.514008) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=20 (371.807007,506.022003 371.807007,506.022003 374.807007,507.279999 377.752014,507.514008) t=0 [39] (371.807007,506.022003) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=19 (370.915985,506.912994 371.807007,506.022003) t=0 [37] (370.915985,506.912994) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=18 (374.477997,509.006989 370.915985,506.912994) t=0 [35] (374.477997,509.006989) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=17 (373.884003,510.201996 374.477997,509.006989) t=0 [33] (373.884003,510.201996) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=16 (368.095001,510.498993 373.884003,510.201996) t=0 [31] (368.095001,510.498993) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=15 (356.220001,496.303986 368.095001,510.498993) t=0 [29] (356.220001,496.303986) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=14 (374.477997,480.312012 356.220001,496.303986) t=0 [27] (374.477997,480.312012) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=13 (387.696991,484.351013 382.752014,483.834991 376.595001,482.123993 374.477997,480.312012) t=0 [25] (387.696991,484.351013) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::markDone id=12 (384.877014,485.842987 387.696991,484.351013) t=0 [23] (384.877014,485.842987) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=1 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-bridgeWinding chase.append id=11\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=2 windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=25 (391.393585,505.862213 391.39737,505.863873 391.399183,505.865138 391.398987,505.865997) t=0.987732177 tEnd=1 windSum=1 windValue=1\r
-SkOpSegment::debugShowActiveSpans id=26 (391.398987,505.865997 391.393585,505.862213) t=0 tEnd=0.00101329714 windSum=1 windValue=1\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=25 (378.040009,503.029999 378.040009,503.029999 391.415009,505.79599 391.398987,505.865997) t=0.987732177 [66] (391.393585,505.862213) tEnd=1 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=1 oppValue=0\r
-bridgeWinding current id=25 from=(391.393585,505.862213) to=(391.398987,505.865997)\r
-path.moveTo(391.393585,505.862213);\r
-path.cubicTo(391.397369,505.863861, 391.39917,505.865143, 391.398987,505.865997);\r
-SkOpSegment::findNextWinding\r
-SkOpAngle::dumpOne [26/18] next=25/17 sect=29/29  s=0.00101329714 [67] e=0 [51] sgn=1 windVal=1 windSum=1\r
-SkOpAngle::dumpOne [25/17] next=26/19 sect=29/29  s=0.987732177 [66] e=1 [50] sgn=-1 windVal=1 windSum=1 done\r
-SkOpAngle::dumpOne [26/19] next=25/16 sect=13/13  s=0.00101329714 [67] e=1 [52] sgn=-1 windVal=1 windSum=2 done\r
-SkOpAngle::dumpOne [25/16] next=26/18 sect=13/13  s=0.987732177 [66] e=0 [49] sgn=1 windVal=1 windSum=2 done\r
-SkOpSegment::markDone id=26 (391.398987,505.865997 386.062988,502.131989) t=0 [51] (391.398987,505.865997) tEnd=0.00101329714 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=1 oppValue=0\r
-SkOpSegment::findNextWinding from:[26] to:[25] start=4228008 end=4225360\r
-bridgeWinding current id=26 from=(391.398987,505.865997) to=(391.393585,505.862213)\r
-path.lineTo(391.393585,505.862213);\r
+SkOpSegment::sortAngles [12] tStart=1 [24]\r
+coinSpan - id=12 t=0 tEnd=1\r
+coinSpan + id=4 t=0.959999997 tEnd=0.0399999219\r
+coinSpan - id=3 t=0.11111108 tEnd=0.888888874\r
+coinSpan + id=6 t=1 tEnd=0\r
+coinSpan - id=2 t=0.0400000195 tEnd=0.960000001\r
+coinSpan + id=8 t=1 tEnd=0\r
+coinSpan - id=1 t=0.111011249 tEnd=0.11111112\r
+coinSpan + id=11 t=0.000542504226 tEnd=0\r
+coinSpan - id=10 t=0 tEnd=1\r
+coinSpan + id=1 t=0.888888891 tEnd=0.11111112\r
+coinSpan - id=1 t=0.888888891 tEnd=0.888942232\r
+coinSpan + id=9 t=1 tEnd=0.999710227\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSpan::sortableTop dir=kLeft seg=1 t=0.0555056246 pt=(283.509644,305.986511)\r
+SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=0 seg=1 {{{286.695129f, 291}, {229.304855f, 561}}} t=0.0555056246 pt=(283.509644,305.986511) slope=(-57.390274,270)\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=4 (1036.69507,291 286.695129,291) t=0.959999997 [36] (316.695129,291) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0.959999997 [36] (316.695129,291) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+bridgeOp chase.append id=4 windSum=1\r
+SkOpSegment::markWinding id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0.000542504226 [30] (280.324158,320.973022) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=11 span=30 windSum=-1 \r
+SkOpSegment::markWinding id=12 (316.695129,291 1006.69513,291) t=0 [23] (316.695129,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 oppValue=1\r
+SkOpSegment::markAngle last segment=12 span=24 \r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=-1 oppSum=1 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=1\r
+SkOpSegment::activeOp id=11 t=1 tEnd=0.000542504226 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.111011249 [29] (280.324158,320.973022) tEnd=0.11111112 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=10 span=20 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [11/25] next=1/1 sect=5/1  s=0.000542504226 [30] e=1 [22] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [1/1] next=1/2 sect=5/5  s=0.111011249 [29] e=0 [1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [1/2] next=11/25 sect=21/21  s=0.111011249 [29] e=0.11111112 [28] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0.11111112 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=10 span=20\r
+SkOpSegment::markDone id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0.000542504226 [30] (280.324158,320.973022) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[11] to:[1] start=2783944 end=2783752\r
+bridgeOp current id=11 from=(316.695129,291) to=(280.324158,320.973022)\r
+path.moveTo(316.695129,291);\r
+path.cubicTo(300.13559,291, 283.857849,304.41687, 280.324158,320.973022);\r
+SkOpSegment::markWinding id=10 (235.681549,531 280.31842,321) t=0 [19] (235.681549,531) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1\r
+SkOpSegment::markAngle last segment=1 span=27 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [1/3] next=10/24 sect=5/5  s=0.11111112 [28] e=0.111011249 [29] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [10/24] next=1/3 sect=21/21  s=1 [20] e=0 [19] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 operand\r
+SkOpSegment::activeOp id=10 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=1 span=27 windSum=-2147483647\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.111011249 [29] (280.324158,320.973022) tEnd=0.11111112 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[1] to:[10] start=2782336 end=2782192\r
+bridgeOp current id=1 from=(280.324158,320.973022) to=(280.31842,321)\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.888888891 [27] (235.681549,531) tEnd=0.888942232 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=1 span=25 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [10/23] next=1/4 sect=5/5  s=0 [19] e=1 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 operand\r
+SkOpAngle::dumpOne [1/4] next=10/23 sect=21/21  s=0.888888891 [27] e=0.888942232 [25] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=1 t=0.888888891 tEnd=0.888942232 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=1 span=25 windSum=-2147483647\r
+SkOpSegment::markDone id=10 (235.681549,531 280.31842,321) t=0 [19] (235.681549,531) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1\r
+SkOpSegment::findNextOp from:[10] to:[1] start=2783416 end=2783128\r
+bridgeOp current id=10 from=(280.31842,321) to=(235.681549,531)\r
+path.lineTo(280.31842,321);\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.888942232 [25] (235.678497,531.014404) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0 [3] (229.304855,561) tEnd=0.0400000195 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=2 span=32 windSum=? \r
+SkOpSegment::markWinding id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0 [17] (259.304871,561) tEnd=0.999710227 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=9 span=17 windSum=-1 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [1/5] next=1/6 sect=5/5  s=0.888942232 [25] e=0.888888891 [27] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [1/6] next=9/22 sect=21/21  s=0.888942232 [25] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
+SkOpAngle::dumpOne [9/22] next=1/5 sect=21/25  s=0.999710227 [26] e=0 [17] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpSegment::activeOp id=1 t=0.888942232 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.888942232 [25] (235.678497,531.014404) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0 [3] (229.304855,561) tEnd=0.0400000195 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp chase.append segment=2 span=32 windSum=-2147483647\r
+SkOpSegment::activeOp id=9 t=0.999710227 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=9 span=17 windSum=-1\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.888888891 [27] (235.681549,531) tEnd=0.888942232 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[1] to:[9] start=2783272 end=2781880\r
+bridgeOp current id=1 from=(235.681549,531) to=(235.678497,531.014404)\r
+path.lineTo(235.681549,531);\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0.0400000195 [32] (259.304871,561) tEnd=0.960000001 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=2 span=31 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [9/21] next=2/7 sect=14/9  s=0 [17] e=0.999710227 [26] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [2/7] next=2/8 sect=15/15  s=0.0400000195 [32] e=0 [3] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [2/8] next=9/21 sect=31/31  s=0.0400000195 [32] e=0.960000001 [31] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=2 t=0.0400000195 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=2 t=0.0400000195 tEnd=0.960000001 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=2 span=31 windSum=-2147483647\r
+SkOpSegment::markDone id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0 [17] (259.304871,561) tEnd=0.999710227 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[9] to:[2] start=2784424 end=2784280\r
+bridgeOp current id=9 from=(235.678497,531.014404) to=(259.304871,561)\r
+path.lineTo(235.678497,531.014404);\r
+path.cubicTo(232.165939,547.576355, 242.741119,561, 259.304871,561);\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0.960000001 [31] (949.304871,561) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0 [5] (979.304871,561) tEnd=0.11111108 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=3 span=34 windSum=? \r
+SkOpSegment::markWinding id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 [13] (985.681519,531) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=7 span=13 windSum=-1 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [2/9] next=2/10 sect=15/15  s=0.960000001 [31] e=0.0400000195 [32] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [2/10] next=7/20 sect=31/31  s=0.960000001 [31] e=1 [4] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
+SkOpAngle::dumpOne [7/20] next=2/9 sect=0/1  s=1 [14] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpSegment::activeOp id=2 t=0.960000001 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0.960000001 [31] (949.304871,561) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0 [5] (979.304871,561) tEnd=0.11111108 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp chase.append segment=3 span=34 windSum=-2147483647\r
+SkOpSegment::activeOp id=7 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=7 span=13 windSum=-1\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0.0400000195 [32] (259.304871,561) tEnd=0.960000001 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[2] to:[7] start=2781400 end=2781256\r
+bridgeOp current id=2 from=(259.304871,561) to=(949.304871,561)\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0.11111108 [34] (985.68158,531) tEnd=0.888888874 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=3 span=33 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [7/19] next=3/11 sect=21/17  s=0 [13] e=1 [14] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [3/11] next=3/12 sect=21/21  s=0.11111108 [34] e=0 [5] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [3/12] next=7/19 sect=5/5  s=0.11111108 [34] e=0.888888874 [33] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=3 t=0.11111108 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=3 t=0.11111108 tEnd=0.888888874 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=3 span=33 windSum=-2147483647\r
+SkOpSegment::markDone id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 [13] (985.681519,531) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[7] to:[3] start=2784760 end=2784616\r
+bridgeOp current id=7 from=(949.304871,561) to=(985.681519,531)\r
+path.lineTo(949.304871,561);\r
+path.cubicTo(965.873413,561, 982.15979,547.568542, 985.681519,531);\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0.888888874 [33] (1030.31836,321) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=4 (1036.69507,291 286.695129,291) t=0 [7] (1036.69507,291) tEnd=0.0399999219 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=4 span=35 windSum=? \r
+SkOpSegment::markWinding id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 [9] (1006.69513,291) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=5 span=9 windSum=-1 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [3/13] next=3/14 sect=21/21  s=0.888888874 [33] e=0.11111108 [34] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [3/14] next=5/18 sect=5/5  s=0.888888874 [33] e=1 [6] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
+SkOpAngle::dumpOne [5/18] next=3/13 sect=5/9  s=1 [10] e=0 [9] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpSegment::activeOp id=3 t=0.888888874 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0.888888874 [33] (1030.31836,321) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0 [7] (1036.69507,291) tEnd=0.0399999219 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp chase.append segment=4 span=35 windSum=-2147483647\r
+SkOpSegment::activeOp id=5 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=5 span=9 windSum=-1\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0.11111108 [34] (985.68158,531) tEnd=0.888888874 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[3] to:[5] start=2780712 end=2780568\r
+bridgeOp current id=3 from=(985.68158,531) to=(1030.31836,321)\r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [5/17] next=4/15 sect=30/25  s=0 [9] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [4/15] next=12/28 sect=31/31  s=0.0399999219 [35] e=0 [7] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [12/28] next=5/17 sect=15/15  s=1 [24] e=0 [23] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=2 operand\r
+SkOpSegment::activeOp id=4 t=0.0399999219 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=12 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::markDone id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 [9] (1006.69513,291) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[5] to:[12] start=2782960 end=2782816\r
+bridgeOp current id=5 from=(1030.31836,321) to=(1006.69513,291)\r
+path.lineTo(1030.31836,321);\r
+path.cubicTo(1033.84021,304.431458, 1023.26367,291, 1006.69513,291);\r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [12/27] next=4/16 sect=31/31  s=0 [23] e=1 [24] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=2 operand\r
+SkOpAngle::dumpOne [4/16] next=11/26 sect=15/15  s=0.959999997 [36] e=1 [8] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [11/26] next=12/27 sect=16/17  s=1 [22] e=0.000542504226 [30] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 done operand\r
+SkOpSegment::activeOp id=4 t=0.959999997 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=11 t=1 tEnd=0.000542504226 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::markDone id=12 (316.695129,291 1006.69513,291) t=0 [23] (316.695129,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 oppValue=1\r
+SkOpSegment::findNextOp from:[12] to:[11] start=2782648 end=2784088\r
+bridgeOp current id=12 from=(1006.69513,291) to=(316.695129,291)\r
+path.lineTo(316.695129,291);\r
 path.close();\r
-SkOpSegment::debugShowActiveSpans id=3 (403.282013,497.197968 403.095864,497.199014 391.110992,495.556 391.110992,495.556) t=0.0134156992 tEnd=1 windSum=2 windValue=2\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::findNextWinding\r
-SkOpAngle::dumpOne [3/5] next=29/20 sect=17/13  s=0.0134156992 [62] e=1 [6] sgn=-1 windVal=2 windSum=2\r
-SkOpAngle::dumpOne [29/20] next=3/4 sect=17/17  s=0.999799809 [61] e=0 [57] sgn=1 windVal=1 windSum=2 done\r
-SkOpAngle::dumpOne [3/4] next=29/21 sect=31/31  s=0.0134156992 [62] e=0.005859375 [59] sgn=1 windVal=2 windSum=-2 oppVal=0 oppSum=0 done\r
-SkOpAngle::dumpOne [29/21] next=3/5 sect=1/1  s=0.999799809 [61] e=1 [58] sgn=-1 windVal=1 windSum=-1 done\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markDone id=3 (403.28299,497.196991 403.424011,497.243988 391.110992,495.556 391.110992,495.556) t=0.0134156992 [62] (403.282013,497.197968) tEnd=1 newWindSum=2 newOppSum=? oppSum=? windSum=2 windValue=2 oppValue=0\r
-SkOpSegment::findNextWinding from:[3] to:[29] start=4227160 end=4226608\r
-bridgeWinding current id=3 from=(391.110992,495.556) to=(403.282013,497.197968)\r
-path.moveTo(391.110992,495.556);\r
-path.cubicTo(391.110992,495.556, 403.095856,497.199005, 403.282013,497.197968);\r
-SkOpSegment::debugShowActiveSpans id=4 (391.110992,495.556 392.290985,493.165009) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=? windValue=1\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSpan::sortableTop dir=kLeft seg=4 t=0.5 pt=(391.700989,494.360504)\r
-SkOpSpan::sortableTop [0] valid=1 operand=0 span=27 ccw=0 seg=14 {{{374.477997f, 480.312012f}, {356.220001f, 496.303986f}}} t=0.878471447 pt=(358.438873,494.360504) slope=(-18.2579956,15.9919739)\r
-SkOpSpan::sortableTop [1] valid=1 operand=0 span=7 ccw=1 seg=4 {{{391.110992f, 495.556f}, {392.290985f, 493.165009f}}} t=0.5 pt=(391.700989,494.360504) slope=(1.17999268,-2.39099121)\r
-SkOpSegment::markWinding id=4 (391.110992,495.556 392.290985,493.165009) t=0 [7] (391.110992,495.556) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-SkOpSegment::markWinding id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 [9] (392.290985,493.165009) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
-SkOpSegment::markWinding id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 [11] (386.649994,491.821014) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
-SkOpSegment::markWinding id=7 (381.602997,490.773987 383.391998,488.382996) t=0 [13] (381.602997,490.773987) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
-SkOpSegment::markWinding id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 [15] (383.391998,488.382996) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=4 (391.110992,495.556 392.290985,493.165009) t=0 [7] (391.110992,495.556) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::findNextWinding\r
-SkOpAngle::dumpOne [4/7] next=3/6 sect=5/5  s=0 [7] e=1 [8] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
-SkOpAngle::dumpOne [3/6] next=4/7 sect=29/29  s=1 [6] e=0.0134156992 [62] sgn=1 windVal=2 windSum=2 done\r
-SkOpSegment::markDone id=4 (391.110992,495.556 392.290985,493.165009) t=0 [7] (391.110992,495.556) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=5 (392.290985,493.165009 392.290985,493.165009 388.993988,492.056 386.649994,491.821014) t=0 [9] (392.290985,493.165009) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-bridgeWinding current id=5 from=(386.649994,491.821014) to=(392.290985,493.165009)\r
-path.moveTo(386.649994,491.821014);\r
-path.cubicTo(388.993988,492.056, 392.290985,493.165009, 392.290985,493.165009);\r
-SkOpSegment::debugShowActiveSpans id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=6 (386.649994,491.821014 384.243988,491.45401 381.602997,490.773987 381.602997,490.773987) t=0 [11] (386.649994,491.821014) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-bridgeWinding current id=6 from=(381.602997,490.773987) to=(386.649994,491.821014)\r
-path.moveTo(381.602997,490.773987);\r
-path.cubicTo(381.602997,490.773987, 384.243988,491.45401, 386.649994,491.821014);\r
-SkOpSegment::debugShowActiveSpans id=7 (381.602997,490.773987 383.391998,488.382996) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=7 (381.602997,490.773987 383.391998,488.382996) t=0 [13] (381.602997,490.773987) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-bridgeWinding current id=7 from=(383.391998,488.382996) to=(381.602997,490.773987)\r
-path.moveTo(383.391998,488.382996);\r
-path.lineTo(381.602997,490.773987);\r
-SkOpSegment::debugShowActiveSpans id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSegment::findNextWinding simple\r
-SkOpSegment::markDone id=8 (383.391998,488.382996 383.391998,488.382996 379.118988,487.453003 378.938995,485.695007) t=0 [15] (383.391998,488.382996) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
-bridgeWinding current id=8 from=(378.938995,485.695007) to=(383.391998,488.382996)\r
-path.moveTo(378.938995,485.695007);\r
-path.cubicTo(379.118988,487.453003, 383.391998,488.382996, 383.391998,488.382996);\r
-SkOpSegment::debugShowActiveSpans id=11 (378.938995,485.695007 378.805463,483.777863 382.270366,484.957757 384.280823,485.642365) t=0 tEnd=0.902185418 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=? windValue=2\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=? windValue=2\r
-SkOpSpan::sortableTop dir=kTop seg=11 t=0.451092709 pt=(380.805908,484.693024)\r
-SkOpSpan::sortableTop [0] valid=1 operand=0 span=25 ccw=0 seg=13 {{{387.696991f, 484.351013f}, {382.752014f, 483.834991f}, {376.595001f, 482.123993f}, {374.477997f, 480.312012f}}} t=0.447162422 pt=(380.805908,483.039764) slope=(-14.9362868,-4.09791125)\r
-SkOpSpan::sortableTop [1] valid=1 operand=0 span=21 ccw=1 seg=11 {{{378.938995f, 485.695007f}, {378.790985f, 483.570007f}, {383.063995f, 485.25f}, {384.877014f, 485.842987f}}} t=0.451092709 pt=(380.805908,484.693024) slope=(7.32116938,0.937087304)\r
-SkOpSegment::markWinding id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0 [21] (378.938995,485.695007) tEnd=0.902185418 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0.902185418 [63] (384.280823,485.642365) tEnd=0.926637941 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0.926637941 [65] (384.440979,485.696869) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markWinding id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0 [21] (378.938995,485.695007) tEnd=0.902185418 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::markDone id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0 [21] (378.938995,485.695007) tEnd=0.902185418 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-bridgeWinding chase.append id=8\r
-SkOpSegment::debugShowActiveSpans id=11 (384.280823,485.642365 384.335313,485.66092 384.388726,485.679113 384.440979,485.696869) t=0.902185418 tEnd=0.926637941 windSum=1 oppSum=0 windValue=2 oppValue=0\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=1 oppSum=0 windValue=2 oppValue=0\r
-SkOpSegment::markDone id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0.902185418 [63] (384.280823,485.642365) tEnd=0.926637941 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::nextChase mismatched signs\r
-SkOpSegment::debugShowActiveSpans id=11 (384.440979,485.696869 384.597748,485.750141 384.744007,485.799484 384.877014,485.842987) t=0.926637941 tEnd=1 windSum=1 oppSum=0 windValue=2 oppValue=0\r
-SkOpSegment::markDone id=11 (378.938995,485.695007 378.790985,483.570007 383.063995,485.25 384.877014,485.842987) t=0.926637941 [65] (384.440979,485.696869) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=2 oppValue=0\r
-SkOpSegment::nextChase mismatched signs\r
+</div>\r
+
+Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ -v -V SK_DEBUG\r
+\r
+<div id="skpeldorado_com_ua1_broken">\r
+SkDCubic::ComplexBreak\r
+{{{1006.69512939453125, 291}, {1023.263671875, 291}, {1033.8402099609375, 304.43145751953125}, {1030.318359375, 321}}},\r
+maxCurvature[0]=0.474344964 {{{998.1828178832590766, 267.6895845341347808}, {1052.542975701327805, 330.2457181562319306}}},\r
+SkDCubic::ComplexBreak\r
+{{{259.30487060546875, 561}, {242.7363128662109375, 561}, {232.1598052978515625, 547.56854248046875}, {235.681549072265625, 531}}},\r
+maxCurvature[0]=0.474343429 {{{267.8173432015576623, 584.3103847404762519}, {213.4569259608067568, 521.7544086132262464}}},\r
+seg=1 {{{286.695129f, 291}, {229.304855f, 561}}}\r
+seg=2 {{{229.304855f, 561}, {979.304871f, 561}}}\r
+seg=3 {{{979.304871f, 561}, {1036.69507f, 291}}}\r
+seg=4 {{{1036.69507f, 291}, {286.695129f, 291}}}\r
+op sect\r
+seg=5 {{{1006.69513f, 291}, {1023.26367f, 291}, {1033.84021f, 304.431458f}, {1030.31836f, 321}}}\r
+seg=6 {{{1030.31836f, 321}, {985.681519f, 531}}}\r
+seg=7 {{{985.681519f, 531}, {982.15979f, 547.568542f}, {965.873413f, 561}, {949.304871f, 561}}}\r
+seg=8 {{{949.304871f, 561}, {259.304871f, 561}}}\r
+seg=9 {{{259.304871f, 561}, {242.736313f, 561}, {232.159805f, 547.568542f}, {235.681549f, 531}}}\r
+seg=10 {{{235.681549f, 531}, {280.31842f, 321}}}\r
+seg=11 {{{280.31842f, 321}, {283.840179f, 304.431458f}, {300.126587f, 291}, {316.695129f, 291}}}\r
+seg=12 {{{316.695129f, 291}, {1006.69513f, 291}}}\r
+debugShowLineIntersection wtTs[0]=1 {{{286.695129,291}, {229.304855,561}}} {{229.304855,561}} wnTs[0]=0 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowLineIntersection wtTs[0]=0 {{{286.695129,291}, {229.304855,561}}} {{286.695129,291}} wnTs[0]=1 {{{1036.69507,291}, {286.695129,291}}}\r
+debugShowLineIntersection wtTs[0]=0 {{{979.304871,561}, {1036.69507,291}}} {{979.304871,561}} wnTs[0]=1 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowLineIntersection wtTs[0]=1 {{{979.304871,561}, {1036.69507,291}}} {{1036.69507,291}} wnTs[0]=0 {{{1036.69507,291}, {286.695129,291}}}\r
+debugShowLineIntersection no intersect {{{286.695129,291}, {229.304855,561}}} {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=0.999710227 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{235.678497,531.014404}} wtTs[1]=1 {{235.681549,531}} wnTs[0]=0.888942 {{{286.695129,291}, {229.304855,561}}} wnTs[1]=0.888888891\r
+SkOpSegment::addT insert t=0.888942232 segID=1 spanID=25\r
+SkOpSegment::addT insert t=0.999710227 segID=9 spanID=26\r
+SkOpSegment::addT insert t=0.888888891 segID=1 spanID=27\r
+debugShowLineIntersection wtTs[0]=0.11111112 {{{286.695129,291}, {229.304855,561}}} {{280.31842,321}} wtTs[1]=0.888888891 {{235.681549,531}} wnTs[0]=1 {{{235.681549,531}, {280.31842,321}}} wnTs[1]=0\r
+SkOpSegment::addT insert t=0.11111112 segID=1 spanID=28\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{280.31842,321}} wtTs[1]=0.000542504226 {{280.324158,320.973022}} wnTs[0]=0.111111 {{{286.695129,291}, {229.304855,561}}} wnTs[1]=0.111011249\r
+SkOpSegment::addT insert t=0.111011249 segID=1 spanID=29\r
+SkOpSegment::addT insert t=0.000542504226 segID=11 spanID=30\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{949.304871,561}} wnTs[0]=0.96 {{{229.304855,561}, {979.304871,561}}}\r
+SkOpSegment::addT insert t=0.960000001 segID=2 spanID=31\r
+debugShowLineIntersection wtTs[0]=0 {{{949.304871,561}, {259.304871,561}}} {{949.304871,561}} wtTs[1]=1 {{259.304871,561}} wnTs[0]=0.96 {{{229.304855,561}, {979.304871,561}}} wnTs[1]=0.0400000195\r
+SkOpSegment::addT insert t=0.0400000195 segID=2 spanID=32\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{259.304871,561}} wnTs[0]=0.04 {{{229.304855,561}, {979.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1030.31836,321}} wnTs[0]=0.888889 {{{979.304871,561}, {1036.69507,291}}}\r
+SkOpSegment::addT insert t=0.888888874 segID=3 spanID=33\r
+debugShowLineIntersection wtTs[0]=0.11111108 {{{979.304871,561}, {1036.69507,291}}} {{985.681519,531}} wtTs[1]=0.888888874 {{1030.31836,321}} wnTs[0]=1 {{{1030.31836,321}, {985.681519,531}}} wnTs[1]=0\r
+SkOpSegment::addT insert t=0.11111108 segID=3 spanID=34\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{985.681519,531}} wnTs[0]=0.111111 {{{979.304871,561}, {1036.69507,291}}}\r
+debugShowLineIntersection no intersect {{{979.304871,561}, {1036.69507,291}}} {{{316.695129,291}, {1006.69513,291}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1006.69513,291}} wnTs[0]=0.0399999 {{{1036.69507,291}, {286.695129,291}}}\r
+SkOpSegment::addT insert t=0.0399999219 segID=4 spanID=35\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{316.695129,291}} wnTs[0]=0.96 {{{1036.69507,291}, {286.695129,291}}}\r
+SkOpSegment::addT insert t=0.959999997 segID=4 spanID=36\r
+debugShowLineIntersection wtTs[0]=0 {{{316.695129,291}, {1006.69513,291}}} {{316.695129,291}} wtTs[1]=1 {{1006.69513,291}} wnTs[0]=0.96 {{{1036.69507,291}, {286.695129,291}}} wnTs[1]=0.0399999219\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1030.31836,321}} wnTs[0]=0 {{{1030.31836,321}, {985.681519,531}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} {{1006.69513,291}} wnTs[0]=1 {{{316.695129,291}, {1006.69513,291}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{985.681519,531}} wnTs[0]=1 {{{1030.31836,321}, {985.681519,531}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} {{949.304871,561}} wnTs[0]=0 {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{259.304871,561}} wnTs[0]=1 {{{949.304871,561}, {259.304871,561}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{259.304871,561}, {242.736313,561}, {232.159805,547.568542}, {235.681549,531}}} {{235.681549,531}} wnTs[0]=0 {{{235.681549,531}, {280.31842,321}}}\r
+debugShowCubicLineIntersection wtTs[0]=0 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{280.31842,321}} wnTs[0]=1 {{{235.681549,531}, {280.31842,321}}}\r
+debugShowCubicLineIntersection wtTs[0]=1 {{{280.31842,321}, {283.840179,304.431458}, {300.126587,291}, {316.695129,291}}} {{316.695129,291}} wnTs[0]=0 {{{316.695129,291}, {1006.69513,291}}}\r
+------------------x--x---------------- addExpanded\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.31842,321 235.681549,531) t=0.11111112 tEnd=0.888888891 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1006.69513,291 316.695129,291) t=0.0399999219 tEnd=0.959999997 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=6 (1030.31836,321 985.681519,531) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=8 (949.304871,561 259.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (235.678497,531.014404 235.679515,531.009604 235.680529,531.004801 235.681549,531) t=0.999710227 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.31842,321 280.320331,320.991011 280.32224,320.982009 280.324158,320.973022) t=0 tEnd=0.000542504226 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? windValue=1\r
+------------------x--x---------------- move_multiples\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- move_nearby\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- correctEnds\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- addEndMovedSpans\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- expand\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- addExpanded\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+------------------x--x---------------- mark\r
+00:  seg/base=12/23 seg/base=4/35 MarkCoinStart\r
+01:  seg/base=12/24 seg/base=4/36 MarkCoinEnd\r
+02:  seg/base=3/34 seg/base=6/11 MarkCoinStart\r
+03:  seg/base=3/33 seg/base=6/12 MarkCoinEnd\r
+04:  seg/base=2/32 seg/base=8/15 MarkCoinStart\r
+05:  seg/base=2/31 seg/base=8/16 MarkCoinEnd\r
+06:  seg/base=1/29 seg/base=11/21 MarkCoinStart\r
+07:  seg/base=1/28 seg/base=11/30 MarkCoinEnd\r
+08:  seg/base=10/19 seg/base=1/28 MarkCoinStart\r
+09:  seg/base=10/20 seg/base=1/27 MarkCoinEnd\r
+10:  seg/base=1/27 seg/base=9/26 MarkCoinStart\r
+11:  seg/base=1/25 seg/base=9/18 MarkCoinEnd\r
+-------------------------------------- missing_coincidence\r
+-------------------------------------- expand\r
+-------------------------------------- expand\r
+-------------------------------------- apply\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0.0399999219 [35] (1006.69513,291) tEnd=0.959999997 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=6 (1030.31836,321 985.681519,531) t=0 [11] (1030.31836,321) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=8 (949.304871,561 259.304871,561) t=0 [15] (949.304871,561) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0 [21] (280.31842,321) tEnd=0.000542504226 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.11111112 [28] (280.31842,321) tEnd=0.888888891 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+SkOpSegment::markDone id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0.999710227 [26] (235.678497,531.014404) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0\r
+-------------------------------------- findOverlaps\r
+SkOpSegment::debugShowActiveSpans id=1 (286.695129,291 280.324158,320.973022) t=0 tEnd=0.111011249 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (316.695129,291 286.695129,291) t=0.959999997 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+-------------------------------------- calc_angles\r
+SkOpSegment::sortAngles [1] tStart=0.111011249 [29]\r
+SkOpAngle::after [1/1] 5/5 tStart=0.111011249 tEnd=0 < [11/25] 5/1 tStart=0.000542504226 tEnd=1 < [1/2] 21/21 tStart=0.111011249 tEnd=0.11111112  F 14\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {286.695129,291}}} id=1\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {283.857845,304.416873}, {300.135575,291}, {316.695129,291}}} id=11\r
+SkOpAngle::afterPart {{{280.324158,320.973022}, {280.31842,321}}} id=1\r
+SkOpSegment::sortAngles [1] tStart=0.11111112 [28]\r
+SkOpSegment::sortAngles [1] tStart=0.888888891 [27]\r
+SkOpSegment::sortAngles [1] tStart=0.888942232 [25]\r
+SkOpAngle::after [1/5] 5/5 tStart=0.888942232 tEnd=0.888888891 < [9/22] 21/25 tStart=0.999710227 tEnd=0 < [1/6] 21/21 tStart=0.888942232 tEnd=1  F 13\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {235.681549,531}}} id=1\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {232.165942,547.576327}, {242.741114,561}, {259.304871,561}}} id=9\r
+SkOpAngle::afterPart {{{235.678497,531.014404}, {229.304855,561}}} id=1\r
+SkOpSegment::sortAngles [2] tStart=0.0400000195 [32]\r
+SkOpAngle::after [2/7] 15/15 tStart=0.0400000195 tEnd=0 < [9/21] 14/9 tStart=0 tEnd=0.999710227 < [2/8] 31/31 tStart=0.0400000195 tEnd=0.960000001  F 4\r
+SkOpAngle::afterPart {{{259.304871,561}, {229.304855,561}}} id=2\r
+SkOpAngle::afterPart {{{259.304871,561}, {242.741114,561}, {232.165942,547.576327}, {235.678497,531.014404}}} id=9\r
+SkOpAngle::afterPart {{{259.304871,561}, {949.304871,561}}} id=2\r
+SkOpSegment::sortAngles [2] tStart=0.960000001 [31]\r
+SkOpAngle::after [2/9] 15/15 tStart=0.960000001 tEnd=0.0400000195 < [7/20] 0/1 tStart=1 tEnd=0 < [2/10] 31/31 tStart=0.960000001 tEnd=1  F 4\r
+SkOpAngle::afterPart {{{949.304871,561}, {259.304871,561}}} id=2\r
+SkOpAngle::afterPart {{{949.304871,561}, {965.873413,561}, {982.15979,547.568542}, {985.681519,531}}} id=7\r
+SkOpAngle::afterPart {{{949.304871,561}, {979.304871,561}}} id=2\r
+SkOpSegment::sortAngles [3] tStart=0.11111108 [34]\r
+SkOpAngle::after [3/11] 21/21 tStart=0.11111108 tEnd=0 < [7/19] 21/17 tStart=0 tEnd=1 < [3/12] 5/5 tStart=0.11111108 tEnd=0.888888874  T 14\r
+SkOpAngle::afterPart {{{985.681519,531}, {979.30481,561}}} id=3\r
+SkOpAngle::afterPart {{{985.681519,531}, {982.15979,547.568542}, {965.873413,561}, {949.304871,561}}} id=7\r
+SkOpAngle::afterPart {{{985.681519,531}, {1030.3183,321}}} id=3\r
+SkOpSegment::sortAngles [3] tStart=0.888888874 [33]\r
+SkOpAngle::after [3/13] 21/21 tStart=0.888888874 tEnd=0.11111108 < [5/18] 5/9 tStart=1 tEnd=0 < [3/14] 5/5 tStart=0.888888874 tEnd=1  F 13\r
+SkOpAngle::afterPart {{{1030.31836,321}, {985.68158,531}}} id=3\r
+SkOpAngle::afterPart {{{1030.31836,321}, {1033.84021,304.431458}, {1023.26367,291}, {1006.69513,291}}} id=5\r
+SkOpAngle::afterPart {{{1030.31836,321}, {1036.69507,291}}} id=3\r
+SkOpSegment::sortAngles [4] tStart=0.0399999219 [35]\r
+SkOpAngle::after [4/15] 31/31 tStart=0.0399999219 tEnd=0 < [5/17] 30/25 tStart=0 tEnd=1 < [12/28] 15/15 tStart=1 tEnd=0  F 4\r
+SkOpAngle::afterPart {{{1006.69513,291}, {1036.69507,291}}} id=4\r
+SkOpAngle::afterPart {{{1006.69513,291}, {1023.26367,291}, {1033.84021,304.431458}, {1030.31836,321}}} id=5\r
+SkOpAngle::afterPart {{{1006.69513,291}, {316.695129,291}}} id=12\r
+SkOpSegment::sortAngles [4] tStart=0.959999997 [36]\r
+SkOpAngle::after [4/16] 15/15 tStart=0.959999997 tEnd=1 < [11/26] 16/17 tStart=1 tEnd=0.000542504226 < [12/27] 31/31 tStart=0 tEnd=1  T 4\r
+SkOpAngle::afterPart {{{316.695129,291}, {286.695129,291}}} id=4\r
+SkOpAngle::afterPart {{{316.695129,291}, {300.135575,291}, {283.857845,304.416873}, {280.324158,320.973022}}} id=11\r
+SkOpAngle::afterPart {{{316.695129,291}, {1006.69513,291}}} id=12\r
+SkOpSegment::sortAngles [5] tStart=0 [9]\r
+SkOpSegment::sortAngles [5] tStart=1 [10]\r
+SkOpSegment::sortAngles [7] tStart=0 [13]\r
+SkOpSegment::sortAngles [7] tStart=1 [14]\r
+SkOpSegment::sortAngles [9] tStart=0 [17]\r
+SkOpSegment::sortAngles [9] tStart=0.999710227 [26]\r
+SkOpSegment::sortAngles [10] tStart=0 [19]\r
+SkOpSegment::sortAngles [10] tStart=1 [20]\r
+SkOpSegment::sortAngles [11] tStart=0.000542504226 [30]\r
+SkOpSegment::sortAngles [11] tStart=1 [22]\r
+SkOpSegment::sortAngles [12] tStart=0 [23]\r
+SkOpSegment::sortAngles [12] tStart=1 [24]\r
+coinSpan - id=12 t=0 tEnd=1\r
+coinSpan + id=4 t=0.959999997 tEnd=0.0399999219\r
+coinSpan - id=3 t=0.11111108 tEnd=0.888888874\r
+coinSpan + id=6 t=1 tEnd=0\r
+coinSpan - id=2 t=0.0400000195 tEnd=0.960000001\r
+coinSpan + id=8 t=1 tEnd=0\r
+coinSpan - id=1 t=0.111011249 tEnd=0.11111112\r
+coinSpan + id=11 t=0.000542504226 tEnd=0\r
+coinSpan - id=10 t=0 tEnd=1\r
+coinSpan + id=1 t=0.888888891 tEnd=0.11111112\r
+coinSpan - id=1 t=0.888888891 tEnd=0.888942232\r
+coinSpan + id=9 t=1 tEnd=0.999710227\r
+SkOpSpan::sortableTop dir=kLeft seg=1 t=0.0555056246 pt=(283.509644,305.986511)\r
+SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=0 seg=1 {{{286.695129f, 291}, {229.304855f, 561}}} t=0.0555056246 pt=(283.509644,305.986511) slope=(-57.390274,270)\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=4 (1036.69507,291 286.695129,291) t=0.959999997 [36] (316.695129,291) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0 [1] (286.695129,291) tEnd=0.111011249 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0.959999997 [36] (316.695129,291) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+bridgeOp chase.append id=4 windSum=1\r
+SkOpSegment::markWinding id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0.000542504226 [30] (280.324158,320.973022) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=11 span=30 windSum=-1 \r
+SkOpSegment::markWinding id=12 (316.695129,291 1006.69513,291) t=0 [23] (316.695129,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 oppValue=1\r
+SkOpSegment::markAngle last segment=12 span=24 \r
+SkOpSegment::debugShowActiveSpans id=1 (280.324158,320.973022 280.31842,321) t=0.111011249 tEnd=0.11111112 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.681549,531 235.678497,531.014404) t=0.888888891 tEnd=0.888942232 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=1 (235.678497,531.014404 229.304855,561) t=0.888942232 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (229.304855,561 259.304871,561) t=0 tEnd=0.0400000195 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=2 (259.304871,561 949.304871,561) t=0.0400000195 tEnd=0.960000001 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=2 (949.304871,561 979.304871,561) t=0.960000001 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (979.304871,561 985.68158,531) t=0 tEnd=0.11111108 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=3 (985.68158,531 1030.31836,321) t=0.11111108 tEnd=0.888888874 windSum=? oppSum=? windValue=1 oppValue=-1\r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 tEnd=1 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=9 (259.304871,561 242.741114,561 232.165942,547.576327 235.678497,531.014404) t=0 tEnd=0.999710227 windSum=? windValue=1\r
+SkOpSegment::debugShowActiveSpans id=10 (235.681549,531 280.31842,321) t=0 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1\r
+SkOpSegment::debugShowActiveSpans id=11 (280.324158,320.973022 283.857845,304.416873 300.135575,291 316.695129,291) t=0.000542504226 tEnd=1 windSum=-1 oppSum=1 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=1\r
+SkOpSegment::activeOp id=11 t=1 tEnd=0.000542504226 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.111011249 [29] (280.324158,320.973022) tEnd=0.11111112 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=10 span=20 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [11/25] next=1/1 sect=5/1  s=0.000542504226 [30] e=1 [22] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [1/1] next=1/2 sect=5/5  s=0.111011249 [29] e=0 [1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [1/2] next=11/25 sect=21/21  s=0.111011249 [29] e=0.11111112 [28] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=1 t=0.111011249 tEnd=0.11111112 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=10 span=20\r
+SkOpSegment::markDone id=11 (280.31842,321 283.840179,304.431458 300.126587,291 316.695129,291) t=0.000542504226 [30] (280.324158,320.973022) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[11] to:[1] start=5851048 end=5850856\r
+bridgeOp current id=11 from=(316.695129,291) to=(280.324158,320.973022)\r
+path.moveTo(316.695129,291);\r
+path.cubicTo(300.13559,291, 283.857849,304.41687, 280.324158,320.973022);\r
+SkOpSegment::markWinding id=10 (235.681549,531 280.31842,321) t=0 [19] (235.681549,531) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1\r
+SkOpSegment::markAngle last segment=1 span=27 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [1/3] next=10/24 sect=5/5  s=0.11111112 [28] e=0.111011249 [29] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [10/24] next=1/3 sect=21/21  s=1 [20] e=0 [19] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 operand\r
+SkOpSegment::activeOp id=10 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=1 span=27 windSum=-2147483647\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.111011249 [29] (280.324158,320.973022) tEnd=0.11111112 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[1] to:[10] start=5849408 end=5849264\r
+bridgeOp current id=1 from=(280.324158,320.973022) to=(280.31842,321)\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.888888891 [27] (235.681549,531) tEnd=0.888942232 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=1 span=25 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [10/23] next=1/4 sect=5/5  s=0 [19] e=1 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 operand\r
+SkOpAngle::dumpOne [1/4] next=10/23 sect=21/21  s=0.888888891 [27] e=0.888942232 [25] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=1 t=0.888888891 tEnd=0.888942232 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=1 span=25 windSum=-2147483647\r
+SkOpSegment::markDone id=10 (235.681549,531 280.31842,321) t=0 [19] (235.681549,531) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1\r
+SkOpSegment::findNextOp from:[10] to:[1] start=5850664 end=5850288\r
+bridgeOp current id=10 from=(280.31842,321) to=(235.681549,531)\r
+path.lineTo(280.31842,321);\r
+SkOpSegment::markWinding id=1 (286.695129,291 229.304855,561) t=0.888942232 [25] (235.678497,531.014404) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0 [3] (229.304855,561) tEnd=0.0400000195 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=2 span=32 windSum=? \r
+SkOpSegment::markWinding id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0 [17] (259.304871,561) tEnd=0.999710227 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=9 span=17 windSum=-1 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [1/5] next=1/6 sect=5/5  s=0.888942232 [25] e=0.888888891 [27] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [1/6] next=9/22 sect=21/21  s=0.888942232 [25] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
+SkOpAngle::dumpOne [9/22] next=1/5 sect=21/25  s=0.999710227 [26] e=0 [17] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpSegment::activeOp id=1 t=0.888942232 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.888942232 [25] (235.678497,531.014404) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0 [3] (229.304855,561) tEnd=0.0400000195 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp chase.append segment=2 span=32 windSum=-2147483647\r
+SkOpSegment::activeOp id=9 t=0.999710227 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=9 span=17 windSum=-1\r
+SkOpSegment::markDone id=1 (286.695129,291 229.304855,561) t=0.888888891 [27] (235.681549,531) tEnd=0.888942232 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[1] to:[9] start=5850520 end=5848912\r
+bridgeOp current id=1 from=(235.681549,531) to=(235.678497,531.014404)\r
+path.lineTo(235.681549,531);\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0.0400000195 [32] (259.304871,561) tEnd=0.960000001 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=2 span=31 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [9/21] next=2/7 sect=14/9  s=0 [17] e=0.999710227 [26] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [2/7] next=2/8 sect=15/15  s=0.0400000195 [32] e=0 [3] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [2/8] next=9/21 sect=31/31  s=0.0400000195 [32] e=0.960000001 [31] sgn=-1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpSegment::activeOp id=2 t=0.0400000195 tEnd=0 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=2 t=0.0400000195 tEnd=0.960000001 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=2 span=31 windSum=-2147483647\r
+SkOpSegment::markDone id=9 (259.304871,561 242.736313,561 232.159805,547.568542 235.681549,531) t=0 [17] (259.304871,561) tEnd=0.999710227 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[9] to:[2] start=5851528 end=5851384\r
+bridgeOp current id=9 from=(235.678497,531.014404) to=(259.304871,561)\r
+path.lineTo(235.678497,531.014404);\r
+path.cubicTo(232.165939,547.576355, 242.741119,561, 259.304871,561);\r
+SkOpSegment::markWinding id=2 (229.304855,561 979.304871,561) t=0.960000001 [31] (949.304871,561) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0 [5] (979.304871,561) tEnd=0.11111108 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=3 span=34 windSum=? \r
+SkOpSegment::markWinding id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 [13] (985.681519,531) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=7 span=13 windSum=-1 \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [2/9] next=2/10 sect=15/15  s=0.960000001 [31] e=0.0400000195 [32] sgn=1 windVal=1 windSum=1 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [2/10] next=7/20 sect=31/31  s=0.960000001 [31] e=1 [4] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0\r
+SkOpAngle::dumpOne [7/20] next=2/9 sect=0/1  s=1 [14] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpSegment::activeOp id=2 t=0.960000001 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0.960000001 [31] (949.304871,561) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0 [5] (979.304871,561) tEnd=0.11111108 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp chase.append segment=3 span=34 windSum=-2147483647\r
+SkOpSegment::activeOp id=7 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp chase.append segment=7 span=13 windSum=-1\r
+SkOpSegment::markDone id=2 (229.304855,561 979.304871,561) t=0.0400000195 [32] (259.304871,561) tEnd=0.960000001 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp from:[2] to:[7] start=5848368 end=5848224\r
+bridgeOp current id=2 from=(259.304871,561) to=(949.304871,561)\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0.11111108 [34] (985.68158,531) tEnd=0.888888874 newWindSum=2 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=-1\r
+SkOpSegment::markAngle last segment=3 span=33 windSum=? \r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [7/19] next=3/12 sect=21/17  s=0 [13] e=1 [14] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand\r
+SkOpAngle::dumpOne [3/12] next=3/11 sect=5/5  s=0.11111108 [34] e=0.888888874 [33] sgn=-1 windVal=1 windSum=2 oppVal=-1 oppSum=-1\r
+SkOpAngle::dumpOne [3/11] next=7/19 sect=21/21  s=0.11111108 [34] e=0 [5] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpSegment::activeOp id=3 t=0.11111108 tEnd=0.888888874 op=sect miFrom=1 miTo=0 suFrom=0 suTo=1 result=0\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0.11111108 [34] (985.68158,531) tEnd=0.888888874 newWindSum=2 newOppSum=-1 oppSum=-1 windSum=2 windValue=1 oppValue=-1\r
+SkOpSegment::findNextOp chase.append segment=3 span=33 windSum=-2147483647\r
+SkOpSegment::activeOp id=3 t=0.11111108 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1\r
+SkOpSegment::markDone id=7 (985.681519,531 982.15979,547.568542 965.873413,561 949.304871,561) t=0 [13] (985.681519,531) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0\r
+SkOpSegment::findNextOp from:[7] to:[3] start=5851864 end=5846776\r
+bridgeOp current id=7 from=(949.304871,561) to=(985.681519,531)\r
+path.lineTo(949.304871,561);\r
+path.cubicTo(965.873413,561, 982.15979,547.568542, 985.681519,531);\r
+SkOpSegment::findNextOp simple\r
+SkOpSegment::markWinding id=3 (979.304871,561 1036.69507,291) t=0.888888874 [33] (1030.31836,321) tEnd=1 newWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markWinding id=4 (1036.69507,291 286.695129,291) t=0 [7] (1036.69507,291) tEnd=0.0399999219 newWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=4 span=35 windSum=? \r
+SkOpSegment::markWinding id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 [9] (1006.69513,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 oppValue=0\r
+SkOpSegment::markAngle last segment=5 span=9 windSum=-1 \r
+SkOpSegment::debugShowActiveSpans id=3 (1030.31836,321 1036.69507,291) t=0.888888874 tEnd=1 windSum=2 oppSum=0 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=4 (1036.69507,291 1006.69513,291) t=0 tEnd=0.0399999219 windSum=2 oppSum=0 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=1\r
+SkOpSegment::activeOp id=3 t=0.888888874 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0\r
+SkOpSegment::markDone id=3 (979.304871,561 1036.69507,291) t=0.888888874 [33] (1030.31836,321) tEnd=1 newWindSum=2 newOppSum=0 oppSum=0 windSum=2 windValue=1 oppValue=0\r
+SkOpSegment::markDone id=4 (1036.69507,291 286.695129,291) t=0 [7] (1036.69507,291) tEnd=0.0399999219 newWindSum=2 newOppSum=0 oppSum=0 windSum=2 windValue=1 oppValue=0\r
+bridgeOp chase.append id=4 windSum=-2147483647\r
+SkOpSegment::debugShowActiveSpans id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=0\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=1\r
+SkOpSegment::activeOp id=5 t=0 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0\r
+SkOpSegment::markDone id=5 (1006.69513,291 1023.26367,291 1033.84021,304.431458 1030.31836,321) t=0 [9] (1006.69513,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 oppValue=0\r
+bridgeOp chase.append id=5\r
+SkOpSegment::debugShowActiveSpans id=12 (316.695129,291 1006.69513,291) t=0 tEnd=1 windSum=-1 oppSum=2 windValue=1 oppValue=1\r
+SkOpSegment::activeOp id=12 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::findNextOp\r
+SkOpAngle::dumpOne [12/27] next=4/16 sect=31/31  s=0 [23] e=1 [24] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=2 operand\r
+SkOpAngle::dumpOne [4/16] next=11/26 sect=15/15  s=0.959999997 [36] e=1 [8] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 done\r
+SkOpAngle::dumpOne [11/26] next=12/27 sect=16/17  s=1 [22] e=0.000542504226 [30] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 done operand\r
+SkOpSegment::activeOp id=4 t=0.959999997 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0\r
+SkOpSegment::activeOp id=11 t=1 tEnd=0.000542504226 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1\r
+SkOpSegment::markDone id=12 (316.695129,291 1006.69513,291) t=0 [23] (316.695129,291) tEnd=1 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 oppValue=1\r
+SkOpSegment::findNextOp from:[12] to:[11] start=5849744 end=5851192\r
+bridgeOp current id=12 from=(1006.69513,291) to=(316.695129,291)\r
+path.moveTo(1006.69513,291);\r
+path.lineTo(316.695129,291);\r
 </div>\r
 
 </div>
@@ -1292,7 +1278,8 @@ SkOpSegment::nextChase mismatched signs
 <script type="text/javascript">
 
     var testDivs = [
-        joel_2,
+        skpeldorado_com_ua1_working,
+        skpeldorado_com_ua1_broken,
     ];
 
 var decimal_places = 3; // make this 3 to show more precision
@@ -1325,6 +1312,7 @@ var draw_add = false;
 var draw_angle = 0;
 var draw_coincidence = false;
 var draw_deriviatives = 0;
+var draw_direction = false;
 var draw_hints = false;
 var draw_id = false;
 var draw_intersection = 0;
@@ -1741,10 +1729,10 @@ function parse_all(test) {
                 }
                 break;
             case REC_TYPE_AFTERPART:
-                found = match_regexp(line, lineNo, record, PATH_LINE, "afterPart LINE_VAL")
-                    || match_regexp(line, lineNo, record, PATH_QUAD, "afterPart QUAD_VAL")
-                    || match_regexp(line, lineNo, record, PATH_CONIC, "afterPart CONIC_VAL")
-                    || match_regexp(line, lineNo, record, PATH_CUBIC, "afterPart CUBIC_VAL")
+                found = match_regexp(line, lineNo, record, PATH_LINE, "afterPart LINE_VAL id=IDX")
+                    || match_regexp(line, lineNo, record, PATH_QUAD, "afterPart QUAD_VAL id=IDX")
+                    || match_regexp(line, lineNo, record, PATH_CONIC, "afterPart CONIC_VAL id=IDX")
+                    || match_regexp(line, lineNo, record, PATH_CUBIC, "afterPart CUBIC_VAL id=IDX")
                 break;
             case REC_TYPE_ALIGNED:
                 found = match_regexp(line, lineNo, record, PATH_LINE, "aligned=IDX LINE_VAL"
@@ -3264,7 +3252,10 @@ function find_cubic_inflections(cubic, tValues) {
 
 function dxy_at_t(curve, type, t) {
     var dxy = {};
-    if (type == PATH_QUAD) {
+    if (type == PATH_LINE) {
+        dxy.x = curve[2] - curve[0];
+        dxy.y = curve[3] - curve[1];
+    } else if (type == PATH_QUAD) {
         var a = t - 1;
         var b = 1 - 2 * t;
         var c = t;
@@ -3297,6 +3288,11 @@ function dxy_at_t(curve, type, t) {
     return dxy;
 }
 
+function dpt_at_t(curve, t) {\r
+    var type = PATH_LINE + (curve.length / 2 - 2);
+    return dxy_at_t(curve, type, t);\r
+}
+
 function drawLabel(num, px, py) {
     ctx.beginPath();
     ctx.arc(px, py, 8, 0, Math.PI*2, true);
@@ -3412,9 +3408,16 @@ function y_at_t(curve, t) {
     return a * curve[1] + b * curve[3] + c * curve[5] + d * curve[7];
 }
 
-function drawOrder(curve, label) {
-    var px = x_at_t(curve, 0.75);
-    var py = y_at_t(curve, 0.75);
+function pt_at_t(curve, t) {\r
+    var pt = {};\r
+    pt.x = x_at_t(curve, t);\r
+    pt.y = y_at_t(curve, t);\r
+    return pt;\r
+}
+
+function drawOrder(curve, t, label) {
+    var px = x_at_t(curve, t);
+    var py = y_at_t(curve, t);
     var _px = (px - srcLeft) * scale;
     var _py = (py - srcTop) * scale;
     ctx.beginPath();
@@ -3436,14 +3439,167 @@ function drawOrder(curve, label) {
     ctx.font = "normal 10px Arial";
 }
 
-function drawID(curve, id) {
-    var px = x_at_t(curve, 0.5);
-    var py = y_at_t(curve, 0.5);
+function drawVisibleOrder(curve, label) {\r
+    var s = pt_at_t(curve, 0);\r
+    var e = pt_at_t(curve, 1);\r
+    var sOn = ptOnScreen(s);\r
+    var eOn = ptOnScreen(e);\r
+    var defaultT = 0.85;\r
+    if (sOn && eOn)\r
+        return drawOrder(curve, defaultT, label);\r
+    if (sOn || eOn) {\r
+        if (eOn) {\r
+            defaultT = 1 - defaultT;\r
+        }\r
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;\r
+        var t = defaultT;\r
+        var tries = 16;\r
+        do {\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawOrder(curve, t, label);\r
+            t += step;\r
+            step /= 2;\r
+        } while (--tries > 0);\r
+        drawOrder(curve, defaultT, label);\r
+    }\r
+    // scattershot until we find a visible point\r
+    var denom = 2;  // visit odd number num / denom to hit unique pts\r
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...\r
+    do {\r
+        for (var numer = 1; numer < denom; numer += 2) {\r
+            var t = numer / denom + 0.1;\r
+            if (t >= 1) {\r
+                break;\r
+            }\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawOrder(curve, t, label);\r
+        }\r
+        denom *= 2;\r
+    } while (--tries > 0);\r
+    drawOrder(curve, defaultT, label);\r
+}
+
+function set_length(pt, newLen) {\r
+    var len = Math.sqrt(pt.x * pt.x + pt.y * pt.y);\r
+    var scale = newLen / len;\r
+    var newPt = { x: pt.x * scale, y: pt.y * scale };\r
+    return newPt;\r
+}
+
+function drawDirection(curve, t) {\r
+    var d = dpt_at_t(curve, t);
+    d = set_length(d, 16);
+    var pt = localToGlobal(pt_at_t(curve, t));\r
+    ctx.beginPath();
+    ctx.moveTo(pt.x - d.y, pt.y + d.x);
+    ctx.lineTo(pt.x + d.x, pt.y + d.y);
+    ctx.lineTo(pt.x + d.y, pt.y - d.x);
+    ctx.strokeStyle = "rgba(0,75,0, 0.4)";
+    ctx.stroke();
+}
+
+function drawVisibleDirection(curve) {\r
+    var s = pt_at_t(curve, 0);\r
+    var e = pt_at_t(curve, 1);\r
+    var sOn = ptOnScreen(s);\r
+    var eOn = ptOnScreen(e);\r
+    var defaultT = 0.65;\r
+    if (sOn && eOn) {\r
+        return drawDirection(curve, defaultT);\r
+    }\r
+    if (sOn || eOn) {\r
+        if (eOn) {\r
+            defaultT = 1 - defaultT;\r
+        }\r
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;\r
+        var t = defaultT;\r
+        var tries = 16;\r
+        do {\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawDirection(curve, t);\r
+            t += step;\r
+            step /= 2;\r
+        } while (--tries > 0);\r
+        drawDirection(curve, defaultT);\r
+    }\r
+    // scattershot until we find a visible point\r
+    var denom = 2;  // visit odd number num / denom to hit unique pts\r
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...\r
+    do {\r
+        for (var numer = 1; numer < denom; numer += 2) {\r
+            var t = numer / denom + 0.1;\r
+            if (t >= 1) {\r
+                break;\r
+            }\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawDirection(curve, t);\r
+        }\r
+        denom *= 2;\r
+    } while (--tries > 0);\r
+    drawDirection(curve, defaultT);\r
+}
+
+function drawID(curve, t, id) {
+    var px = x_at_t(curve, t);
+    var py = y_at_t(curve, t);
     var _px = (px - srcLeft) * scale;
     var _py = (py - srcTop) * scale;
     draw_id_at(id, _px, _py);
 }
 
+function localToGlobal(local) {\r
+    var global = {};\r
+    global.x = (local.x - srcLeft) * scale;\r
+    global.y = (local.y - srcTop) * scale;\r
+    return global;\r
+}
+
+function ptOnScreen(local) {\r
+    var pt = localToGlobal(local);\r
+    return 10 <= pt.x && pt.x <= screenWidth - 10\r
+        && 10 <= pt.y && pt.y <= screenHeight - 10;\r
+}
+
+function drawVisibleID(curve, defaultT, id) {\r
+    // determine if either or both ends are visible\r
+    var s = pt_at_t(curve, 0);\r
+    var e = pt_at_t(curve, 1);\r
+    var sOn = ptOnScreen(s);\r
+    var eOn = ptOnScreen(e);\r
+    if (sOn && eOn)\r
+        return drawID(curve, defaultT, id);\r
+    if (sOn || eOn) {\r
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;\r
+        var t = defaultT;\r
+        var tries = 16;\r
+        do {\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawID(curve, t, id);\r
+            t += step;\r
+            step /= 2;\r
+        } while (--tries > 0);\r
+        drawID(curve, defaultT, id);\r
+    }\r
+    // scattershot until we find a visible point\r
+    var denom = 2;  // visit odd number num / denom to hit unique pts\r
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...\r
+    do {\r
+        for (var numer = 1; numer < denom; numer += 2) {\r
+            var t = numer / denom;\r
+            var mid = pt_at_t(curve, t);\r
+            if (ptOnScreen(mid))\r
+                return drawID(curve, t, id);\r
+        }\r
+        denom *= 2;\r
+    } while (--tries > 0);\r
+    drawID(curve, defaultT, id);\r
+}
+
 function draw_id_at(id, _px, _py) {
     ctx.beginPath();
     ctx.arc(_px, _py, 15, 0, Math.PI * 2, true);
@@ -3496,11 +3652,7 @@ function drawCubicID(id, x1, y1, x2, y2, x3, y3, x4, y4) {
 }
 
 function  drawCurvePartialID(id, curve, t1, t2) {
-    var px = x_at_t(curve, (t1 + t2) / 2);
-    var py = y_at_t(curve, (t1 + t2) / 2);
-    var _px = (px - srcLeft) * scale;
-    var _py = (py - srcTop) * scale;
-    draw_id_at(id, _px, _py);
+    drawVisibleID(curve, (t1 + t2) / 2, id);
 }
 
 function drawCurveSpecials(test, curve, type) {
@@ -3520,9 +3672,12 @@ function drawCurveSpecials(test, curve, type) {
     if (draw_id) {
         var id = idByCurve(test, curve, type);
         if (id >= 0) {
-            drawID(curve, id);
+            drawVisibleID(curve, 0.5, id);
         }
     }
+    if (draw_direction) {\r
+        drawVisibleDirection(curve);\r
+    }
     if (type == PATH_LINE) {
         return;
     }
@@ -4109,8 +4264,13 @@ function draw(test, lines, title) {
                     ctx.strokeStyle = angleBetween ? "rgba(0,160,45, 0.3)" : "rgba(255,0,45, 0.5)";
                     drawCurve(midCurve);
                     if (draw_angle > 1) {
-                        drawOrder(leftCurve, 'L');
-                        drawOrder(rightCurve, 'R');
+                        drawVisibleOrder(leftCurve, 'L');
+                        drawVisibleOrder(rightCurve, 'R');
+                    }
+                    if (draw_id) {\r
+                        drawVisibleID(leftCurve, 0.5, frags[0]);\r
+                        drawVisibleID(midCurve, 0.5, frags[6]);\r
+                        drawVisibleID(rightCurve, 0.5, frags[12]);\r
                     }
                     break;
                 case REC_TYPE_AFTERPART:
@@ -4119,27 +4279,37 @@ function draw(test, lines, title) {
                     }
                     ctx.strokeStyle = afterIndex == 0 ? "rgba(255,0,0, 1.0)"
                             : (afterIndex == 1) == angleBetween ? "rgba(0,128,0, 1.0)"
-                            :  "rgba(0,0,255, 1.0)";
+                            : "rgba(0,0,255, 1.0)";
+                    var curve;
+                    var id;
                     switch (fragType) {
                         case PATH_LINE:
-                            drawLine(frags[0], frags[1], frags[2], frags[3]);
+                            curve = [ frags[0], frags[1], frags[2], frags[3] ];
+                            id = frags[4];
                             break;
                         case PATH_QUAD:
-                            drawQuad(frags[0], frags[1], frags[2], frags[3],
-                                     frags[4], frags[5]);
+                            curve = [ frags[0], frags[1], frags[2], frags[3],
+                                     frags[4], frags[5] ];
+                            id = frags[6];
                             break;
                         case PATH_CONIC:
-                            drawConicWithQuads(frags[0], frags[1], frags[2], frags[3],
-                                     frags[4], frags[5], frags[6]);
+                            curve = [ frags[0], frags[1], frags[2], frags[3],
+                                     frags[4], frags[5], frags[6] ];
+                            id = frags[7];
                             break;
                         case PATH_CUBIC:
-                            drawCubic(frags[0], frags[1], frags[2], frags[3],
-                                     frags[4], frags[5], frags[6], frags[7]);
+                            curve = [ frags[0], frags[1], frags[2], frags[3],
+                                     frags[4], frags[5], frags[6], frags[7] ];
+                            id = frags[8];
                             break;
                         default:
                             console.log("unknown REC_TYPE_AFTERPART frag type: " + fragType);
                             throw "stop execution";
                     }
+                    drawCurve(curve);
+                    if (draw_id) {\r
+                        drawVisibleID(curve, 0.5, id);\r
+                    }
                     ++afterIndex;
                     break;
                 case REC_TYPE_COINCIDENCE:
@@ -4376,7 +4546,7 @@ function draw(test, lines, title) {
                                 break;
                         }
                         if (id >= 0) {
-                            drawID(curve, id);
+                            drawVisibleID(curve, 0.5, id);
                         }
                         id = -1;
                         switch (c2l) {
@@ -4418,7 +4588,7 @@ function draw(test, lines, title) {
                                 break;
                         }
                         if (id >= 0) {
-                            drawID(curve, id);
+                            drawVisibleID(curve, 0.5, id);
                         }
                     }
                     if (collect_bounds) {
@@ -4581,9 +4751,9 @@ function draw(test, lines, title) {
                     windTo.push(to + (unsortable ? "!" : ""));
                     opp.push(fragType == SORT_BINARY);
                     if (draw_sort == 1) {
-                        drawOrder(partial, frags[12]);
+                        drawVisibleOrder(partial, frags[12]);
                     } else {
-                        drawOrder(partial, (recordIndex / 2) + 1);
+                        drawVisibleOrder(partial, (recordIndex / 2) + 1);
                     }
                 }
                 var radius = Math.sqrt(minXY) / 2 * scale;
@@ -4838,6 +5008,7 @@ var opKey = 'p';
 var opBackKey = 'P';
 var computedKey = 'q';
 var computedBackKey = 'Q';
+var directionKey = 'r';
 var stepKey = 's';
 var stepBackKey = 'S';
 var intersectTKey = 't';
@@ -4920,6 +5091,10 @@ function doKeyPress(evt) {
         draw_deriviatives = (draw_deriviatives + 1) % 3;
         redraw();
         break;
+    case directionKey:
+        draw_direction ^= true;
+        redraw();
+        break;
     case focusKey:
         focus_on_selection ^= true;
         setScale(xmin, xmax, ymin, ymax);