{
  "assets": [],
  "ddd": 0,
  "fr": 25,
  "h": 512,
  "ip": 0,
  "layers": [
    {
      "ddd": 0,
      "ind": 1,
      "ty": 3,
      "nm": "Null 1",
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 0, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [256, 256, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [50, 50, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 2,
      "ty": 4,
      "nm": "Layer 22",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [161.372, 35.102, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [111.372, -14.898, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 105,
              "s": [0, 0, 100]
            },
            { "t": 112, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [117.283, -14.897],
                        [111.372, -8.984],
                        [105.461, -14.897],
                        [111.372, -20.808]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [114.455, -16.852],
                        [108.546, -10.936],
                        [106.753, -11.219],
                        [105.46, -14.896],
                        [111.375, -20.811],
                        [113.161, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [117.284, -14.896],
                        [111.375, -8.987],
                        [106.753, -11.219],
                        [105.46, -14.896],
                        [111.375, -20.811],
                        [113.161, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 105,
      "op": 330,
      "st": 105,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 3,
      "ty": 4,
      "nm": "Layer 21",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [141.656, 35.102, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [91.656, -14.898, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 102,
              "s": [0, 0, 100]
            },
            { "t": 109, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [97.567, -14.897],
                        [91.657, -8.984],
                        [85.746, -14.897],
                        [91.657, -20.808]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [94.739, -16.852],
                        [88.83, -10.936],
                        [87.038, -11.219],
                        [85.744, -14.896],
                        [91.66, -20.811],
                        [93.446, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [97.569, -14.896],
                        [91.66, -8.987],
                        [87.038, -11.219],
                        [85.744, -14.896],
                        [91.66, -20.811],
                        [93.446, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 102,
      "op": 327,
      "st": 102,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 4,
      "ty": 4,
      "nm": "Layer 20",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [121.941, 35.102, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [71.941, -14.898, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 99,
              "s": [0, 0, 100]
            },
            { "t": 106, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [77.852, -14.897],
                        [71.941, -8.984],
                        [66.03, -14.897],
                        [71.941, -20.808]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [75.023, -16.852],
                        [69.114, -10.936],
                        [67.322, -11.219],
                        [66.029, -14.896],
                        [71.944, -20.811],
                        [73.73, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [77.853, -14.896],
                        [71.944, -8.987],
                        [67.322, -11.219],
                        [66.029, -14.896],
                        [71.944, -20.811],
                        [73.73, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 99,
      "op": 324,
      "st": 99,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 5,
      "ty": 4,
      "nm": "Layer 19",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [102.225, 35.102, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [52.225, -14.898, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 96,
              "s": [0, 0, 100]
            },
            { "t": 103, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [58.136, -14.897],
                        [52.225, -8.984],
                        [46.315, -14.897],
                        [52.225, -20.808]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [55.308, -16.852],
                        [49.399, -10.936],
                        [47.606, -11.219],
                        [46.313, -14.896],
                        [52.229, -20.811],
                        [54.014, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [58.138, -14.896],
                        [52.229, -8.987],
                        [47.606, -11.219],
                        [46.313, -14.896],
                        [52.229, -20.811],
                        [54.014, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 96,
      "op": 321,
      "st": 96,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 6,
      "ty": 4,
      "nm": "Layer 18",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [82.51, 35.102, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [32.51, -14.898, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 93,
              "s": [0, 0, 100]
            },
            { "t": 100, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [38.42, -14.897],
                        [32.51, -8.984],
                        [26.599, -14.897],
                        [32.51, -20.808]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [35.592, -16.852],
                        [29.683, -10.936],
                        [27.891, -11.219],
                        [26.597, -14.896],
                        [32.513, -20.811],
                        [34.299, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [38.422, -14.896],
                        [32.513, -8.987],
                        [27.891, -11.219],
                        [26.597, -14.896],
                        [32.513, -20.811],
                        [34.299, -20.535]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 93,
      "op": 318,
      "st": 93,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 7,
      "ty": 4,
      "nm": "Layer 17",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [161.372, -5.017, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [111.372, -55.017, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 85,
              "s": [0, 0, 100]
            },
            { "t": 92, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [117.283, -55.017],
                        [111.372, -49.104],
                        [105.461, -55.017],
                        [111.372, -60.928]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [114.455, -56.972],
                        [108.546, -51.056],
                        [106.753, -51.338],
                        [105.46, -55.015],
                        [111.375, -60.931],
                        [113.161, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [117.284, -55.015],
                        [111.375, -49.106],
                        [106.753, -51.338],
                        [105.46, -55.015],
                        [111.375, -60.931],
                        [113.161, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 85,
      "op": 310,
      "st": 85,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 8,
      "ty": 4,
      "nm": "Layer 16",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [141.656, -5.017, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [91.656, -55.017, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 82,
              "s": [0, 0, 100]
            },
            { "t": 89, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [97.567, -55.017],
                        [91.657, -49.104],
                        [85.746, -55.017],
                        [91.657, -60.928]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [94.739, -56.972],
                        [88.83, -51.056],
                        [87.038, -51.338],
                        [85.744, -55.015],
                        [91.66, -60.931],
                        [93.446, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [97.569, -55.015],
                        [91.66, -49.106],
                        [87.038, -51.338],
                        [85.744, -55.015],
                        [91.66, -60.931],
                        [93.446, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 82,
      "op": 307,
      "st": 82,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 9,
      "ty": 4,
      "nm": "Layer 15",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [121.941, -5.017, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [71.941, -55.017, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 79,
              "s": [0, 0, 100]
            },
            { "t": 86, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [77.852, -55.017],
                        [71.941, -49.104],
                        [66.03, -55.017],
                        [71.941, -60.928]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [75.023, -56.972],
                        [69.114, -51.056],
                        [67.322, -51.338],
                        [66.029, -55.015],
                        [71.944, -60.931],
                        [73.73, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [77.853, -55.015],
                        [71.944, -49.106],
                        [67.322, -51.338],
                        [66.029, -55.015],
                        [71.944, -60.931],
                        [73.73, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 79,
      "op": 304,
      "st": 79,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 10,
      "ty": 4,
      "nm": "Layer 14",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [102.225, -5.017, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [52.225, -55.017, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 76,
              "s": [0, 0, 100]
            },
            { "t": 83, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [58.136, -55.017],
                        [52.225, -49.104],
                        [46.315, -55.017],
                        [52.225, -60.928]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [55.308, -56.972],
                        [49.399, -51.056],
                        [47.606, -51.338],
                        [46.313, -55.015],
                        [52.229, -60.931],
                        [54.014, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [58.138, -55.015],
                        [52.229, -49.106],
                        [47.606, -51.338],
                        [46.313, -55.015],
                        [52.229, -60.931],
                        [54.014, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 76,
      "op": 301,
      "st": 76,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 11,
      "ty": 4,
      "nm": "Layer 13",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [82.51, -5.017, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [32.51, -55.017, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 73,
              "s": [0, 0, 100]
            },
            { "t": 80, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [[0, -3.264], [3.266, 0], [0, 3.266], [-3.264, 0]],
                      "o": [[0, 3.266], [-3.264, 0], [0, -3.264], [3.266, 0]],
                      "v": [
                        [38.42, -55.017],
                        [32.51, -49.104],
                        [26.599, -55.017],
                        [32.51, -60.928]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -1.392],
                        [3.263, 0],
                        [0.565, 0.184],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.27],
                        [-0.624, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [0.808, 1.011]
                      ],
                      "v": [
                        [35.592, -56.972],
                        [29.683, -51.056],
                        [27.891, -51.338],
                        [26.597, -55.015],
                        [32.513, -60.931],
                        [34.299, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.639],
                        [3.263, 0],
                        [1.077, 1.359],
                        [0, 1.385],
                        [-3.27, 0],
                        [-0.565, -0.177]
                      ],
                      "o": [
                        [0, 3.263],
                        [-1.878, 0],
                        [-0.814, -1.005],
                        [0, -3.263],
                        [0.624, 0],
                        [2.39, 0.755]
                      ],
                      "v": [
                        [38.422, -55.015],
                        [32.513, -49.106],
                        [27.891, -51.338],
                        [26.597, -55.015],
                        [32.513, -60.931],
                        [34.299, -60.655]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.458823531866, 0.482352942228, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 73,
      "op": 298,
      "st": 73,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 12,
      "ty": 4,
      "nm": "Layer 10",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [164.355, 132.081, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [114.355, 82.081, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 69,
              "s": [0, 0, 100]
            },
            { "t": 76, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.197, 0],
                    [0, 0],
                    [-0.048, 0.189],
                    [0, 0],
                    [0, 0.627],
                    [-1.032, 0],
                    [0, -1.032],
                    [0.471, -0.334],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [-0.197, 0],
                    [0, 0],
                    [-0.471, -0.334],
                    [0, -1.032],
                    [1.032, 0],
                    [0, 0.627],
                    [0, 0],
                    [0.048, 0.189]
                  ],
                  "v": [
                    [146.367, 90.785],
                    [142.986, 90.785],
                    [142.696, 90.41],
                    [143.591, 86.985],
                    [142.811, 85.47],
                    [144.678, 83.604],
                    [146.541, 85.47],
                    [145.762, 86.985],
                    [146.656, 90.41]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0], [0, 0], [-2.681, 0], [0, -2.674]],
                  "o": [[0, 0], [0, 0], [0, -2.674], [2.667, 0], [0, 0]],
                  "v": [
                    [149.241, 77.672],
                    [139.545, 77.672],
                    [139.545, 74.82],
                    [144.397, 69.975],
                    [149.241, 74.82]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ind": 1,
              "ty": "sh",
              "ix": 2,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.88, 0],
                    [0, 0],
                    [0, 0],
                    [4.072, 0],
                    [0, -4.064],
                    [0, 0],
                    [0, 0],
                    [0, -0.88],
                    [0, 0],
                    [-0.88, 0],
                    [0, 0],
                    [0, 0.88],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [0, -4.064],
                    [-4.064, 0],
                    [0, 0],
                    [0, 0],
                    [-0.88, 0],
                    [0, 0],
                    [0, 0.88],
                    [0, 0],
                    [0.88, 0],
                    [0, 0],
                    [0, -0.88]
                  ],
                  "v": [
                    [154.136, 77.672],
                    [151.767, 77.672],
                    [151.767, 74.82],
                    [144.39, 67.443],
                    [137.02, 74.82],
                    [137.02, 77.672],
                    [135.218, 77.672],
                    [133.629, 79.26],
                    [133.629, 95.128],
                    [135.218, 96.717],
                    [154.136, 96.717],
                    [155.725, 95.128],
                    [155.725, 79.26]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 2",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.376470595598, 0.329411774874, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0], [0, 0], [-2.681, 0], [0, -2.674]],
                  "o": [[0, 0], [0, 0], [0, -2.674], [2.667, 0], [0, 0]],
                  "v": [
                    [150.668, 79.195],
                    [140.971, 79.195],
                    [140.971, 76.344],
                    [145.823, 71.499],
                    [150.668, 76.344]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ind": 1,
              "ty": "sh",
              "ix": 2,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.88, 0],
                    [0, 0],
                    [0, 0],
                    [4.072, 0],
                    [0, -4.064],
                    [0, 0],
                    [0, 0],
                    [0, -0.88],
                    [0, 0],
                    [-0.88, 0],
                    [0, 0],
                    [0, 0.88],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [0, -4.064],
                    [-4.064, 0],
                    [0, 0],
                    [0, 0],
                    [-0.88, 0],
                    [0, 0],
                    [0, 0.88],
                    [0, 0],
                    [0.88, 0],
                    [0, 0],
                    [0, -0.88]
                  ],
                  "v": [
                    [155.562, 79.195],
                    [153.193, 79.195],
                    [153.193, 76.344],
                    [145.816, 68.967],
                    [138.446, 76.344],
                    [138.446, 79.195],
                    [136.645, 79.195],
                    [135.056, 80.784],
                    [135.056, 96.652],
                    [136.645, 98.24],
                    [155.562, 98.24],
                    [157.151, 96.652],
                    [157.151, 80.784]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 2",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0],
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0]
                      ],
                      "v": [
                        [174.997, 62.972],
                        [174.997, 101.188],
                        [168.332, 107.854],
                        [121.021, 107.854],
                        [114.355, 101.188],
                        [114.355, 62.972],
                        [121.021, 56.306],
                        [168.332, 56.306]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.667],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [1.125, 2.097],
                        [-1.009, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [0.502, 0.94]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-2.546, 0],
                        [0.861, 0.401],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, -1.141],
                        [2.266, 1.062]
                      ],
                      "v": [
                        [175, 62.971],
                        [175, 101.19],
                        [168.329, 107.855],
                        [121.021, 107.855],
                        [115.142, 104.332],
                        [117.973, 104.961],
                        [165.282, 104.961],
                        [171.947, 98.295],
                        [171.947, 60.082],
                        [171.16, 56.934]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.800000011921, 0.823529422283, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 2",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 2,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0],
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0]
                      ],
                      "v": [
                        [174.997, 62.972],
                        [174.997, 101.188],
                        [168.332, 107.854],
                        [121.021, 107.854],
                        [114.355, 101.188],
                        [114.355, 62.972],
                        [121.021, 56.306],
                        [168.332, 56.306]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 3",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 3,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 69,
      "op": 294,
      "st": 69,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 13,
      "ty": 4,
      "nm": "Layer 9",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0], [0, 0]],
                  "v": [[114.355, 82.395], [76.46, 82.395], [76.46, 21.906]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "tm",
          "s": {
            "a": 1,
            "k": [
              {
                "i": { "x": [0.833], "y": [0.833] },
                "o": { "x": [0.167], "y": [0.167] },
                "t": 54,
                "s": [100]
              },
              { "t": 69, "s": [0] }
            ],
            "ix": 1
          },
          "e": { "a": 0, "k": 100, "ix": 2 },
          "o": { "a": 0, "k": 0, "ix": 3 },
          "m": 1,
          "ix": 2,
          "nm": "Trim Paths 1",
          "mn": "ADBE Vector Filter - Trim",
          "hd": false
        }
      ],
      "ip": 54,
      "op": 279,
      "st": 54,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 14,
      "ty": 4,
      "nm": "Layer 12",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [-9.278, -73.213, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [-59.278, -123.213, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 58,
              "s": [0, 0, 100]
            },
            { "t": 65, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [-0.571, 3.333],
                        [0, 0],
                        [1.642, 0],
                        [0.893, -0.452],
                        [0.547, -0.869],
                        [0, -1.214],
                        [-0.762, -0.702],
                        [-1.214, 0]
                      ],
                      "o": [
                        [0, 0],
                        [-1.047, -1.094],
                        [-1.024, 0],
                        [-0.893, 0.453],
                        [-0.547, 0.869],
                        [0, 1.381],
                        [0.761, 0.702],
                        [2.904, 0]
                      ],
                      "v": [
                        [-55.352, -149.756],
                        [-54.781, -153.077],
                        [-58.815, -154.719],
                        [-61.689, -154.041],
                        [-63.85, -152.059],
                        [-64.671, -148.934],
                        [-63.528, -145.811],
                        [-60.565, -144.757]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ind": 1,
                  "ty": "sh",
                  "ix": 2,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [1.905, 1.13],
                        [1.035, 1.893],
                        [0, 2.166],
                        [-1.381, 2.333],
                        [-2.32, 1.393],
                        [-2.69, 0],
                        [-2.083, -1.059],
                        [-1.226, -1.869],
                        [0, -2.38],
                        [0.465, -1.332],
                        [0.987, -0.857],
                        [1.523, 0],
                        [0.666, 0.524],
                        [0.143, 0.714],
                        [1.023, -0.44],
                        [1.143, 0],
                        [1.071, 1.166],
                        [0, 1.857],
                        [-0.798, 1.31],
                        [-1.298, 0.69],
                        [-1.453, 0],
                        [-1.262, -1.214],
                        [0, 0],
                        [-0.25, 0.214],
                        [-0.334, 0],
                        [-0.25, -0.25],
                        [0, -0.381],
                        [0, 0],
                        [0, 0],
                        [0, -0.666],
                        [-0.298, -0.441],
                        [-0.595, 0],
                        [-0.798, 1.286],
                        [0, 2.19],
                        [1.119, 1.583],
                        [1.796, 0.81],
                        [1.951, 0],
                        [2.035, -1.214],
                        [1.214, -2.047],
                        [0, -2.357],
                        [-0.846, -1.607],
                        [-1.606, -1],
                        [-2.214, 0],
                        [-1.071, 0.273],
                        [-1.381, 0.547],
                        [-0.119, 0],
                        [-0.167, -0.166],
                        [0, -0.238],
                        [0.095, -0.155],
                        [0.143, -0.071],
                        [2.975, 0]
                      ],
                      "o": [
                        [-1.905, -1.131],
                        [-1.035, -1.892],
                        [0, -2.69],
                        [1.38, -2.333],
                        [2.321, -1.393],
                        [2.451, 0],
                        [2.083, 1.059],
                        [1.226, 1.869],
                        [0, 1.499],
                        [-0.464, 1.333],
                        [-0.988, 0.856],
                        [-1.19, 0],
                        [-0.666, -0.523],
                        [-0.738, 0.905],
                        [-1.023, 0.441],
                        [-1.905, 0],
                        [-1.071, -1.166],
                        [0, -1.785],
                        [0.797, -1.308],
                        [1.297, -0.69],
                        [1.785, 0],
                        [0, 0],
                        [0.047, -0.309],
                        [0.25, -0.214],
                        [0.357, 0],
                        [0.25, 0.25],
                        [0, 0],
                        [0, 0],
                        [-0.167, 0.881],
                        [0, 0.666],
                        [0.297, 0.441],
                        [1.475, 0],
                        [0.798, -1.285],
                        [0, -2.19],
                        [-1.119, -1.582],
                        [-1.798, -0.809],
                        [-2.357, 0],
                        [-2.035, 1.214],
                        [-1.214, 2.047],
                        [0, 1.762],
                        [0.844, 1.607],
                        [1.607, 0.999],
                        [1.451, 0],
                        [1.071, -0.274],
                        [0.143, -0.047],
                        [0.262, 0],
                        [0.166, 0.167],
                        [0, 0.166],
                        [-0.095, 0.155],
                        [-2.523, 1.261],
                        [-2.476, 0]
                      ],
                      "v": [
                        [-67.599, -137.67],
                        [-72.008, -142.205],
                        [-73.561, -148.292],
                        [-71.49, -155.826],
                        [-65.938, -161.413],
                        [-58.422, -163.502],
                        [-51.621, -161.913],
                        [-46.658, -157.521],
                        [-44.819, -151.148],
                        [-45.515, -146.9],
                        [-47.693, -143.615],
                        [-51.46, -142.33],
                        [-54.245, -143.115],
                        [-55.459, -144.972],
                        [-58.101, -142.954],
                        [-61.35, -142.293],
                        [-65.813, -144.043],
                        [-67.42, -148.578],
                        [-66.224, -153.22],
                        [-63.082, -156.218],
                        [-58.958, -157.254],
                        [-54.387, -155.433],
                        [-54.281, -156.04],
                        [-53.834, -156.825],
                        [-52.96, -157.147],
                        [-52.049, -156.772],
                        [-51.674, -155.826],
                        [-51.71, -155.433],
                        [-52.888, -148.649],
                        [-53.138, -146.328],
                        [-52.692, -144.668],
                        [-51.353, -144.008],
                        [-47.943, -145.936],
                        [-46.747, -151.148],
                        [-48.425, -156.808],
                        [-52.799, -160.396],
                        [-58.422, -161.61],
                        [-65.01, -159.789],
                        [-69.883, -154.897],
                        [-71.704, -148.292],
                        [-70.437, -143.24],
                        [-66.76, -139.33],
                        [-61.028, -137.831],
                        [-57.244, -138.241],
                        [-53.566, -139.473],
                        [-53.174, -139.544],
                        [-52.531, -139.295],
                        [-52.281, -138.688],
                        [-52.424, -138.206],
                        [-52.781, -137.866],
                        [-61.028, -135.974]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 2",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.552941203117, 0.584313750267, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [-0.571, 3.333],
                        [0, 0],
                        [1.642, 0],
                        [0.893, -0.452],
                        [0.547, -0.869],
                        [0, -1.214],
                        [-0.762, -0.702],
                        [-1.214, 0]
                      ],
                      "o": [
                        [0, 0],
                        [-1.047, -1.094],
                        [-1.024, 0],
                        [-0.893, 0.453],
                        [-0.547, 0.869],
                        [0, 1.381],
                        [0.761, 0.702],
                        [2.904, 0]
                      ],
                      "v": [
                        [-54.386, -148.849],
                        [-53.815, -152.17],
                        [-57.849, -153.812],
                        [-60.723, -153.133],
                        [-62.884, -151.151],
                        [-63.705, -148.027],
                        [-62.562, -144.904],
                        [-59.599, -143.85]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ind": 1,
                  "ty": "sh",
                  "ix": 2,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [1.905, 1.13],
                        [1.035, 1.893],
                        [0, 2.166],
                        [-1.381, 2.333],
                        [-2.32, 1.393],
                        [-2.69, 0],
                        [-2.083, -1.059],
                        [-1.226, -1.869],
                        [0, -2.38],
                        [0.465, -1.332],
                        [0.987, -0.857],
                        [1.523, 0],
                        [0.666, 0.524],
                        [0.143, 0.714],
                        [1.023, -0.44],
                        [1.143, 0],
                        [1.071, 1.166],
                        [0, 1.857],
                        [-0.798, 1.31],
                        [-1.298, 0.69],
                        [-1.453, 0],
                        [-1.262, -1.214],
                        [0, 0],
                        [-0.25, 0.214],
                        [-0.334, 0],
                        [-0.25, -0.25],
                        [0, -0.381],
                        [0, 0],
                        [0, 0],
                        [0, -0.666],
                        [-0.298, -0.441],
                        [-0.595, 0],
                        [-0.798, 1.286],
                        [0, 2.19],
                        [1.119, 1.583],
                        [1.796, 0.81],
                        [1.951, 0],
                        [2.035, -1.214],
                        [1.214, -2.047],
                        [0, -2.357],
                        [-0.846, -1.607],
                        [-1.606, -1],
                        [-2.214, 0],
                        [-1.071, 0.273],
                        [-1.381, 0.547],
                        [-0.119, 0],
                        [-0.167, -0.166],
                        [0, -0.238],
                        [0.095, -0.155],
                        [0.143, -0.071],
                        [2.975, 0]
                      ],
                      "o": [
                        [-1.905, -1.131],
                        [-1.035, -1.892],
                        [0, -2.69],
                        [1.38, -2.333],
                        [2.321, -1.393],
                        [2.451, 0],
                        [2.083, 1.059],
                        [1.226, 1.869],
                        [0, 1.499],
                        [-0.464, 1.333],
                        [-0.988, 0.856],
                        [-1.19, 0],
                        [-0.666, -0.523],
                        [-0.738, 0.905],
                        [-1.023, 0.441],
                        [-1.905, 0],
                        [-1.071, -1.166],
                        [0, -1.785],
                        [0.797, -1.308],
                        [1.297, -0.69],
                        [1.785, 0],
                        [0, 0],
                        [0.047, -0.309],
                        [0.25, -0.214],
                        [0.357, 0],
                        [0.25, 0.25],
                        [0, 0],
                        [0, 0],
                        [-0.167, 0.881],
                        [0, 0.666],
                        [0.297, 0.441],
                        [1.475, 0],
                        [0.798, -1.285],
                        [0, -2.19],
                        [-1.119, -1.582],
                        [-1.798, -0.809],
                        [-2.357, 0],
                        [-2.035, 1.214],
                        [-1.214, 2.047],
                        [0, 1.762],
                        [0.844, 1.607],
                        [1.607, 0.999],
                        [1.451, 0],
                        [1.071, -0.274],
                        [0.143, -0.047],
                        [0.262, 0],
                        [0.166, 0.167],
                        [0, 0.166],
                        [-0.095, 0.155],
                        [-2.523, 1.261],
                        [-2.476, 0]
                      ],
                      "v": [
                        [-66.633, -136.763],
                        [-71.042, -141.297],
                        [-72.595, -147.385],
                        [-70.524, -154.919],
                        [-64.973, -160.506],
                        [-57.456, -162.595],
                        [-50.655, -161.006],
                        [-45.692, -156.614],
                        [-43.853, -150.241],
                        [-44.549, -145.992],
                        [-46.727, -142.707],
                        [-50.494, -141.422],
                        [-53.279, -142.208],
                        [-54.493, -144.065],
                        [-57.135, -142.047],
                        [-60.384, -141.386],
                        [-64.847, -143.136],
                        [-66.454, -147.671],
                        [-65.258, -152.312],
                        [-62.116, -155.311],
                        [-57.992, -156.347],
                        [-53.421, -154.526],
                        [-53.315, -155.133],
                        [-52.868, -155.918],
                        [-51.994, -156.24],
                        [-51.083, -155.865],
                        [-50.708, -154.919],
                        [-50.744, -154.526],
                        [-51.922, -147.742],
                        [-52.172, -145.421],
                        [-51.726, -143.761],
                        [-50.387, -143.101],
                        [-46.977, -145.029],
                        [-45.781, -150.241],
                        [-47.459, -155.901],
                        [-51.833, -159.489],
                        [-57.456, -160.702],
                        [-64.044, -158.882],
                        [-68.917, -153.99],
                        [-70.738, -147.385],
                        [-69.471, -142.333],
                        [-65.794, -138.423],
                        [-60.063, -136.924],
                        [-56.278, -137.334],
                        [-52.6, -138.566],
                        [-52.208, -138.637],
                        [-51.565, -138.387],
                        [-51.315, -137.781],
                        [-51.458, -137.299],
                        [-51.815, -136.959],
                        [-60.063, -135.067]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 2",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.882352948189, 0.898039221764, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0],
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0]
                      ],
                      "v": [
                        [-28.958, -168.096],
                        [-28.958, -129.88],
                        [-35.624, -123.214],
                        [-82.935, -123.214],
                        [-89.6, -129.88],
                        [-89.6, -168.096],
                        [-82.935, -174.762],
                        [-35.624, -174.762]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -2.667],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [1.125, 2.097],
                        [-1.009, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [0.502, 0.94]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-2.546, 0],
                        [0.861, 0.401],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, -1.141],
                        [2.266, 1.062]
                      ],
                      "v": [
                        [-28.955, -168.097],
                        [-28.955, -129.878],
                        [-35.626, -123.213],
                        [-82.935, -123.213],
                        [-88.813, -126.736],
                        [-85.982, -126.107],
                        [-38.674, -126.107],
                        [-32.008, -132.773],
                        [-32.008, -170.986],
                        [-32.795, -174.134]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.800000011921, 0.823529422283, 1, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 2",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 2,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0],
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0]
                      ],
                      "o": [
                        [0, 0],
                        [0, 3.681],
                        [0, 0],
                        [-3.681, 0],
                        [0, 0],
                        [0, -3.681],
                        [0, 0],
                        [3.681, 0]
                      ],
                      "v": [
                        [-28.958, -168.096],
                        [-28.958, -129.88],
                        [-35.624, -123.214],
                        [-82.935, -123.214],
                        [-89.6, -129.88],
                        [-89.6, -168.096],
                        [-82.935, -174.762],
                        [-35.624, -174.762]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 3",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 3,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 58,
      "op": 283,
      "st": 58,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 15,
      "ty": 4,
      "nm": "Layer 11",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0], [0, 0]],
                  "v": [
                    [-59.279, -123.213],
                    [-59.279, -83.87],
                    [-4.302, -83.87]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "tm",
          "s": {
            "a": 1,
            "k": [
              {
                "i": { "x": [0.833], "y": [0.833] },
                "o": { "x": [0.167], "y": [0.167] },
                "t": 43,
                "s": [100]
              },
              { "t": 58, "s": [0] }
            ],
            "ix": 1
          },
          "e": { "a": 0, "k": 100, "ix": 2 },
          "o": { "a": 0, "k": 0, "ix": 3 },
          "m": 1,
          "ix": 2,
          "nm": "Trim Paths 1",
          "mn": "ADBE Vector Filter - Trim",
          "hd": false
        }
      ],
      "ip": 43,
      "op": 268,
      "st": 43,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 16,
      "ty": 4,
      "nm": "Layer 8",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [130.376, 36.52, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [80.376, -13.48, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.332, 0.332, 0.667], "y": [1, 1, 1] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0] },
              "t": 42,
              "s": [0, 0, 100]
            },
            { "t": 51, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2
        }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0],
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0],
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0]
                  ],
                  "v": [
                    [145.529, -25.093],
                    [145.529, -4.702],
                    [142.06, -1.233],
                    [21.286, -1.233],
                    [17.816, -4.702],
                    [17.816, -25.093],
                    [21.286, -28.562],
                    [142.06, -28.562]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0],
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0],
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0]
                  ],
                  "v": [
                    [142.936, -22.258],
                    [142.936, -1.867],
                    [139.466, 1.602],
                    [18.692, 1.602],
                    [15.223, -1.867],
                    [15.223, -22.258],
                    [18.692, -25.727],
                    [139.466, -25.727]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.800000011921, 0.823529422283, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 42,
      "op": 267,
      "st": 42,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 17,
      "ty": 4,
      "nm": "Layer 7",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [130.376, -3.6, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [80.376, -53.6, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.332, 0.332, 0.667], "y": [1, 1, 1] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0] },
              "t": 38,
              "s": [0, 0, 100]
            },
            { "t": 47, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2
        }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0],
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0],
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0]
                  ],
                  "v": [
                    [145.529, -65.213],
                    [145.529, -44.822],
                    [142.06, -41.352],
                    [21.286, -41.352],
                    [17.816, -44.822],
                    [17.816, -65.213],
                    [21.286, -68.682],
                    [142.06, -68.682]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0],
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 1.916],
                    [0, 0],
                    [-1.916, 0],
                    [0, 0],
                    [0, -1.916],
                    [0, 0],
                    [1.916, 0]
                  ],
                  "v": [
                    [142.936, -62.378],
                    [142.936, -41.986],
                    [139.466, -38.517],
                    [18.692, -38.517],
                    [15.223, -41.986],
                    [15.223, -62.378],
                    [18.692, -65.847],
                    [139.466, -65.847]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.800000011921, 0.823529422283, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 38,
      "op": 263,
      "st": 38,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 18,
      "ty": 4,
      "nm": "Layer 6",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [129.267, -53.741, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [79.267, -103.741, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.667, 0.667, 0.667], "y": [1, 1, 1] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0] },
              "t": 28,
              "s": [0, 0, 100]
            },
            { "t": 34, "s": [100, 100, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0, 0],
                                    [0.106, 0.886],
                                    [7.475, 0],
                                    [0.867, -7.236],
                                    [-0.893, 0]
                                  ],
                                  "o": [
                                    [0.893, 0],
                                    [-0.866, -7.236],
                                    [-7.47, 0],
                                    [-0.106, 0.886],
                                    [0, 0]
                                  ],
                                  "v": [
                                    [93.726, -91.881],
                                    [95.21, -93.548],
                                    [80.713, -106.397],
                                    [66.216, -93.548],
                                    [67.699, -91.881]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "st",
                              "c": {
                                "a": 0,
                                "k": [
                                  0.066666670144, 0.145098045468,
                                  0.266666680574, 1
                                ],
                                "ix": 3
                              },
                              "o": { "a": 0, "k": 100, "ix": 4 },
                              "w": { "a": 0, "k": 1.025, "ix": 5 },
                              "lc": 2,
                              "lj": 2,
                              "bm": 0,
                              "nm": "Stroke 1",
                              "mn": "ADBE Vector Graphic - Stroke",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 1",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 1,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0.892, 0],
                                    [0, 0],
                                    [-7.199, 0],
                                    [-1.566, -0.587],
                                    [-0.457, -3.82]
                                  ],
                                  "o": [
                                    [0, 0],
                                    [1.196, -6.851],
                                    [1.769, 0],
                                    [2.813, 2.32],
                                    [0.101, 0.892]
                                  ],
                                  "v": [
                                    [89.466, -94.33],
                                    [66.334, -94.33],
                                    [80.716, -106.4],
                                    [85.747, -105.501],
                                    [90.952, -95.997]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "fl",
                              "c": {
                                "a": 0,
                                "k": [1, 0.760784327984, 0.368627458811, 1],
                                "ix": 4
                              },
                              "o": { "a": 0, "k": 100, "ix": 5 },
                              "r": 1,
                              "bm": 0,
                              "nm": "Fill 1",
                              "mn": "ADBE Vector Graphic - Fill",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 2",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 2,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0.892, 0],
                                    [0, 0],
                                    [-0.109, 0.884],
                                    [-0.043, 0.261],
                                    [-7.199, 0],
                                    [-1.566, -0.587],
                                    [-0.66, -5.524]
                                  ],
                                  "o": [
                                    [0, 0],
                                    [-0.892, 0],
                                    [0.029, -0.261],
                                    [1.196, -6.851],
                                    [1.769, 0],
                                    [5.06, 1.849],
                                    [0.109, 0.884]
                                  ],
                                  "v": [
                                    [93.729, -91.88],
                                    [67.696, -91.88],
                                    [66.218, -93.547],
                                    [66.334, -94.33],
                                    [80.716, -106.4],
                                    [85.747, -105.501],
                                    [95.208, -93.547]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "fl",
                              "c": {
                                "a": 0,
                                "k": [
                                  0.937254905701, 0.631372570992,
                                  0.188235297799, 1
                                ],
                                "ix": 4
                              },
                              "o": { "a": 0, "k": 100, "ix": 5 },
                              "r": 1,
                              "bm": 0,
                              "nm": "Fill 1",
                              "mn": "ADBE Vector Graphic - Fill",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 3",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 3,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 3,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0, -3.212],
                                    [3.214, 0],
                                    [0, 3.214],
                                    [-3.212, 0]
                                  ],
                                  "o": [
                                    [0, 3.214],
                                    [-3.212, 0],
                                    [0, -3.212],
                                    [3.214, 0]
                                  ],
                                  "v": [
                                    [86.53, -114.698],
                                    [80.713, -108.879],
                                    [74.896, -114.698],
                                    [80.713, -120.515]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "st",
                              "c": {
                                "a": 0,
                                "k": [
                                  0.066666670144, 0.145098045468,
                                  0.266666680574, 1
                                ],
                                "ix": 3
                              },
                              "o": { "a": 0, "k": 100, "ix": 4 },
                              "w": { "a": 0, "k": 1.025, "ix": 5 },
                              "lc": 2,
                              "lj": 2,
                              "bm": 0,
                              "nm": "Stroke 1",
                              "mn": "ADBE Vector Graphic - Stroke",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 1",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 1,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0, -1.37],
                                    [3.211, 0],
                                    [0.556, 0.181],
                                    [0, 1.363],
                                    [-3.218, 0],
                                    [-0.556, -0.174]
                                  ],
                                  "o": [
                                    [0, 3.218],
                                    [-0.614, 0],
                                    [-0.801, -0.989],
                                    [0, -3.211],
                                    [0.614, 0],
                                    [0.795, 0.995]
                                  ],
                                  "v": [
                                    [83.746, -116.622],
                                    [77.931, -110.8],
                                    [76.167, -111.078],
                                    [74.894, -114.696],
                                    [80.716, -120.518],
                                    [82.473, -120.247]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "fl",
                              "c": {
                                "a": 0,
                                "k": [1, 0.760784327984, 0.368627458811, 1],
                                "ix": 4
                              },
                              "o": { "a": 0, "k": 100, "ix": 5 },
                              "r": 1,
                              "bm": 0,
                              "nm": "Fill 1",
                              "mn": "ADBE Vector Graphic - Fill",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 2",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 2,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "gr",
                      "it": [
                        {
                          "ty": "gr",
                          "it": [
                            {
                              "ind": 0,
                              "ty": "sh",
                              "ix": 1,
                              "ks": {
                                "a": 0,
                                "k": {
                                  "i": [
                                    [0, -2.597],
                                    [3.211, 0],
                                    [1.06, 1.338],
                                    [0, 1.363],
                                    [-3.218, 0],
                                    [-0.556, -0.174]
                                  ],
                                  "o": [
                                    [0, 3.211],
                                    [-1.848, 0],
                                    [-0.801, -0.989],
                                    [0, -3.211],
                                    [0.614, 0],
                                    [2.352, 0.743]
                                  ],
                                  "v": [
                                    [86.531, -114.696],
                                    [80.716, -108.881],
                                    [76.167, -111.078],
                                    [74.894, -114.696],
                                    [80.716, -120.518],
                                    [82.473, -120.247]
                                  ],
                                  "c": true
                                },
                                "ix": 2
                              },
                              "nm": "Path 1",
                              "mn": "ADBE Vector Shape - Group",
                              "hd": false
                            },
                            {
                              "ty": "fl",
                              "c": {
                                "a": 0,
                                "k": [
                                  0.937254905701, 0.631372570992,
                                  0.188235297799, 1
                                ],
                                "ix": 4
                              },
                              "o": { "a": 0, "k": 100, "ix": 5 },
                              "r": 1,
                              "bm": 0,
                              "nm": "Fill 1",
                              "mn": "ADBE Vector Graphic - Fill",
                              "hd": false
                            },
                            {
                              "ty": "tr",
                              "p": { "a": 0, "k": [0, 0], "ix": 2 },
                              "a": { "a": 0, "k": [0, 0], "ix": 1 },
                              "s": { "a": 0, "k": [100, 100], "ix": 3 },
                              "r": { "a": 0, "k": 0, "ix": 6 },
                              "o": { "a": 0, "k": 100, "ix": 7 },
                              "sk": { "a": 0, "k": 0, "ix": 4 },
                              "sa": { "a": 0, "k": 0, "ix": 5 },
                              "nm": "Transform"
                            }
                          ],
                          "nm": "Group 1",
                          "np": 2,
                          "cix": 2,
                          "bm": 0,
                          "ix": 1,
                          "mn": "ADBE Vector Group",
                          "hd": false
                        },
                        {
                          "ty": "tr",
                          "p": { "a": 0, "k": [0, 0], "ix": 2 },
                          "a": { "a": 0, "k": [0, 0], "ix": 1 },
                          "s": { "a": 0, "k": [100, 100], "ix": 3 },
                          "r": { "a": 0, "k": 0, "ix": 6 },
                          "o": { "a": 0, "k": 100, "ix": 7 },
                          "sk": { "a": 0, "k": 0, "ix": 4 },
                          "sa": { "a": 0, "k": 0, "ix": 5 },
                          "nm": "Transform"
                        }
                      ],
                      "nm": "Group 3",
                      "np": 1,
                      "cix": 2,
                      "bm": 0,
                      "ix": 3,
                      "mn": "ADBE Vector Group",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 3,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, -14.04], [14.04, 0], [0, 14.04], [-14.04, 0]],
                  "o": [[0, 14.04], [-14.04, 0], [0, -14.04], [14.04, 0]],
                  "v": [
                    [106.163, -105.17],
                    [80.744, -79.751],
                    [55.326, -105.17],
                    [80.744, -130.594]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, -14.04], [14.04, 0], [0, 14.04], [-14.04, 0]],
                  "o": [[0, 14.04], [-14.04, 0], [0, -14.04], [14.04, 0]],
                  "v": [
                    [103.208, -102.307],
                    [77.79, -76.888],
                    [52.371, -102.307],
                    [77.79, -127.731]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.800000011921, 0.823529422283, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 28,
      "op": 253,
      "st": 28,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 19,
      "ty": 4,
      "nm": "Layer 5",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": {
          "a": 1,
          "k": [
            {
              "i": { "x": 0.667, "y": 1 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 13,
              "s": [130.714, -314.712, 0],
              "to": [0, 50.179, 0],
              "ti": [0, -50.179, 0]
            },
            { "t": 24, "s": [130.714, -13.639, 0] }
          ],
          "ix": 2,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        },
        "a": { "a": 0, "k": [80.714, -63.639, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, -4.774],
                    [0, 0],
                    [4.774, 0],
                    [0, 0],
                    [0, 4.774],
                    [0, 0],
                    [-4.774, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [0, 4.774],
                    [0, 0],
                    [-4.774, 0],
                    [0, 0],
                    [0, -4.774],
                    [0, 0],
                    [4.774, 0]
                  ],
                  "v": [
                    [157.526, -131.81],
                    [157.526, 4.531],
                    [148.882, 13.175],
                    [12.545, 13.175],
                    [3.901, 4.531],
                    [3.901, -131.81],
                    [12.545, -140.454],
                    [148.882, -140.454]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0, 9.289],
                    [0, 0],
                    [-9.289, 0],
                    [0, 0],
                    [0, -9.289],
                    [0, 0],
                    [9.289, 0]
                  ],
                  "o": [
                    [-9.289, 0],
                    [0, 0],
                    [0, -9.289],
                    [0, 0],
                    [9.289, 0],
                    [0, 0],
                    [0, 9.289],
                    [0, 0]
                  ],
                  "v": [
                    [12.545, 21.378],
                    [-4.302, 4.531],
                    [-4.302, -131.81],
                    [12.545, -148.657],
                    [148.882, -148.657],
                    [165.729, -131.81],
                    [165.729, 4.531],
                    [148.882, 21.378]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 13,
      "op": 237,
      "st": 12,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 20,
      "ty": 4,
      "nm": "ara,m",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 30,
              "s": [0]
            },
            { "t": 98, "s": [0] }
          ],
          "ix": 10
        },
        "p": {
          "a": 1,
          "k": [
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 5,
              "s": [-2.078, 52.089, 0],
              "to": [0.167, -2.583, 0],
              "ti": [-0.167, 2.583, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 20,
              "s": [-1.078, 36.589, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.417, "y": 1 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 30,
              "s": [-1.078, 36.589, 0],
              "to": [-0.167, 2.583, 0],
              "ti": [0.167, -2.583, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.333, "y": 0.333 },
              "t": 45,
              "s": [-2.078, 52.089, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 73,
              "s": [-2.078, 52.089, 0],
              "to": [0.167, -2.583, 0],
              "ti": [-0.167, 2.583, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 88,
              "s": [-1.078, 36.589, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.417, "y": 1 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 98,
              "s": [-1.078, 36.589, 0],
              "to": [-0.167, 2.583, 0],
              "ti": [0.167, -2.583, 0]
            },
            { "t": 113, "s": [-2.078, 52.089, 0] }
          ],
          "ix": 2,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        },
        "a": { "a": 0, "k": [-59.828, 4.589, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [1.07, -1.02],
                    [1.879, 1.486],
                    [-1.76, 0.352],
                    [-0.844, -1.016],
                    [-1.009, 0.561],
                    [-0.966, -1.246],
                    [-0.844, 0.212],
                    [-1.117, -1.568],
                    [-0.887, 0.408],
                    [0, 0],
                    [-0.96, -0.798]
                  ],
                  "o": [
                    [-1.793, 1.7],
                    [-0.935, -0.748],
                    [0.833, -0.167],
                    [-0.973, -2.096],
                    [0.757, -0.42],
                    [-0.94, -2.072],
                    [1.001, -0.251],
                    [-0.784, -1.879],
                    [1.787, -0.822],
                    [0, 0],
                    [1.405, 1.184]
                  ],
                  "v": [
                    [-55.305, 7.805],
                    [-63.859, 10.193],
                    [-66.125, 3.996],
                    [-63.739, 6.113],
                    [-65.138, 1.49],
                    [-62.338, 3.864],
                    [-63.834, -0.453],
                    [-60.403, 2.43],
                    [-61.343, -1.445],
                    [-56.729, 4.923],
                    [-53.456, 3.136]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.733333349228, 0.643137276173, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 21,
      "ty": 4,
      "nm": "aram 2",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 5,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 20,
              "s": [-16]
            },
            {
              "i": { "x": [0.417], "y": [1] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 30,
              "s": [-16]
            },
            {
              "i": { "x": [0.833], "y": [1] },
              "o": { "x": [0.333], "y": [0] },
              "t": 45,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 73,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 88,
              "s": [-16]
            },
            {
              "i": { "x": [0.417], "y": [1] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 98,
              "s": [-16]
            },
            { "t": 113, "s": [0] }
          ],
          "ix": 10,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        },
        "p": { "a": 0, "k": [-81.063, 14.415, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [-131.063, -35.585, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0.091, -0.723],
                    [-1.528, -4.691],
                    [0, 0],
                    [-0.479, -1.075],
                    [-9.386, -5.198],
                    [1.243, 6.002],
                    [0, 0]
                  ],
                  "o": [
                    [-0.127, 0.534],
                    [-0.613, 4.895],
                    [0, 0],
                    [0.369, 1.135],
                    [6.571, -4.782],
                    [-4.502, -3.818],
                    [0, 0],
                    [0, 0]
                  ],
                  "v": [
                    [-130.737, -36.374],
                    [-131.062, -34.46],
                    [-129.622, -19.903],
                    [-129.622, -19.903],
                    [-128.346, -16.589],
                    [-104.587, -16.589],
                    [-113.558, -31.664],
                    [-114.965, -38.458]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.552941203117, 0.584313750267, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0, 0],
                    [-10.005, -2.524],
                    [0, 0],
                    [-1.404, -1.357],
                    [0, 0],
                    [-0.687, -2.571],
                    [2.079, 0.616],
                    [-0.284, -1.06],
                    [2.299, 0.764],
                    [-0.237, -0.889],
                    [2.328, 0.788],
                    [-0.207, -0.77],
                    [0, 0],
                    [0, 0],
                    [2.559, 0.752],
                    [3.934, 3.365],
                    [1.748, 5.373],
                    [-0.616, 4.899],
                    [-0.13, 0.533]
                  ],
                  "o": [
                    [0, 0],
                    [2.091, 10.106],
                    [0, 0],
                    [0, 0],
                    [0.96, 0.924],
                    [0, 0],
                    [0.379, 1.422],
                    [1.783, 1.007],
                    [0.439, 1.635],
                    [1.428, 0.883],
                    [0.45, 1.706],
                    [1.167, 0.776],
                    [0.687, 2.571],
                    [0, 0],
                    [-2.654, -0.296],
                    [-5.213, -1.522],
                    [-3.934, -3.365],
                    [-1.528, -4.692],
                    [0.089, -0.723],
                    [0, 0]
                  ],
                  "v": [
                    [-114.966, -38.46],
                    [-113.556, -31.666],
                    [-93.776, -11.009],
                    [-73.084, -5.743],
                    [-67.231, -8.071],
                    [-68.748, -4.404],
                    [-60.064, 0.37],
                    [-63.914, -0.109],
                    [-60.484, 2.947],
                    [-65.212, 2.1],
                    [-62.552, 4.588],
                    [-67.433, 3.836],
                    [-64.963, 5.382],
                    [-74.702, 4.612],
                    [-99.078, 1.97],
                    [-106.927, 0.453],
                    [-120.872, -6.839],
                    [-129.621, -19.901],
                    [-131.061, -34.462],
                    [-130.735, -36.375]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.113, -0.752],
                    [0.107, -0.13],
                    [0, 0],
                    [0, 0],
                    [2.559, 0.752],
                    [3.934, 3.365],
                    [1.765, 5.154],
                    [-1.706, 0.284],
                    [-0.355, -1.505],
                    [-3.632, -2.938],
                    [-2.524, -0.735],
                    [-5.681, -0.308],
                    [-5.646, -2.909]
                  ],
                  "o": [
                    [-0.03, 0.178],
                    [-0.8, -0.231],
                    [0, 0],
                    [-2.654, -0.296],
                    [-5.213, -1.522],
                    [-3.815, -3.264],
                    [0.231, -1.475],
                    [2.174, -0.361],
                    [1.078, 4.544],
                    [2.038, 1.659],
                    [5.468, 1.582],
                    [6.344, 0.338],
                    [0.675, 0.349]
                  ],
                  "v": [
                    [-73.179, 4.547],
                    [-73.386, 5.009],
                    [-74.702, 4.612],
                    [-99.078, 1.97],
                    [-106.927, 0.453],
                    [-120.872, -6.839],
                    [-129.455, -19.427],
                    [-126.813, -22.484],
                    [-123.988, -18.456],
                    [-116.672, -6.863],
                    [-109.747, -3.196],
                    [-92.769, -2.064],
                    [-74.512, 2.882]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.949019610882, 0.627451002598, 0.486274510622, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [2.079, 0.616],
                    [-0.284, -1.06],
                    [2.299, 0.764],
                    [-0.237, -0.889],
                    [2.328, 0.788],
                    [-0.207, -0.77],
                    [2.778, 0.8],
                    [0, 0],
                    [0, 0],
                    [2.559, 0.752],
                    [3.934, 3.365],
                    [1.765, 5.154],
                    [0.054, 0.16],
                    [-0.616, 4.899],
                    [-0.13, 0.533],
                    [0, 0],
                    [0, 0],
                    [-10.005, -2.524],
                    [0, 0],
                    [-1.404, -1.357],
                    [0, 0],
                    [-0.687, -2.571]
                  ],
                  "o": [
                    [1.783, 1.007],
                    [0.439, 1.635],
                    [1.428, 0.883],
                    [0.45, 1.706],
                    [1.167, 0.776],
                    [0.533, 1.996],
                    [-0.8, -0.231],
                    [0, 0],
                    [-2.654, -0.296],
                    [-5.213, -1.522],
                    [-3.815, -3.264],
                    [-0.059, -0.154],
                    [-1.528, -4.692],
                    [0.089, -0.723],
                    [0, 0],
                    [0, 0],
                    [2.091, 10.106],
                    [0, 0],
                    [0, 0],
                    [0.96, 0.924],
                    [0, 0],
                    [0.379, 1.422]
                  ],
                  "v": [
                    [-63.914, -0.109],
                    [-60.484, 2.947],
                    [-65.212, 2.1],
                    [-62.552, 4.588],
                    [-67.433, 3.836],
                    [-64.963, 5.382],
                    [-73.386, 5.009],
                    [-74.702, 4.612],
                    [-99.078, 1.97],
                    [-106.927, 0.453],
                    [-120.872, -6.839],
                    [-129.455, -19.427],
                    [-129.621, -19.901],
                    [-131.061, -34.462],
                    [-130.735, -36.375],
                    [-114.966, -38.46],
                    [-113.556, -31.666],
                    [-93.776, -11.009],
                    [-73.084, -5.743],
                    [-67.231, -8.071],
                    [-68.748, -4.404],
                    [-60.064, 0.37]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.733333349228, 0.643137276173, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 22,
      "ty": 4,
      "nm": "key",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.573], "y": [1] },
              "o": { "x": [0.167], "y": [0] },
              "t": 5,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [1] },
              "o": { "x": [0.333], "y": [0] },
              "t": 45,
              "s": [0]
            },
            {
              "i": { "x": [0.573], "y": [1] },
              "o": { "x": [0.167], "y": [0] },
              "t": 73,
              "s": [0]
            },
            { "t": 113, "s": [0] }
          ],
          "ix": 10
        },
        "p": {
          "a": 1,
          "k": [
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 5,
              "s": [-19.672, 51.711, 0],
              "to": [0.5, -2.75, 0],
              "ti": [-0.5, 2.75, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 20,
              "s": [-16.672, 35.211, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.417, "y": 1 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 30,
              "s": [-16.672, 35.211, 0],
              "to": [1.345, -3.362, 0],
              "ti": [0.5, -2.75, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.333, "y": 0.333 },
              "t": 45,
              "s": [-19.672, 51.711, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 73,
              "s": [-19.672, 51.711, 0],
              "to": [0.5, -2.75, 0],
              "ti": [-0.5, 2.75, 0]
            },
            {
              "i": { "x": 0.833, "y": 0.833 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 88,
              "s": [-16.672, 35.211, 0],
              "to": [0, 0, 0],
              "ti": [0, 0, 0]
            },
            {
              "i": { "x": 0.417, "y": 1 },
              "o": { "x": 0.167, "y": 0.167 },
              "t": 98,
              "s": [-16.672, 35.211, 0],
              "to": [1.345, -3.362, 0],
              "ti": [0.5, -2.75, 0]
            },
            { "t": 113, "s": [-19.672, 51.711, 0] }
          ],
          "ix": 2,
          "l": 2,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        },
        "a": { "a": 0, "k": [-69.672, 1.711, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [2.358, -1.148],
                        [1.148, 2.357],
                        [0, 0],
                        [-2.364, 1.151],
                        [-1.153, -0.393],
                        [-0.574, -1.179],
                        [0, 0]
                      ],
                      "o": [
                        [-2.364, 1.151],
                        [0, 0],
                        [-1.148, -2.357],
                        [1.172, -0.571],
                        [1.14, 0.399],
                        [0, 0],
                        [1.148, 2.357]
                      ],
                      "v": [
                        [-146.371, 53.3],
                        [-152.72, 51.109],
                        [-159.892, 36.381],
                        [-157.698, 30.038],
                        [-154.069, 29.814],
                        [-151.353, 32.223],
                        [-144.18, 46.951]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ind": 1,
                  "ty": "sh",
                  "ix": 2,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [0.78, 1.602],
                        [0, 0],
                        [0, 0],
                        [2.124, 4.362],
                        [4.312, -2.1],
                        [0, 0],
                        [13.84, -6.74],
                        [-7.664, -15.739],
                        [-16.438, 8.005],
                        [1.881, 13.438],
                        [0, 0],
                        [0, 0],
                        [-1.616, 0.787],
                        [0, 0],
                        [0.756, 1.553],
                        [0, 0],
                        [0, 0],
                        [0, 0],
                        [-1.56, 0.76],
                        [0, 0]
                      ],
                      "o": [
                        [0, 0],
                        [0, 0],
                        [4.312, -2.1],
                        [-2.124, -4.362],
                        [0, 0],
                        [-9.313, -10.571],
                        [-16.438, 8.005],
                        [7.664, 15.739],
                        [13.389, -6.52],
                        [0, 0],
                        [0, 0],
                        [0.756, 1.553],
                        [0, 0],
                        [1.602, -0.78],
                        [0, 0],
                        [0, 0],
                        [0, 0],
                        [0.78, 1.602],
                        [0, 0],
                        [1.602, -0.78]
                      ],
                      "v": [
                        [-12.768, 11.507],
                        [-23.536, -10.606],
                        [-12.413, -16.022],
                        [-8.368, -27.745],
                        [-20.087, -31.783],
                        [-115.697, 14.776],
                        [-154.853, 7.597],
                        [-170.78, 50.611],
                        [-127.093, 64.603],
                        [-108.383, 30.712],
                        [-74.611, 14.266],
                        [-68.613, 26.582],
                        [-64.31, 28.066],
                        [-55.481, 23.767],
                        [-54.003, 19.467],
                        [-60.001, 7.152],
                        [-38.096, -3.515],
                        [-27.328, 18.597],
                        [-23.075, 20.106],
                        [-14.238, 15.803]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 2",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "st",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 3
                  },
                  "o": { "a": 0, "k": 100, "ix": 4 },
                  "w": { "a": 0, "k": 1.025, "ix": 5 },
                  "lc": 2,
                  "lj": 2,
                  "bm": 0,
                  "nm": "Stroke 1",
                  "mn": "ADBE Vector Graphic - Stroke",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [1.298, -1.391],
                    [0.546, -0.266],
                    [1.152, 2.356],
                    [0, 0],
                    [0, 0],
                    [-2.37, 1.152],
                    [-1.152, -0.393],
                    [-0.573, -1.178],
                    [0, 0]
                  ],
                  "o": [
                    [-0.386, 0.419],
                    [-2.363, 1.152],
                    [0, 0],
                    [0, 0],
                    [-1.145, -2.356],
                    [1.172, -0.573],
                    [1.138, 0.399],
                    [0, 0],
                    [0.885, 1.811]
                  ],
                  "v": [
                    [-144.974, 52.26],
                    [-146.372, 53.299],
                    [-152.722, 51.109],
                    [-159.099, 38.015],
                    [-159.891, 36.384],
                    [-157.694, 30.041],
                    [-154.067, 29.814],
                    [-151.351, 32.224],
                    [-144.182, 46.955]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ind": 1,
              "ty": "sh",
              "ix": 2,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.06, 0.12],
                    [4.307, -2.097],
                    [0, 0],
                    [13.839, -6.736],
                    [1.205, -10.797],
                    [-1.558, -3.189],
                    [-16.435, 8.008],
                    [-1.205, 10.777],
                    [-0.02, 0.299],
                    [0.32, 2.276],
                    [0, 0],
                    [0, 0],
                    [-1.618, 0.785],
                    [0, 0],
                    [-0.047, 0.027],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-1.564, 0.759],
                    [0, 0],
                    [-0.047, 0.027],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-0.805, 1.871]
                  ],
                  "o": [
                    [-2.123, -4.36],
                    [0, 0],
                    [-9.313, -10.571],
                    [-10.804, 5.265],
                    [0.379, 3.355],
                    [7.668, 15.743],
                    [10.824, -5.265],
                    [0.04, -0.299],
                    [0.193, -2.27],
                    [0, 0],
                    [0, 0],
                    [0.752, 1.551],
                    [0, 0],
                    [0.053, -0.027],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0.779, 1.604],
                    [0, 0],
                    [0.053, -0.027],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [1.957, -0.952],
                    [-0.053, -0.12]
                  ],
                  "v": [
                    [-8.369, -27.745],
                    [-20.085, -31.785],
                    [-115.7, 14.777],
                    [-154.853, 7.595],
                    [-173.658, 33.795],
                    [-170.783, 43.673],
                    [-127.096, 57.665],
                    [-108.284, 31.512],
                    [-108.198, 30.62],
                    [-108.384, 23.777],
                    [-74.609, 7.328],
                    [-68.611, 19.65],
                    [-64.311, 21.134],
                    [-55.478, 16.834],
                    [-55.331, 16.754],
                    [-60.004, 7.149],
                    [-60.004, 7.155],
                    [-62.733, 1.551],
                    [-38.097, -10.451],
                    [-27.327, 11.662],
                    [-23.074, 13.173],
                    [-14.24, 8.866],
                    [-14.094, 8.786],
                    [-23.533, -10.604],
                    [-26.262, -16.209],
                    [-12.41, -22.959],
                    [-8.203, -27.385]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 2",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [1, 0.760784327984, 0.368627458811, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [2.356, -1.145],
                    [1.152, 2.356],
                    [0, 0],
                    [-1.298, 1.391],
                    [-0.546, 0.266],
                    [-1.152, -0.393],
                    [-0.572, -1.178],
                    [0, 0],
                    [0, 0]
                  ],
                  "o": [
                    [-2.363, 1.152],
                    [0, 0],
                    [-0.879, -1.817],
                    [0.386, -0.419],
                    [1.172, -0.572],
                    [1.138, 0.399],
                    [0, 0],
                    [0, 0],
                    [1.152, 2.363]
                  ],
                  "v": [
                    [-146.373, 53.299],
                    [-152.723, 51.109],
                    [-159.892, 36.384],
                    [-159.1, 31.079],
                    [-157.696, 30.041],
                    [-154.068, 29.814],
                    [-151.352, 32.224],
                    [-144.975, 45.324],
                    [-144.183, 46.948]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ind": 1,
              "ty": "sh",
              "ix": 2,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [1.857, 4.287],
                    [0.06, 0.12],
                    [4.307, -2.097],
                    [0, 0],
                    [13.839, -6.736],
                    [1.205, -10.797],
                    [-2.623, -5.385],
                    [-16.435, 8.008],
                    [1.498, 13.187],
                    [0.04, 0.266],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-1.618, 0.792],
                    [0, 0],
                    [0.759, 1.551],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-1.564, 0.765],
                    [0, 0],
                    [0.779, 1.598],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0]
                  ],
                  "o": [
                    [-0.053, -0.12],
                    [-2.123, -4.36],
                    [0, 0],
                    [-9.313, -10.571],
                    [-10.804, 5.265],
                    [-0.632, 5.625],
                    [7.668, 15.743],
                    [13.127, -6.39],
                    [-0.027, -0.266],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0.752, 1.558],
                    [0, 0],
                    [1.598, -0.779],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0.779, 1.604],
                    [0, 0],
                    [1.604, -0.779],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [4.187, -2.037]
                  ],
                  "v": [
                    [-8.203, -27.385],
                    [-8.369, -27.745],
                    [-20.085, -31.785],
                    [-115.7, 14.777],
                    [-154.853, 7.595],
                    [-173.658, 33.795],
                    [-170.783, 50.609],
                    [-127.096, 64.601],
                    [-108.284, 31.512],
                    [-108.384, 30.713],
                    [-108.198, 30.62],
                    [-74.609, 14.265],
                    [-68.611, 26.579],
                    [-64.311, 28.064],
                    [-55.478, 23.763],
                    [-54.007, 19.47],
                    [-55.331, 16.754],
                    [-60.004, 7.149],
                    [-57.275, 5.824],
                    [-38.097, -3.515],
                    [-27.327, 18.598],
                    [-23.074, 20.102],
                    [-14.24, 15.802],
                    [-12.769, 11.509],
                    [-14.094, 8.786],
                    [-23.533, -10.604],
                    [-20.804, -11.936],
                    [-12.41, -16.023]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 2",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.937254905701, 0.631372570992, 0.188235297799, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 23,
      "ty": 4,
      "nm": "head",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 5,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 20,
              "s": [-12]
            },
            {
              "i": { "x": [0.512], "y": [1] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 30,
              "s": [-12]
            },
            {
              "i": { "x": [0.833], "y": [1] },
              "o": { "x": [0.333], "y": [0] },
              "t": 45,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 60,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 73,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 88,
              "s": [-12]
            },
            {
              "i": { "x": [0.512], "y": [1] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 98,
              "s": [-12]
            },
            {
              "i": { "x": [0.833], "y": [1] },
              "o": { "x": [0.333], "y": [0] },
              "t": 113,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 123,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 137,
              "s": [8]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 151,
              "s": [0]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 165,
              "s": [8]
            },
            {
              "i": { "x": [0.833], "y": [0.833] },
              "o": { "x": [0.167], "y": [0.167] },
              "t": 178,
              "s": [0]
            },
            { "t": 192, "s": [8] }
          ],
          "ix": 10,
          "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
        },
        "p": { "a": 0, "k": [-47.658, -4.128, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [-97.658, -54.128, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        },
        {
          "ty": 5,
          "nm": "Kleaner 2",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 2,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [-0.124, -0.448],
                        [0.448, -0.124],
                        [0.124, 0.448],
                        [-0.448, 0.124]
                      ],
                      "o": [
                        [0.124, 0.448],
                        [-0.448, 0.124],
                        [-0.124, -0.448],
                        [0.448, -0.124]
                      ],
                      "v": [
                        [-93.489, -75.251],
                        [-94.094, -74.215],
                        [-95.146, -74.791],
                        [-94.547, -75.85]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [-94.318, -75.031], "ix": 2 },
              "a": { "a": 0, "k": [-94.318, -75.031], "ix": 1 },
              "s": {
                "a": 1,
                "k": [
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 0,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 5,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 10,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 20,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 25,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 30,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 40,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 45,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 50,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 60,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 65,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 70,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 80,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 85,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 90,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 100,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 105,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 110,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 120,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 125,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 130,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 140,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 145,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 150,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 160,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 165,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 170,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 180,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 185,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 190,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 200,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 205,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 210,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 220,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 225,
                    "s": [20, 20]
                  },
                  { "t": 230, "s": [100, 100] }
                ],
                "ix": 3
              },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 20",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ind": 0,
                  "ty": "sh",
                  "ix": 1,
                  "ks": {
                    "a": 0,
                    "k": {
                      "i": [
                        [-0.124, -0.448],
                        [0.448, -0.124],
                        [0.124, 0.448],
                        [-0.448, 0.124]
                      ],
                      "o": [
                        [0.124, 0.448],
                        [-0.448, 0.124],
                        [-0.124, -0.448],
                        [0.448, -0.124]
                      ],
                      "v": [
                        [-84.433, -78.069],
                        [-85.038, -77.033],
                        [-86.09, -77.609],
                        [-85.491, -78.668]
                      ],
                      "c": true
                    },
                    "ix": 2
                  },
                  "nm": "Path 1",
                  "mn": "ADBE Vector Shape - Group",
                  "hd": false
                },
                {
                  "ty": "fl",
                  "c": {
                    "a": 0,
                    "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                    "ix": 4
                  },
                  "o": { "a": 0, "k": 100, "ix": 5 },
                  "r": 1,
                  "bm": 0,
                  "nm": "Fill 1",
                  "mn": "ADBE Vector Graphic - Fill",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 2",
              "np": 2,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [-85.261, -77.849], "ix": 2 },
              "a": { "a": 0, "k": [-85.261, -77.849], "ix": 1 },
              "s": {
                "a": 1,
                "k": [
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 0,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 5,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 10,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 20,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 25,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 30,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 40,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 45,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 50,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 60,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 65,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 70,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 80,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 85,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 90,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 100,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 105,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 110,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 120,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 125,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 130,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 140,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 145,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 150,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 160,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 165,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 170,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 180,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 185,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 190,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 200,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 205,
                    "s": [20, 20]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 210,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 220,
                    "s": [100, 100]
                  },
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 225,
                    "s": [20, 20]
                  },
                  { "t": 230, "s": [100, 100] }
                ],
                "ix": 3
              },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 21",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [[2.052, 0.438], [-1.052, 0], [-0.313, 1.052]],
                          "o": [[0.365, 0.938], [1.125, 0], [-0.99, 0.323]],
                          "v": [
                            [-90.19, -70.72],
                            [-87.877, -69.126],
                            [-85.481, -70.928]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0.383, -0.575],
                            [-0.521, -0.061],
                            [-0.054, 0],
                            [-0.383, 0.575],
                            [0.521, 0.061],
                            [0.054, 0]
                          ],
                          "o": [
                            [0.322, 0.36],
                            [0.061, 0.008],
                            [0.651, 0],
                            [-0.322, -0.36],
                            [-0.061, -0.008],
                            [-0.651, 0]
                          ],
                          "v": [
                            [-89.228, -67.299],
                            [-87.964, -66.617],
                            [-87.795, -66.61],
                            [-86.255, -67.613],
                            [-87.519, -68.295],
                            [-87.688, -68.303]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.988235294819, 0.376470595598, 0.329411774874, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, -0.052],
                            [-1.271, -1.354],
                            [-0.708, -0.083],
                            [-0.073, 0],
                            [-0.521, 0.781],
                            [-0.031, 0.146],
                            [0.052, 0.042],
                            [0.052, -0.021],
                            [0.625, -0.198],
                            [2.052, 0.438],
                            [0.333, 0.104],
                            [0.042, -0.031]
                          ],
                          "o": [
                            [0.021, 0.135],
                            [0.438, 0.49],
                            [0.083, 0.01],
                            [0.885, 0],
                            [1.01, -1.479],
                            [0.01, -0.063],
                            [-0.052, -0.031],
                            [-0.01, 0],
                            [-0.99, 0.323],
                            [-0.323, -0.052],
                            [-0.052, -0.021],
                            [-0.031, 0.031]
                          ],
                          "v": [
                            [-91.387, -70.803],
                            [-89.762, -66.938],
                            [-88.044, -66.011],
                            [-87.814, -66.001],
                            [-85.721, -67.366],
                            [-84.262, -71.168],
                            [-84.325, -71.324],
                            [-84.491, -71.335],
                            [-85.481, -70.928],
                            [-90.19, -70.72],
                            [-91.179, -70.97],
                            [-91.335, -70.939]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 3",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 3,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 3",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [-87.824, -68.675], "ix": 2 },
              "a": { "a": 0, "k": [-87.824, -68.675], "ix": 1 },
              "s": {
                "a": 1,
                "k": [
                  {
                    "i": { "x": [0.833, 0.833], "y": [0.833, 0.833] },
                    "o": { "x": [0.167, 0.167], "y": [0.167, 0.167] },
                    "t": 123,
                    "s": [100, 20]
                  },
                  { "t": 132, "s": [100, 100] }
                ],
                "ix": 3,
                "x": "var $bm_rt;\nvar fx = effect('Kleaner 2');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
              },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 22",
          "np": 1,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[-103.83, -72.097], [-103.26, -72.255]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[-79.842, -78.747], [-79.272, -78.905]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 5",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 5,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [1.061, 0.059], [0, 0]],
                  "o": [[0, 0], [-0.319, -0.018], [0, 0]],
                  "v": [
                    [-89.925, -77.23],
                    [-87.799, -73.551],
                    [-89.166, -73.44]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 6",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 6,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-0.106, -0.383],
                    [1.017, -0.282],
                    [0.109, 0.393],
                    [-1.017, 0.282]
                  ],
                  "o": [
                    [0.109, 0.393],
                    [-1.017, 0.282],
                    [-0.106, -0.383],
                    [1.017, -0.282]
                  ],
                  "v": [
                    [-92.918, -78.681],
                    [-94.899, -77.445],
                    [-97.434, -77.32],
                    [-95.287, -78.845]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 7",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 7,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-0.106, -0.383],
                    [1.017, -0.282],
                    [0.109, 0.393],
                    [-1.017, 0.282]
                  ],
                  "o": [
                    [0.109, 0.393],
                    [-1.017, 0.282],
                    [-0.106, -0.383],
                    [1.017, -0.282]
                  ],
                  "v": [
                    [-84.433, -81.257],
                    [-86.413, -80.021],
                    [-88.949, -79.896],
                    [-86.801, -81.421]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 8",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 8,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [1.045, 1.663]],
                  "o": [[-1.843, -0.555], [0, 0]],
                  "v": [[-90.932, -84.996], [-95.433, -88.421]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 9",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 9,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [1.68, 0.939]],
                  "o": [[-1.982, 0.013], [0, 0]],
                  "v": [[-90.877, -62.826], [-96.465, -64.27]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 10",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 10,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.77, -1.25],
                    [0.918, 0.042],
                    [5.651, -1.564],
                    [0.96, -0.006],
                    [0, 0],
                    [0, 0],
                    [3.252, 0.948],
                    [0.764, 1.368],
                    [-0.468, 1.617],
                    [0, 0],
                    [0, 0],
                    [0.859, 0.426],
                    [-0.669, 1.321],
                    [-1.001, -0.042],
                    [0, 0],
                    [0.054, 0.699],
                    [-1.854, 0.515],
                    [-1.025, 3.223],
                    [-1.528, 0.421],
                    [-0.77, 0.575],
                    [-0.45, -1.623],
                    [0, 0],
                    [-0.907, -0.61]
                  ],
                  "o": [
                    [-0.551, 0.823],
                    [1.066, 5.663],
                    [-0.966, 0.272],
                    [0, 0],
                    [0, 0],
                    [-0.942, 3.246],
                    [-1.623, -0.468],
                    [-0.746, -1.374],
                    [0, 0],
                    [0, 0],
                    [-0.752, 0.45],
                    [-1.321, -0.664],
                    [0.468, -0.971],
                    [0, 0],
                    [-0.196, -0.705],
                    [1.73, 0.474],
                    [3.495, -0.971],
                    [1.404, 0.427],
                    [0.977, -0.272],
                    [1.019, 1.197],
                    [0, 0],
                    [0.859, -0.557],
                    [1.267, 0.788]
                  ],
                  "v": [
                    [-77.603, -77.289],
                    [-79.979, -76.063],
                    [-87.982, -63.232],
                    [-90.879, -62.823],
                    [-91.199, -61.71],
                    [-92.01, -58.926],
                    [-99.587, -54.749],
                    [-103.254, -57.67],
                    [-103.763, -62.326],
                    [-101.974, -68.51],
                    [-101.524, -70.056],
                    [-104.083, -69.95],
                    [-105.291, -73.551],
                    [-102.839, -75.032],
                    [-103.111, -76.01],
                    [-103.485, -78.125],
                    [-98.029, -78.142],
                    [-90.932, -84.996],
                    [-86.459, -84.949],
                    [-83.823, -86.234],
                    [-81.578, -81.981],
                    [-81.365, -80.986],
                    [-78.439, -80.998]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 11",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 11,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.77, -1.25],
                    [0.918, 0.042],
                    [5.651, -1.564],
                    [0.96, -0.006],
                    [0, 0],
                    [0, 0],
                    [3.252, 0.948],
                    [0.764, 1.368],
                    [-0.468, 1.617],
                    [0, 0],
                    [0, 0],
                    [0.859, 0.426],
                    [-0.669, 1.321],
                    [-1.001, -0.042],
                    [0, 0],
                    [0.054, 0.699],
                    [-1.854, 0.515],
                    [-1.025, 3.223],
                    [-1.528, 0.421],
                    [-0.77, 0.575],
                    [-0.45, -1.623],
                    [0, 0],
                    [-0.907, -0.61]
                  ],
                  "o": [
                    [-0.551, 0.823],
                    [1.066, 5.663],
                    [-0.966, 0.272],
                    [0, 0],
                    [0, 0],
                    [-0.942, 3.246],
                    [-1.623, -0.468],
                    [-0.746, -1.374],
                    [0, 0],
                    [0, 0],
                    [-0.752, 0.45],
                    [-1.321, -0.664],
                    [0.468, -0.971],
                    [0, 0],
                    [-0.196, -0.705],
                    [1.73, 0.474],
                    [3.495, -0.971],
                    [1.404, 0.427],
                    [0.977, -0.272],
                    [1.019, 1.197],
                    [0, 0],
                    [0.859, -0.557],
                    [1.267, 0.788]
                  ],
                  "v": [
                    [-77.603, -77.289],
                    [-79.979, -76.063],
                    [-87.982, -63.232],
                    [-90.879, -62.823],
                    [-91.199, -61.71],
                    [-92.01, -58.926],
                    [-99.587, -54.749],
                    [-103.254, -57.67],
                    [-103.763, -62.326],
                    [-101.974, -68.51],
                    [-101.524, -70.056],
                    [-104.083, -69.95],
                    [-105.291, -73.551],
                    [-102.839, -75.032],
                    [-103.111, -76.01],
                    [-103.485, -78.125],
                    [-98.029, -78.142],
                    [-90.932, -84.996],
                    [-86.459, -84.949],
                    [-83.823, -86.234],
                    [-81.578, -81.981],
                    [-81.365, -80.986],
                    [-78.439, -80.998]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 12",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 12,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-0.456, -1.167],
                    [0.865, -0.498],
                    [2.115, -0.213],
                    [1.967, -0.794],
                    [0.119, -1.351],
                    [-0.148, -0.699],
                    [1.38, -1.214],
                    [0.681, -0.166],
                    [0, 0],
                    [0, 0],
                    [0.859, 0.426],
                    [-0.669, 1.321],
                    [-1.001, -0.042],
                    [0, 0],
                    [0.054, 0.699],
                    [-1.854, 0.515],
                    [-1.025, 3.223],
                    [-1.528, 0.421],
                    [-0.77, 0.575]
                  ],
                  "o": [
                    [-0.569, 0.865],
                    [-1.843, 1.054],
                    [-2.109, 0.219],
                    [-1.262, 0.51],
                    [-0.059, 0.705],
                    [0.379, 1.801],
                    [-0.527, 0.468],
                    [0, 0],
                    [0, 0],
                    [-0.752, 0.45],
                    [-1.321, -0.664],
                    [0.468, -0.971],
                    [0, 0],
                    [-0.196, -0.705],
                    [1.73, 0.474],
                    [3.495, -0.971],
                    [1.404, 0.427],
                    [0.977, -0.272],
                    [0.776, 0.912]
                  ],
                  "v": [
                    [-81.957, -83.112],
                    [-84.244, -81.027],
                    [-90.363, -79.458],
                    [-96.595, -78.296],
                    [-99.243, -75.483],
                    [-98.882, -73.392],
                    [-100.44, -68.362],
                    [-102.294, -67.402],
                    [-101.974, -68.51],
                    [-101.524, -70.056],
                    [-104.083, -69.95],
                    [-105.291, -73.551],
                    [-102.839, -75.032],
                    [-103.111, -76.01],
                    [-103.485, -78.125],
                    [-98.029, -78.142],
                    [-90.932, -84.996],
                    [-86.459, -84.949],
                    [-83.823, -86.234]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.949019610882, 0.627451002598, 0.486274510622, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 13",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 13,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[-1.345, -0.089], [0, 0], [0, 0], [0, 0], [0, 0]],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-2.672, -0.675],
                    [1.86, 0.586]
                  ],
                  "v": [
                    [-90.825, -62.823],
                    [-90.879, -62.823],
                    [-91.199, -61.71],
                    [-91.761, -59.779],
                    [-95.659, -63.86]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.949019610882, 0.627451002598, 0.486274510622, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 14",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 14,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0.77, -1.25],
                    [0.918, 0.042],
                    [5.651, -1.564],
                    [0.942, -0.012],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [3.252, 0.948],
                    [0.764, 1.368],
                    [-0.468, 1.617],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0.859, 0.426],
                    [-0.669, 1.321],
                    [-1.001, -0.042],
                    [0, 0],
                    [0.054, 0.699],
                    [-1.854, 0.515],
                    [-1.025, 3.223],
                    [-1.528, 0.421],
                    [-0.77, 0.575],
                    [-0.456, -1.167],
                    [-0.107, -0.391],
                    [0, 0],
                    [-0.907, -0.61]
                  ],
                  "o": [
                    [-0.551, 0.823],
                    [1.066, 5.663],
                    [-0.948, 0.266],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-0.942, 3.246],
                    [-1.623, -0.468],
                    [-0.746, -1.374],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-0.752, 0.45],
                    [-1.321, -0.664],
                    [0.468, -0.971],
                    [0, 0],
                    [-0.196, -0.705],
                    [1.73, 0.474],
                    [3.495, -0.971],
                    [1.404, 0.427],
                    [0.977, -0.272],
                    [0.776, 0.912],
                    [0.142, 0.361],
                    [0, 0],
                    [0.859, -0.557],
                    [1.267, 0.788]
                  ],
                  "v": [
                    [-77.603, -77.289],
                    [-79.979, -76.063],
                    [-87.982, -63.232],
                    [-90.825, -62.823],
                    [-90.879, -62.823],
                    [-91.199, -61.71],
                    [-91.761, -59.779],
                    [-92.01, -58.926],
                    [-99.587, -54.749],
                    [-103.254, -57.67],
                    [-103.763, -62.326],
                    [-102.294, -67.402],
                    [-101.974, -68.51],
                    [-101.524, -70.056],
                    [-104.083, -69.95],
                    [-105.291, -73.551],
                    [-102.839, -75.032],
                    [-103.111, -76.01],
                    [-103.485, -78.125],
                    [-98.029, -78.142],
                    [-90.932, -84.996],
                    [-86.459, -84.949],
                    [-83.823, -86.234],
                    [-81.957, -83.112],
                    [-81.578, -81.981],
                    [-81.365, -80.986],
                    [-78.439, -80.998]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.733333349228, 0.643137276173, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 15",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 15,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [3.187, -0.889],
                    [0.889, 3.193],
                    [-0.089, 0.752],
                    [0.503, 0.154],
                    [2.991, -1.155],
                    [2.867, -0.794],
                    [0.883, 3.187],
                    [-0.794, 1.351],
                    [0.48, 1.736],
                    [-5.521, 1.528],
                    [-2.34, -1.41],
                    [-2.044, 0.569],
                    [-1.191, -4.307],
                    [0.693, -1.623],
                    [-0.521, -1.884]
                  ],
                  "o": [
                    [-3.205, 0.883],
                    [-0.213, -0.776],
                    [-0.527, -0.047],
                    [-0.924, 2.915],
                    [0.302, 2.861],
                    [-3.199, 0.889],
                    [-0.45, -1.635],
                    [-1.173, -1.208],
                    [-1.528, -5.515],
                    [2.838, -0.788],
                    [1.025, -1.665],
                    [4.283, -1.185],
                    [0.51, 1.831],
                    [1.682, 0.669],
                    [0.883, 3.187]
                  ],
                  "v": [
                    [-81.821, -78.196],
                    [-89.208, -82.378],
                    [-89.386, -84.694],
                    [-90.932, -84.996],
                    [-97.045, -78.474],
                    [-101.411, -72.071],
                    [-108.792, -76.247],
                    [-108.188, -80.885],
                    [-110.741, -85.34],
                    [-103.544, -98.052],
                    [-95.47, -96.957],
                    [-90.766, -100.481],
                    [-80.85, -94.865],
                    [-81.205, -89.552],
                    [-77.645, -85.583]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 16",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 16,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-1.321, -4.099],
                    [3.128, -0.865],
                    [1.025, -1.665],
                    [2.838, -0.788],
                    [-1.528, -5.515],
                    [-0.113, -0.272],
                    [0.367, 1.333],
                    [-5.521, 1.528],
                    [-2.34, -1.41],
                    [-2.044, 0.569]
                  ],
                  "o": [
                    [-1.973, -2.328],
                    [-2.044, 0.569],
                    [-2.34, -1.41],
                    [-5.521, 1.528],
                    [0.077, 0.284],
                    [-0.8, -1.031],
                    [-1.528, -5.515],
                    [2.838, -0.788],
                    [1.025, -1.665],
                    [4.17, -1.155]
                  ],
                  "v": [
                    [-80.95, -95.197],
                    [-89.261, -97.756],
                    [-93.965, -94.231],
                    [-102.039, -95.327],
                    [-109.237, -82.615],
                    [-108.958, -81.78],
                    [-110.741, -85.34],
                    [-103.544, -98.052],
                    [-95.47, -96.957],
                    [-90.766, -100.481]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.901960790157, 0.29411765933, 0.219607844949, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 17",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 17,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[1.331, 1.267], [-3.751, -1.976], [0, 0]],
                  "o": [[0, 0], [0, 0], [-1.921, -0.084]],
                  "v": [
                    [-94.634, -87.36],
                    [-90.932, -82.062],
                    [-89.925, -84.996]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.901960790157, 0.29411765933, 0.219607844949, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 18",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 18,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [3.187, -0.889],
                    [0.889, 3.193],
                    [-0.089, 0.752],
                    [0.503, 0.154],
                    [2.991, -1.155],
                    [2.867, -0.794],
                    [0.883, 3.187],
                    [-0.794, 1.351],
                    [0.48, 1.736],
                    [-5.521, 1.528],
                    [-2.34, -1.41],
                    [-2.044, 0.569],
                    [-1.191, -4.307],
                    [0.693, -1.623],
                    [-0.521, -1.884]
                  ],
                  "o": [
                    [-3.205, 0.883],
                    [-0.213, -0.776],
                    [-0.527, -0.047],
                    [-0.924, 2.915],
                    [0.302, 2.861],
                    [-3.199, 0.889],
                    [-0.45, -1.635],
                    [-1.173, -1.208],
                    [-1.528, -5.515],
                    [2.838, -0.788],
                    [1.025, -1.665],
                    [4.283, -1.185],
                    [0.51, 1.831],
                    [1.682, 0.669],
                    [0.883, 3.187]
                  ],
                  "v": [
                    [-81.821, -78.196],
                    [-89.208, -82.378],
                    [-89.386, -84.694],
                    [-90.932, -84.996],
                    [-97.045, -78.474],
                    [-101.411, -72.071],
                    [-108.792, -76.247],
                    [-108.188, -80.885],
                    [-110.741, -85.34],
                    [-103.544, -98.052],
                    [-95.47, -96.957],
                    [-90.766, -100.481],
                    [-80.85, -94.865],
                    [-81.205, -89.552],
                    [-77.645, -85.583]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.376470595598, 0.329411774874, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 19",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 19,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 24,
      "ty": 4,
      "nm": "aram down",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 1,
                "k": [
                  {
                    "i": { "x": 0.833, "y": 0.833 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 5,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-44.21, -8.06],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-57.203, 5.866],
                          [-49.69, 7.877],
                          [-49.103, 7.56]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.833, "y": 0.833 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 20,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-51.085, -23.185],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-64.078, -9.259],
                          [-56.565, -7.248],
                          [-55.978, -7.565]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.417, "y": 1 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 30,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-51.085, -23.185],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-64.078, -9.259],
                          [-56.565, -7.248],
                          [-55.978, -7.565]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.833, "y": 0.833 },
                    "o": { "x": 0.333, "y": 0 },
                    "t": 45,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-44.21, -8.06],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-57.203, 5.866],
                          [-49.69, 7.877],
                          [-49.103, 7.56]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.833, "y": 0.833 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 73,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-44.21, -8.06],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-57.203, 5.866],
                          [-49.69, 7.877],
                          [-49.103, 7.56]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.833, "y": 0.833 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 88,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-51.085, -23.185],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-64.078, -9.259],
                          [-56.565, -7.248],
                          [-55.978, -7.565]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "i": { "x": 0.417, "y": 1 },
                    "o": { "x": 0.167, "y": 0.167 },
                    "t": 98,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-51.085, -23.185],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-64.078, -9.259],
                          [-56.565, -7.248],
                          [-55.978, -7.565]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "t": 113,
                    "s": [
                      {
                        "i": [
                          [2.876, 5.671],
                          [5.53, 8.773],
                          [5.713, -4.957],
                          [0, 0],
                          [-2.641, 1.427],
                          [0, 0]
                        ],
                        "o": [
                          [-3.877, -7.646],
                          [-6.232, 0.435],
                          [0, 0],
                          [1.576, 2.555],
                          [0, 0],
                          [5.595, -3.022]
                        ],
                        "v": [
                          [-44.21, -8.06],
                          [-59.164, -34.554],
                          [-77.068, -26.34],
                          [-57.203, 5.866],
                          [-49.69, 7.877],
                          [-49.103, 7.56]
                        ],
                        "c": true
                      }
                    ]
                  }
                ],
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.988235294819, 0.733333349228, 0.643137276173, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 25,
      "ty": 4,
      "nm": "Body",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[-77.205, -26.161], [-77.205, -31.49]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-7.63, 10.153],
                    [-6.208, 1.108],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-4.431, -3.169],
                    [-7.712, -11.239]
                  ],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [-1.795, -15.153],
                    [4.532, -6.03],
                    [4.65, -0.829],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [5.308, 1.22],
                    [5.894, 4.212],
                    [3.596, 5.241]
                  ],
                  "v": [
                    [-77.207, -26.162],
                    [-77.456, 3.895],
                    [-129.734, 3.895],
                    [-126.482, -50.178],
                    [-107.531, -59.905],
                    [-99.351, -60.734],
                    [-89.357, -58.435],
                    [-88.51, -58.24],
                    [-87.082, -57.908],
                    [-72.332, -51.256],
                    [-59.147, -34.187]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-2.34, -0.326],
                    [0, 0],
                    [0, 0],
                    [0.35, 8.696],
                    [-2.127, 0.45],
                    [-2.524, 2.097],
                    [-1.078, 2.298],
                    [-1.801, -0.266],
                    [-0.272, -1.268],
                    [-2.837, -3.418],
                    [-6.706, -0.942]
                  ],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [-0.74, -6.238],
                    [1.753, -1.22],
                    [3.211, -0.675],
                    [1.955, -1.617],
                    [0.569, -1.214],
                    [1.682, 0.243],
                    [0.936, 4.336],
                    [4.325, 5.207],
                    [2.316, 0.326]
                  ],
                  "v": [
                    [-77.349, -9.149],
                    [-77.456, 3.895],
                    [-129.734, 3.895],
                    [-131.843, -19.7],
                    [-125.729, -22.039],
                    [-116.559, -25.298],
                    [-113.153, -29.995],
                    [-114.172, -34.989],
                    [-108.124, -28.218],
                    [-101.791, -19.528],
                    [-84.452, -9.866]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0, 0],
                    [4.271, 0],
                    [0.883, 0.261],
                    [1.262, 2.257],
                    [0.095, 1.363],
                    [0, 0],
                    [0, 0]
                  ],
                  "o": [
                    [0, 0],
                    [-1.191, 4.111],
                    [-0.912, 0],
                    [-2.458, -0.711],
                    [-0.681, -1.256],
                    [4.65, -0.829],
                    [0, 0],
                    [0, 0]
                  ],
                  "v": [
                    [-88.51, -58.24],
                    [-88.599, -57.932],
                    [-97.875, -50.948],
                    [-100.583, -51.339],
                    [-106.358, -55.936],
                    [-107.531, -59.905],
                    [-99.351, -60.734],
                    [-89.357, -58.435]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": { "a": 0, "k": [1, 1, 1, 1], "ix": 4 },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-3.353, -4.798],
                    [2.441, 1.546],
                    [4.402, 1.499],
                    [8.317, -0.675],
                    [3.916, -0.456],
                    [0.439, 0.391],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-4.431, -3.169]
                  ],
                  "o": [
                    [-2.269, -1.795],
                    [-3.927, -2.494],
                    [-7.902, -2.683],
                    [-3.963, 0.32],
                    [-1.137, 0.13],
                    [10.047, -7.352],
                    [0, 0],
                    [0, 0],
                    [5.308, 1.22],
                    [1.973, 1.41]
                  ],
                  "v": [
                    [-64.039, -41.375],
                    [-71.076, -46.44],
                    [-83.641, -52.441],
                    [-108.319, -55.497],
                    [-119.971, -53.507],
                    [-122.288, -53.957],
                    [-99.351, -60.734],
                    [-89.357, -58.435],
                    [-87.082, -57.908],
                    [-72.332, -51.256]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 5",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 5,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [0.35, 8.696],
                    [-5, 5.557],
                    [-1.475, 1.078],
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-4.431, -3.169],
                    [-3.353, -4.798],
                    [-5, -9.614]
                  ],
                  "o": [
                    [0, 0],
                    [0, 0],
                    [0, 0],
                    [-0.74, -6.238],
                    [-0.503, -12.428],
                    [1.303, -1.451],
                    [10.047, -7.352],
                    [0, 0],
                    [0, 0],
                    [5.308, 1.22],
                    [1.973, 1.41],
                    [6.67, 9.531],
                    [2.932, 5.639]
                  ],
                  "v": [
                    [-77.207, -26.162],
                    [-77.349, -9.149],
                    [-77.456, 3.895],
                    [-129.734, 3.895],
                    [-131.843, -19.7],
                    [-126.482, -50.178],
                    [-122.288, -53.957],
                    [-99.351, -60.734],
                    [-89.357, -58.435],
                    [-87.082, -57.908],
                    [-72.332, -51.256],
                    [-64.039, -41.375],
                    [-59.101, -33.846]
                  ],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.552941203117, 0.584313750267, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 6",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 6,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 26,
      "ty": 4,
      "nm": "leg",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [-5.735, 0],
                            [0, 0],
                            [-1.179, 2.739],
                            [0, 0],
                            [-0.653, 5.281],
                            [0, 0],
                            [0, 0],
                            [-0.733, -21.778],
                            [1.581, -2.829],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [2.982, 0],
                            [0, 0],
                            [2.069, -4.902],
                            [0, 0],
                            [0, 0],
                            [-10.84, 27.144],
                            [0.109, 3.239],
                            [0, 0],
                            [-2.849, 4.977]
                          ],
                          "v": [
                            [-167.522, 148.329],
                            [-138.87, 148.329],
                            [-132.013, 143.815],
                            [-109.531, 91.571],
                            [-105.429, 76.223],
                            [-96.483, 3.896],
                            [-129.749, 3.896],
                            [-141.226, 74.543],
                            [-143.466, 83.818],
                            [-174, 137.155]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "st",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 3
                      },
                      "o": { "a": 0, "k": 100, "ix": 4 },
                      "w": { "a": 0, "k": 1.025, "ix": 5 },
                      "lc": 2,
                      "lj": 2,
                      "bm": 0,
                      "nm": "Stroke 1",
                      "mn": "ADBE Vector Graphic - Stroke",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [0, 0],
                            [5.663, -1.522],
                            [2.263, -8.175],
                            [-1.694, -10.58],
                            [16.433, -15.734],
                            [-5.041, -4.733],
                            [-3.868, -1.7],
                            [-0.865, -3.815],
                            [0.201, 0],
                            [0, 0],
                            [-2.849, 4.976],
                            [0, 0],
                            [0.107, 3.24],
                            [-10.835, 27.143]
                          ],
                          "o": [
                            [0, 0],
                            [-4.567, -2.038],
                            [-8.193, 2.198],
                            [-2.849, 10.331],
                            [3.602, 22.463],
                            [-4.994, 4.775],
                            [3.081, 2.891],
                            [3.614, 1.588],
                            [-0.196, 0.018],
                            [0, 0],
                            [-5.734, 0],
                            [0, 0],
                            [1.582, -2.831],
                            [-0.735, -21.776],
                            [0, 0]
                          ],
                          "v": [
                            [-96.483, 3.895],
                            [-97.378, 11.122],
                            [-112.442, 9.86],
                            [-129.704, 26.986],
                            [-126.766, 58.679],
                            [-147.665, 120.891],
                            [-158.352, 137.785],
                            [-145.924, 139.817],
                            [-138.27, 148.306],
                            [-138.868, 148.33],
                            [-167.522, 148.33],
                            [-174.003, 137.158],
                            [-143.465, 83.819],
                            [-141.226, 74.543],
                            [-129.752, 3.895]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.278431385756, 0.713725507259, 0.764705896378, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [2.073, -4.905],
                            [0, 0],
                            [2.737, -0.219],
                            [0.201, 0],
                            [0, 0],
                            [-2.849, 4.976],
                            [0, 0],
                            [0.107, 3.24],
                            [-10.835, 27.143]
                          ],
                          "o": [
                            [0, 0],
                            [0, 0],
                            [-0.652, 5.278],
                            [0, 0],
                            [-1.102, 2.553],
                            [-0.196, 0.018],
                            [0, 0],
                            [-5.734, 0],
                            [0, 0],
                            [1.582, -2.831],
                            [-0.735, -21.776],
                            [0, 0]
                          ],
                          "v": [
                            [-96.483, 3.895],
                            [-97.378, 11.122],
                            [-105.428, 76.225],
                            [-109.534, 91.574],
                            [-132.015, 143.816],
                            [-138.27, 148.306],
                            [-138.868, 148.33],
                            [-167.522, 148.33],
                            [-174.003, 137.158],
                            [-143.465, 83.819],
                            [-141.226, 74.543],
                            [-129.752, 3.895]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [0.40000000596, 0.827450990677, 0.847058832645, 1],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 3",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 3,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0.72, -3.465],
                            [0, 0],
                            [0.577, 0.12],
                            [0, 0],
                            [-0.162, 0.593],
                            [-0.485, 3.302],
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [-0.12, 0.577],
                            [0, 0],
                            [-0.602, -0.125],
                            [0.267, -0.978],
                            [0.914, -6.224],
                            [10.744, 8.861],
                            [0, 0],
                            [0, 0],
                            [3.156, 1.61]
                          ],
                          "v": [
                            [-130.741, 173.83],
                            [-130.757, 173.911],
                            [-132.02, 174.739],
                            [-170.344, 166.772],
                            [-171.159, 165.454],
                            [-170.009, 159.357],
                            [-164.906, 152.228],
                            [-147.739, 154.602],
                            [-143.727, 160.519],
                            [-134.856, 165.234]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [[0, 0], [10.745, 8.859], [0, 0], [0, 0]],
                          "o": [[0, 0], [0, 0], [0, 0], [0, 0]],
                          "v": [
                            [-147.737, 154.602],
                            [-164.906, 152.229],
                            [-163.695, 143.169],
                            [-146.859, 146.678]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "st",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 3
                      },
                      "o": { "a": 0, "k": 100, "ix": 4 },
                      "w": { "a": 0, "k": 1.025, "ix": 5 },
                      "lc": 2,
                      "lj": 2,
                      "bm": 0,
                      "nm": "Stroke 1",
                      "mn": "ADBE Vector Graphic - Stroke",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [0, 0],
                            [1.641, 0.575],
                            [2.109, -1.066],
                            [1.137, -0.746],
                            [0.728, 0.604],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [-1.7, -0.219],
                            [-2.233, -0.782],
                            [-1.232, 0.622],
                            [-0.687, -0.462],
                            [0, 0],
                            [0, 0]
                          ],
                          "v": [
                            [-146.859, 146.677],
                            [-147.57, 153.116],
                            [-152.576, 151.635],
                            [-159.471, 151.357],
                            [-162.771, 153.827],
                            [-164.903, 152.228],
                            [-163.695, 143.17]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.949019610882, 0.627451002598, 0.486274510622, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 3",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 3,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [9.454, 6.409],
                            [0.728, 0.604],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [-0.687, -0.462],
                            [0, 0],
                            [0, 0]
                          ],
                          "v": [
                            [-146.859, 146.677],
                            [-147.57, 153.116],
                            [-147.736, 154.603],
                            [-162.771, 153.827],
                            [-164.903, 152.228],
                            [-163.695, 143.17]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.988235294819, 0.733333349228, 0.643137276173, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 4",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 4,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 2",
              "np": 4,
              "cix": 2,
              "bm": 0,
              "ix": 2,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [-128.741, 4.328], "ix": 2 },
              "a": { "a": 0, "k": [-128.741, 4.328], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": {
                "a": 1,
                "k": [
                  {
                    "i": { "x": [0.833], "y": [0.833] },
                    "o": { "x": [0.167], "y": [0.167] },
                    "t": 4,
                    "s": [0]
                  },
                  {
                    "i": { "x": [0.833], "y": [0.833] },
                    "o": { "x": [0.167], "y": [0.167] },
                    "t": 20,
                    "s": [10]
                  },
                  {
                    "i": { "x": [0.667], "y": [1] },
                    "o": { "x": [0.167], "y": [0.167] },
                    "t": 30,
                    "s": [10]
                  },
                  { "t": 45, "s": [0] }
                ],
                "ix": 6,
                "x": "var $bm_rt;\nvar fx = effect('Kleaner');\nvar doAnticipation = fx(1).value;\nvar doInterpolation = fx(2).value;\nvar doFollowThrough = fx(3).value;\nvar damping = $bm_div(fx(15).value, 10);\nvar elasticity = $bm_div(fx(13).value, 10);\nvar bounce = fx(17).value;\nvar anticipationDuration = fx(5).value;\nvar anticipationQuantity = $bm_div(fx(6).value, 100);\nvar slowIn = $bm_div(fx(9).value, 100);\nvar slowOut = $bm_div(fx(10).value, 100);\nvar spatialMode = fx(21).value;\nvar spatialDoInterpolation = fx(20).value;\nvar moBlurPrecision = fx(32).value;\nvar elasticityRandom = fx(14).value;\nvar dampingRandom = fx(16).value;\nvar softBody = fx(28).value;\nvar flexibility = $bm_div(fx(29).value, 100);\nvar doOverlap = fx(23).value;\nvar overlapDuration = fx(24).value;\nvar overlapRandom = fx(25).value;\nvar threshold = $bm_div($bm_div(1, moBlurPrecision), 1000);\nvar zeroValue;\nif ($bm_isInstanceOfArray(value)) {\n    if (value.length == 2)\n        zeroValue = [\n            0,\n            0\n        ];\n    else if (value.length == 3)\n        zeroValue = [\n            0,\n            0,\n            0\n        ];\n    else if (value.length == 4)\n        zeroValue = [\n            0,\n            0,\n            0,\n            0\n        ];\n} else\n    zeroValue = 0;\nvar isThisSpatial = isSpatial(thisProperty);\nvar isThisPosition = thisProperty === $bm_transform.position;\nvar simulate = false;\nif (isThisSpatial) {\n    doInterpolation = doInterpolation && spatialDoInterpolation;\n    if (isThisPosition && thisProperty.numKeys > 0) {\n        doOverlap = false;\n        simulate = false;\n    } else {\n        simulate = spatialMode == 2;\n        doOverlap = overlapDuration != 0 && doOverlap && simulate;\n    }\n} else {\n    doOverlap = false;\n}\nif (!doOverlap) {\n    overlapDuration = 0;\n}\nif (simulate && softBody && isThisSpatial && !isThisPosition && (doFollowThrough || doOverlap)) {\n    var distanceRatio = $bm_div(length(valueAtTime(0), $bm_transform.anchorPoint), $bm_div(thisLayer.width, 2));\n    distanceRatio = $bm_div($bm_sum(1, $bm_mul(distanceRatio, flexibility)), 2);\n    if (doFollowThrough) {\n        elasticity = $bm_div(elasticity, distanceRatio);\n        damping = $bm_div(damping, distanceRatio);\n    }\n    if (doOverlap) {\n        overlapDuration = $bm_mul(overlapDuration, distanceRatio);\n    }\n}\nseedRandom(0, true);\nif (doFollowThrough) {\n    if (elasticityRandom > 0)\n        elasticity = addNoise(elasticity, elasticityRandom);\n    if (dampingRandom > 0)\n        damping = addNoise(damping, dampingRandom);\n}\nif (doOverlap) {\n    if (doOverlap && overlapRandom > 0)\n        overlapDuration = addNoise(overlapDuration, overlapRandom);\n}\nvar result = value;\nfunction isSpatial(prop) {\n    if (!(prop.value instanceof Array))\n        return false;\n    if (prop.value.length != 2 && prop.value.length != 3)\n        return false;\n    try {\n        if (typeof prop.speed !== 'undefined')\n            return true;\n    } catch (e) {\n        return false;\n    }\n}\nfunction addNoise(val, quantity) {\n    var randomValue = random(0.9, 1.1);\n    var noiseValue = noise($bm_mul(valueAtTime(0), randomValue));\n    noiseValue = $bm_mul(noiseValue, $bm_div(quantity, 100));\n    return $bm_mul(val, $bm_sum(noiseValue, 1));\n}\nfunction isAfterLastKey() {\n    if (numKeys == 0)\n        return false;\n    var nKey = nearestKey(time);\n    return nKey.time <= time && nKey.index == numKeys;\n}\nfunction isStill(t, threshold) {\n    var d = $bm_sub(valueAtTime(t), valueAtTime($bm_sum(t, framesToTime(1))));\n    if ($bm_isInstanceOfArray(d)) {\n        for (var i = 0; i < d.length; i++) {\n            d[i] = Math.abs(d[i]);\n            if (d[i] >= threshold) {\n                return false;\n            }\n        }\n        return true;\n    } else {\n        d = Math.abs(d);\n        return d < threshold;\n    }\n}\nfunction bezierInterpolation(t, tMin, tMax, value1, value2, bezierPoints) {\n    if (arguments.length !== 5 && arguments.length !== 6)\n        return t;\n    var a = $bm_sub(value2, value1);\n    var b = $bm_sub(tMax, tMin);\n    if (b == 0)\n        return t;\n    var c = clamp($bm_div($bm_sub(t, tMin), b), 0, 1);\n    if (!(bezierPoints instanceof Array) || bezierPoints.length !== 4)\n        bezierPoints = [\n            0.33,\n            0,\n            0.66,\n            1\n        ];\n    return $bm_sum($bm_mul(a, h(c, bezierPoints)), value1);\n    function h(f, g) {\n        var x = $bm_mul(3, g[0]);\n        var j = $bm_sub($bm_mul(3, $bm_sub(g[2], g[0])), x);\n        var k = $bm_sub($bm_sub(1, x), j);\n        var l = $bm_mul(3, g[1]);\n        var m = $bm_sub($bm_mul(3, $bm_sub(g[3], g[1])), l);\n        var n = $bm_sub($bm_sub(1, l), m);\n        var d = f;\n        for (var i = 0; i < 5; i++) {\n            var z = $bm_sub($bm_mul(d, $bm_sum(x, $bm_mul(d, $bm_sum(j, $bm_mul(d, k))))), f);\n            if (Math.abs(z) < 0.001)\n                break;\n            d = $bm_sub(d, $bm_div(z, $bm_sum(x, $bm_mul(d, $bm_sum($bm_mul(2, j), $bm_mul($bm_mul(3, k), d))))));\n        }\n        return $bm_mul(d, $bm_sum(l, $bm_mul(d, $bm_sum(m, $bm_mul(d, n)))));\n    }\n}\nfunction getPropWorldSpeed(t, prop) {\n    return length(getPropWorldVelocity(t, prop));\n}\nfunction getPrevKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time <= t)\n        return nKey;\n    if (nKey.index > 1)\n        return key($bm_sub(nKey.index, 1));\n    return null;\n}\nfunction getNextKey(t) {\n    if (numKeys == 0)\n        return null;\n    var nKey = nearestKey(t);\n    if (nKey.time >= t)\n        return nKey;\n    if (nKey.index < numKeys)\n        return key($bm_sum(nKey.index, 1));\n    return null;\n}\nfunction getPropWorldVelocity(t, prop) {\n    return $bm_mul($bm_sub(getPropWorldValue($bm_sum(t, 0.005), prop), getPropWorldValue($bm_sub(t, 0.005), prop)), 100);\n}\nfunction getLayerWorldPos(t, l) {\n    return l.toWorld(l.anchorPoint, t);\n}\nfunction getPropWorldValue(t, prop) {\n    if (isPosition(prop))\n        return getLayerWorldPos(t, thisLayer);\n    return thisLayer.toWorld(prop.valueAtTime(t), t);\n}\nfunction isPosition(prop) {\n    return prop === $bm_transform.position;\n}\nfunction isKeyTop(k, axis) {\n    var prevSpeed = velocityAtTime($bm_sub(k.time, threshold));\n    var nextSpeed = velocityAtTime($bm_sum(k.time, threshold));\n    if ($bm_isInstanceOfArray(value)) {\n        prevSpeed = prevSpeed[axis];\n        nextSpeed = nextSpeed[axis];\n    }\n    if (Math.abs(prevSpeed) < 0.01 || Math.abs(nextSpeed) < 0.01)\n        return true;\n    return $bm_mul(prevSpeed, nextSpeed) < 0;\n}\nfunction anticipate() {\n    var anticipation = zeroValue;\n    if (isAfterLastKey())\n        return anticipation;\n    if (numKeys < 2)\n        return anticipation;\n    var nextKey = getNextKey(time);\n    var aKey = nextKey;\n    if (!isStill(aKey.time - 0.1, 0.1)) {\n        aKey = getPrevKey(time);\n        if (!isStill(aKey.time - 0.1, 0.1))\n            return anticipation;\n    }\n    if (aKey.index == numKeys)\n        return anticipation;\n    var anticipationMiddle = aKey.time;\n    var anticipationStart = $bm_sub(anticipationMiddle, anticipationDuration);\n    var anticipationEnd = key(aKey.index + 1).time;\n    var startValue = anticipation;\n    var midValue = $bm_mul($bm_sum($bm_neg(valueAtTime($bm_sum(anticipationMiddle, anticipationDuration))), aKey.value), anticipationQuantity);\n    var endValue = anticipation;\n    if (time < anticipationStart) {\n        return anticipation;\n    } else if (time < anticipationMiddle) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue[i], midValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationStart, anticipationMiddle, startValue, midValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else if (time <= anticipationEnd) {\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < value.length; i++) {\n                anticipation[i] = bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue[i], endValue[i], [\n                    slowOut,\n                    0,\n                    slowIn,\n                    1\n                ]);\n            }\n            return anticipation;\n        } else {\n            return bezierInterpolation(time, anticipationMiddle, anticipationEnd, midValue, endValue, [\n                slowOut,\n                0,\n                slowIn,\n                1\n            ]);\n        }\n    } else {\n        return anticipation;\n    }\n}\nfunction followThroughAtTime(t) {\n    var fThrough = zeroValue;\n    if (elasticity == 0)\n        return fThrough;\n    var propSpeed;\n    if (!simulate) {\n        if (numKeys < 2)\n            return fThrough;\n        if (nearestKey(t).index == 1)\n            return fThrough;\n        propSpeed = length(velocityAtTime(t));\n        if (propSpeed >= threshold)\n            return fThrough;\n    } else {\n        propSpeed = getPropWorldSpeed(t, thisProperty);\n        if (propSpeed >= threshold)\n            return fThrough;\n    }\n    var fThroughStart = 0;\n    var fThroughTime = 0;\n    if (simulate) {\n        var speedI = getPropWorldSpeed(t, thisProperty);\n        var i = t;\n        while (speedI < threshold && i > 0) {\n            i = $bm_sub(i, $bm_div(thisComp.frameDuration, moBlurPrecision));\n            speedI = getPropWorldSpeed(i, thisProperty);\n        }\n        fThroughStart = i;\n    } else {\n        var fThroughKey = getPrevKey(t);\n        fThroughStart = fThroughKey.time;\n    }\n    if (fThroughStart == 0)\n        return fThrough;\n    fThroughTime = $bm_sub(t, fThroughStart);\n    if (simulate)\n        fThrough = $bm_div(getPropWorldVelocity($bm_sub(fThroughStart, thisComp.frameDuration), thisProperty), 2);\n    else\n        fThrough = $bm_div(velocityAtTime($bm_sub(fThroughStart, thisComp.frameDuration)), 2);\n    if (bounce) {\n        var cycleDamp = Math.exp($bm_mul($bm_mul(fThroughTime, damping), 0.1));\n        var damp = $bm_div(Math.exp($bm_mul(fThroughTime, damping)), $bm_div(elasticity, 2));\n        var cycleDuration = $bm_div(1, $bm_mul(elasticity, 2));\n        cycleDuration = Math.round(timeToFrames(cycleDuration));\n        cycleDuration = framesToTime(cycleDuration);\n        var midDuration = $bm_div(cycleDuration, 2);\n        var maxValue = $bm_mul(fThrough, midDuration);\n        var cycvarime = fThroughTime;\n        var numEndCycles = 1;\n        while (cycvarime > cycleDuration) {\n            cycvarime = $bm_sub(cycvarime, cycleDuration);\n            cycleDuration = $bm_div(cycleDuration, cycleDamp);\n            cycleDuration = Math.round(timeToFrames(cycleDuration));\n            if (cycleDuration < 2) {\n                cycleDuration = 2;\n                numEndCycles++;\n            }\n            cycleDuration = framesToTime(cycleDuration);\n            midDuration = $bm_div(cycleDuration, 2);\n            maxValue = $bm_div($bm_mul(fThrough, midDuration), damp);\n            if (numEndCycles > 100 / damping && maxValue < threshold)\n                return zeroValue;\n        }\n        if (cycvarime < midDuration)\n            fThrough = bezierInterpolation(cycvarime, 0, midDuration, 0, maxValue, [\n                0,\n                0.1,\n                slowIn,\n                1\n            ]);\n        else\n            fThrough = bezierInterpolation(cycvarime, midDuration, cycleDuration, maxValue, 0, [\n                $bm_sub(1, slowIn),\n                0,\n                1,\n                0.9\n            ]);\n    } else {\n        var damp = Math.exp($bm_mul(fThroughTime, damping));\n        var sinus = $bm_mul($bm_mul($bm_mul(elasticity, fThroughTime), 2), Math.PI);\n        sinus = Math.sin(sinus);\n        sinus = $bm_mul($bm_div(0.3, elasticity), sinus);\n        sinus = $bm_div(sinus, damp);\n        if (Math.abs(sinus) < $bm_div(threshold, 100))\n            return 0;\n        fThrough = $bm_mul(fThrough, sinus);\n        if (threshold > 0) {\n            fThrough = $bm_mul(fThrough, $bm_sub(1, $bm_div(propSpeed, threshold)));\n        }\n    }\n    if (bounce) {\n        var prevValue = valueAtTime($bm_sub(fThroughStart, thisComp.frameDuration));\n        var startValue = valueAtTime(fThroughStart);\n        if ($bm_isInstanceOfArray(value)) {\n            for (var i = 0; i < prevValue.length; i++) {\n                if (prevValue[i] > startValue[i])\n                    fThrough[i] = Math.abs(fThrough[i]);\n                if (prevValue[i] < startValue[i])\n                    fThrough[i] = $bm_neg(Math.abs(fThrough[i]));\n            }\n        } else {\n            if (prevValue > startValue)\n                fThrough = Math.abs(fThrough);\n            if (prevValue < startValue)\n                fThrough = $bm_neg(Math.abs(fThrough));\n        }\n    }\n    if (simulate) {\n        if (!isThisPosition) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer));\n            fThrough = $bm_sub(thisLayer.fromWorld(fThrough), thisLayer.anchorPoint);\n        } else if (thisLayer.hasParent) {\n            fThrough = $bm_sum(fThrough, getLayerWorldPos(time, thisLayer.parent));\n            fThrough = $bm_sub(thisLayer.parent.fromWorld(fThrough), thisLayer.parent.anchorPoint);\n        }\n    }\n    return fThrough;\n}\nfunction followThrough() {\n    var propSpeed = length(velocity);\n    if (propSpeed < threshold)\n        return followThroughAtTime($bm_sub(time, overlapDuration));\n    var fThrough = zeroValue;\n    var t = time;\n    while (t > 0) {\n        t = $bm_sub(t, thisComp.frameDuration);\n        if (simulate)\n            propSpeed = getPropWorldSpeed($bm_sub(t, overlapDuration), thisProperty);\n        else\n            propSpeed = length(velocityAtTime(t));\n        if (propSpeed < threshold) {\n            fThrough = followThroughAtTime($bm_sub(t, overlapDuration));\n            break;\n        }\n    }\n    return linear(time, t, $bm_sum(t, $bm_mul(anticipationDuration, 2)), fThrough, zeroValue);\n}\nfunction smartSmooth(axis) {\n    var startKey = nearestKey(time);\n    var endKey = startKey;\n    if (time == startKey.time)\n        return 0;\n    if (time < startKey.time && startKey.index == 1)\n        return 0;\n    if (time > startKey.time && startKey.index == numKeys)\n        return 0;\n    if (time < startKey.time)\n        startKey = key($bm_sub(startKey.index, 1));\n    if (time > startKey.time)\n        endKey = key($bm_sum(startKey.index, 1));\n    var sI = 0.66;\n    var sO = 0.33;\n    var sIV = 1;\n    var sOV = 0;\n    var sVal = startKey.value;\n    var eVal = endKey.value;\n    if ($bm_isInstanceOfArray(value)) {\n        sVal = sVal[axis];\n        eVal = eVal[axis];\n    }\n    var sTime = startKey.time;\n    var eTime = endKey.time;\n    if (isKeyTop(startKey, axis))\n        sO = slowOut;\n    else {\n        var prevKey = key($bm_sub(startKey.index, 1));\n        var pVal = prevKey.value;\n        if ($bm_isInstanceOfArray(value))\n            pVal = pVal[axis];\n        sOV = $bm_div($bm_sub(sVal, pVal), $bm_sub(eVal, pVal));\n    }\n    if (isKeyTop(endKey, axis)) {\n        sI = slowIn;\n        if (endKey.index != numKeys) {\n            var nextKey = key($bm_sum(endKey.index, 1));\n            var nVal = nextKey.value;\n            if ($bm_isInstanceOfArray(value))\n                nVal = nVal[axis];\n            if (Math.abs(nVal - eVal) < 0.01 && doFollowThrough)\n                sI = 1;\n        }\n    } else {\n        var nextKey = key($bm_sum(endKey.index, 1));\n        var nVal = nextKey.value;\n        if ($bm_isInstanceOfArray(value))\n            nVal = nVal[axis];\n        sIV = $bm_div($bm_sub(eVal, sVal), $bm_sub(nVal, sVal));\n    }\n    if (endKey.index == numKeys && doFollowThrough) {\n        sI = 1;\n    }\n    var val = value;\n    if ($bm_isInstanceOfArray(value))\n        val = val[axis];\n    return $bm_sub(bezierInterpolation(time, sTime, eTime, sVal, eVal, [\n        sO,\n        sOV,\n        sI,\n        sIV\n    ]), val);\n}\nfunction overlap() {\n    var ol = zeroValue;\n    if (isThisPosition && !hasParent)\n        return zeroValue;\n    ol = $bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisProperty), getPropWorldValue(time, thisProperty));\n    var motionRatio = $bm_div($bm_div(length(zeroValue, ol), thisLayer.width), 2);\n    if (isThisPosition) {\n        var originalDistance = length(valueAtTime(0));\n        motionRatio = $bm_div(length(zeroValue, ol), thisComp.width);\n    }\n    ol = $bm_sum(ol, getPropWorldValue(time, thisProperty));\n    ol = $bm_sum(ol, $bm_mul($bm_mul($bm_sub(getPropWorldValue($bm_sub(time, overlapDuration), thisLayer.anchorPoint), ol), motionRatio), flexibility));\n    ol = thisLayer.fromWorld(ol);\n    if (!isThisPosition)\n        ol = $bm_sub(ol, value);\n    else {\n        ol = linear(flexibility, 0, 100, $bm_div(ol, 2), 0);\n        var prevParentWorldPos = getLayerWorldPos($bm_sub(time, overlapDuration), parent);\n        ol = $bm_sum(ol, $bm_mul($bm_mul($bm_mul(thisLayer.fromWorld(prevParentWorldPos), motionRatio), flexibility), 5));\n    }\n    return ol;\n}\nvar okToGo = false;\nif (simulate && fx.enabled)\n    okToGo = true;\nelse if (numKeys > 1 && fx.enabled)\n    okToGo = true;\nif (okToGo) {\n    var smartSmoothResult = zeroValue;\n    if (doInterpolation) {\n        if ($bm_isInstanceOfArray(value)) {\n            if (value.length == 2)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1)\n                ];\n            else if (value.length == 3)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2)\n                ];\n            else if (value.length == 4)\n                smartSmoothResult = [\n                    smartSmooth(0),\n                    smartSmooth(1),\n                    smartSmooth(2),\n                    smartSmooth(3)\n                ];\n        } else {\n            smartSmoothResult = smartSmooth(0);\n        }\n    }\n    if (doAnticipation)\n        result = $bm_sum(result, anticipate());\n    result = $bm_sum(result, smartSmoothResult);\n    if (doFollowThrough)\n        result = $bm_sum(result, followThrough());\n    if (doOverlap)\n        result = $bm_sum(result, overlap());\n}\n$bm_rt = result;"
              },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0.661, -2.796],
                            [0, 0],
                            [-4.817, 0],
                            [0, 0],
                            [-0.392, 3.807],
                            [0, 0],
                            [0.717, 4.425],
                            [0, 0],
                            [0, 0],
                            [-10.643, -27.599]
                          ],
                          "o": [
                            [0, 0],
                            [-1.109, 4.688],
                            [0, 0],
                            [3.827, 0],
                            [0, 0],
                            [0.572, -4.446],
                            [0, 0],
                            [0, 0],
                            [-1.486, 20.659],
                            [1.034, 2.681]
                          ],
                          "v": [
                            [-96.711, 84.843],
                            [-110.265, 142.168],
                            [-103.001, 151.351],
                            [-79.04, 151.351],
                            [-71.614, 144.65],
                            [-65.794, 88.147],
                            [-66.014, 74.772],
                            [-77.505, 3.896],
                            [-111.284, 3.896],
                            [-97.287, 76.434]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "st",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 3
                      },
                      "o": { "a": 0, "k": 100, "ix": 4 },
                      "w": { "a": 0, "k": 1.025, "ix": 5 },
                      "lc": 2,
                      "lj": 2,
                      "bm": 0,
                      "nm": "Stroke 1",
                      "mn": "ADBE Vector Graphic - Stroke",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [-4.348, -4.17],
                            [-0.361, -0.924],
                            [0.729, 0],
                            [0, 0],
                            [-1.108, 4.686],
                            [0, 0],
                            [1.037, 2.684],
                            [-1.487, 20.662],
                            [0, 0],
                            [0, 0],
                            [4.579, -5.616],
                            [-4.283, -10.29],
                            [-2.002, -10.965],
                            [6.576, -8.572],
                            [1.812, -3.773],
                            [-3.063, -2.855]
                          ],
                          "o": [
                            [0.734, 0.699],
                            [-0.669, 0.195],
                            [0, 0],
                            [-4.816, 0],
                            [0, 0],
                            [0.657, -2.796],
                            [-10.639, -27.599],
                            [0, 0],
                            [0, 0],
                            [-5.995, 4.105],
                            [-7.044, 8.631],
                            [4.283, 10.284],
                            [1.931, 10.622],
                            [-2.547, 3.323],
                            [-1.813, 3.773],
                            [4.407, 4.117]
                          ],
                          "v": [
                            [-78.57, 148.579],
                            [-76.929, 151.049],
                            [-79.038, 151.351],
                            [-102.999, 151.351],
                            [-110.268, 142.169],
                            [-96.709, 84.844],
                            [-97.289, 76.432],
                            [-111.281, 3.895],
                            [-77.504, 3.895],
                            [-75.566, 15.826],
                            [-93.367, 28.1],
                            [-94.475, 59.875],
                            [-81.638, 90.632],
                            [-89.031, 121.211],
                            [-96.507, 131.263],
                            [-95.393, 142.939]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.278431385756, 0.713725507259, 0.764705896378, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0.569, -4.449],
                            [0, 0],
                            [2.838, -0.835],
                            [0.729, 0],
                            [0, 0],
                            [-1.108, 4.686],
                            [0, 0],
                            [1.037, 2.684],
                            [-1.487, 20.662],
                            [0, 0],
                            [0, 0],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [-0.314, 3.075],
                            [-0.669, 0.195],
                            [0, 0],
                            [-4.816, 0],
                            [0, 0],
                            [0.657, -2.796],
                            [-10.639, -27.599],
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [0.717, 4.425]
                          ],
                          "v": [
                            [-65.792, 88.15],
                            [-71.615, 144.651],
                            [-76.929, 151.049],
                            [-79.038, 151.351],
                            [-102.999, 151.351],
                            [-110.268, 142.169],
                            [-96.709, 84.844],
                            [-97.289, 76.432],
                            [-111.281, 3.895],
                            [-77.504, 3.895],
                            [-75.566, 15.826],
                            [-66.011, 74.774]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [0.40000000596, 0.827450990677, 0.847058832645, 1],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 3",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 3,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 1",
              "np": 3,
              "cix": 2,
              "bm": 0,
              "ix": 1,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "gr",
              "it": [
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [-0.002, -3.539],
                            [0, 0],
                            [0.59, 0],
                            [0, 0],
                            [-0.037, 0.613],
                            [0.199, 3.331],
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [0, 0]
                          ],
                          "o": [
                            [0, 0],
                            [0, 0.59],
                            [0, 0],
                            [-0.614, 0],
                            [0.062, -1.012],
                            [-0.375, -6.279],
                            [12.326, 6.483],
                            [0, 0],
                            [0, 0],
                            [3.418, 0.932]
                          ],
                          "v": [
                            [-60.524, 173.591],
                            [-60.524, 173.674],
                            [-61.591, 174.742],
                            [-100.735, 174.762],
                            [-101.801, 173.637],
                            [-101.92, 167.434],
                            [-98.378, 159.414],
                            [-81.088, 158.235],
                            [-75.953, 163.21],
                            [-66.307, 166.015]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 1",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 1,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [[0, 0], [12.326, 6.48], [0, 0], [0, 0]],
                          "o": [[0, 0], [0, 0], [0, 0], [0, 0]],
                          "v": [
                            [-81.816, 158.235],
                            [-99.108, 159.414],
                            [-99.771, 150.299],
                            [-82.573, 150.299]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "st",
                      "c": {
                        "a": 0,
                        "k": [
                          0.066666670144, 0.145098045468, 0.266666680574, 1
                        ],
                        "ix": 3
                      },
                      "o": { "a": 0, "k": 100, "ix": 4 },
                      "w": { "a": 0, "k": 1.025, "ix": 5 },
                      "lc": 2,
                      "lj": 2,
                      "bm": 0,
                      "nm": "Stroke 1",
                      "mn": "ADBE Vector Graphic - Stroke",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 2",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 2,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [0.231, 0.053],
                            [1.558, 0.065],
                            [0.752, -1.363],
                            [0.492, -0.865],
                            [1.445, -0.03],
                            [0.93, 0.361],
                            [0, 0],
                            [0, 0]
                          ],
                          "o": [
                            [-0.231, -0.041],
                            [-1.523, -0.343],
                            [-1.552, -0.065],
                            [-0.486, 0.871],
                            [-0.717, 1.256],
                            [-1.001, 0.018],
                            [0, 0],
                            [0, 0],
                            [0, 0]
                          ],
                          "v": [
                            [-82.26, 153.584],
                            [-82.953, 153.442],
                            [-87.515, 152.471],
                            [-91.537, 154.331],
                            [-92.538, 157.145],
                            [-96.258, 158.975],
                            [-99.179, 158.436],
                            [-99.771, 150.297],
                            [-82.574, 150.297]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.949019610882, 0.627451002598, 0.486274510622, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 3",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 3,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "gr",
                  "it": [
                    {
                      "ind": 0,
                      "ty": "sh",
                      "ix": 1,
                      "ks": {
                        "a": 0,
                        "k": {
                          "i": [
                            [0, 0],
                            [12.328, 6.481],
                            [0, 0],
                            [0, 0],
                            [0, 0],
                            [0, 0]
                          ],
                          "o": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
                          "v": [
                            [-81.816, 158.235],
                            [-99.108, 159.413],
                            [-99.179, 158.436],
                            [-99.771, 150.297],
                            [-82.574, 150.297],
                            [-82.26, 153.584]
                          ],
                          "c": true
                        },
                        "ix": 2
                      },
                      "nm": "Path 1",
                      "mn": "ADBE Vector Shape - Group",
                      "hd": false
                    },
                    {
                      "ty": "fl",
                      "c": {
                        "a": 0,
                        "k": [
                          0.988235294819, 0.733333349228, 0.643137276173, 1
                        ],
                        "ix": 4
                      },
                      "o": { "a": 0, "k": 100, "ix": 5 },
                      "r": 1,
                      "bm": 0,
                      "nm": "Fill 1",
                      "mn": "ADBE Vector Graphic - Fill",
                      "hd": false
                    },
                    {
                      "ty": "tr",
                      "p": { "a": 0, "k": [0, 0], "ix": 2 },
                      "a": { "a": 0, "k": [0, 0], "ix": 1 },
                      "s": { "a": 0, "k": [100, 100], "ix": 3 },
                      "r": { "a": 0, "k": 0, "ix": 6 },
                      "o": { "a": 0, "k": 100, "ix": 7 },
                      "sk": { "a": 0, "k": 0, "ix": 4 },
                      "sa": { "a": 0, "k": 0, "ix": 5 },
                      "nm": "Transform"
                    }
                  ],
                  "nm": "Group 4",
                  "np": 2,
                  "cix": 2,
                  "bm": 0,
                  "ix": 4,
                  "mn": "ADBE Vector Group",
                  "hd": false
                },
                {
                  "ty": "tr",
                  "p": { "a": 0, "k": [0, 0], "ix": 2 },
                  "a": { "a": 0, "k": [0, 0], "ix": 1 },
                  "s": { "a": 0, "k": [100, 100], "ix": 3 },
                  "r": { "a": 0, "k": 0, "ix": 6 },
                  "o": { "a": 0, "k": 100, "ix": 7 },
                  "sk": { "a": 0, "k": 0, "ix": 4 },
                  "sa": { "a": 0, "k": 0, "ix": 5 },
                  "nm": "Transform"
                }
              ],
              "nm": "Group 2",
              "np": 4,
              "cix": 2,
              "bm": 0,
              "ix": 2,
              "mn": "ADBE Vector Group",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 27,
      "ty": 4,
      "nm": "Layer 4",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [96.667, 224.762, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [46.667, 174.762, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-3.381, -3.11],
                    [0, 0],
                    [3.079, 3.605],
                    [0, 0],
                    [5.457, 2.987],
                    [0, 0],
                    [9.326, -0.166],
                    [0, 0],
                    [8.239, -3.219],
                    [0, 0],
                    [6.132, -5.016]
                  ],
                  "o": [
                    [0, 0],
                    [2.276, -3.709],
                    [-3.671, -4.297],
                    [0, 0],
                    [-6.398, -3.501],
                    [0, 0],
                    [-8.845, 0.158],
                    [0, 0],
                    [-8.933, 3.49],
                    [0, 0],
                    [-7.368, 6.028]
                  ],
                  "v": [
                    [21.163, 174.762],
                    [79.279, 174.762],
                    [85.267, 155.688],
                    [71.748, 162.492],
                    [73.897, 144.05],
                    [58.871, 151.088],
                    [52.514, 127.115],
                    [42.183, 153.207],
                    [21.918, 124.201],
                    [27.084, 162.213],
                    [9.203, 150.293]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-1.654, -3.521],
                    [-0.24, 0.194],
                    [-0.416, -0.591],
                    [2.236, 7.624],
                    [3.521, -2.883]
                  ],
                  "o": [
                    [0.185, -0.213],
                    [6.025, -4.926],
                    [-0.139, -0.342],
                    [-3.937, -4.232],
                    [-2.615, 2.144]
                  ],
                  "v": [
                    [8.563, 159.264],
                    [9.201, 158.654],
                    [27.073, 170.556],
                    [22.028, 155.992],
                    [9.201, 150.291]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [-8.844, 0.157],
                    [-0.425, -5.997],
                    [7.005, -0.129],
                    [0, 0],
                    [8.243, -3.225],
                    [-0.832, -5.794],
                    [-1.322, 0.518]
                  ],
                  "o": [
                    [0, 0],
                    [4.648, -0.083],
                    [0.398, -6.765],
                    [-8.844, 0.157],
                    [0, 0],
                    [-3.04, 1.183],
                    [0.434, -1.673],
                    [8.243, -3.225]
                  ],
                  "v": [
                    [42.183, 161.565],
                    [52.514, 135.477],
                    [59.186, 147.352],
                    [52.514, 127.114],
                    [42.183, 153.211],
                    [21.917, 124.203],
                    [19.339, 135.967],
                    [21.917, 132.566]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [0, 0],
                    [-6.395, -3.493],
                    [-0.296, -0.471],
                    [2.541, 1.395],
                    [1.848, -2.07]
                  ],
                  "o": [
                    [0, 0],
                    [0.508, 0.277],
                    [1.044, -3.983],
                    [-5.526, -3.031],
                    [0.055, 4.796]
                  ],
                  "v": [
                    [58.872, 159.448],
                    [73.898, 152.407],
                    [75.099, 153.543],
                    [73.898, 144.053],
                    [59.316, 150.568]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-3.381, -3.11],
                    [0, 0],
                    [3.079, 3.605],
                    [0, 0],
                    [5.457, 2.987],
                    [0, 0],
                    [9.326, -0.166],
                    [0, 0],
                    [8.239, -3.219],
                    [0, 0],
                    [6.132, -5.016]
                  ],
                  "o": [
                    [0, 0],
                    [2.276, -3.709],
                    [-3.671, -4.297],
                    [0, 0],
                    [-6.398, -3.501],
                    [0, 0],
                    [-8.845, 0.158],
                    [0, 0],
                    [-8.933, 3.49],
                    [0, 0],
                    [-7.368, 6.028]
                  ],
                  "v": [
                    [21.163, 174.762],
                    [79.279, 174.762],
                    [85.267, 155.688],
                    [71.748, 162.492],
                    [73.897, 144.05],
                    [58.871, 151.088],
                    [52.514, 127.115],
                    [42.183, 153.207],
                    [21.918, 124.201],
                    [27.084, 162.213],
                    [9.203, 150.293]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.72549021244, 0.764705896378, 0.988235294819, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 5",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 5,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 28,
      "ty": 4,
      "nm": "Layer 3",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [96.668, 224.762, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [46.668, 174.762, 0], "ix": 1, "l": 2 },
        "s": {
          "a": 1,
          "k": [
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 0,
              "s": [100, 105, 100]
            },
            {
              "i": { "x": [0.833, 0.833, 0.833], "y": [0.833, 0.833, 0.833] },
              "o": { "x": [0.167, 0.167, 0.167], "y": [0.167, 0.167, 0.167] },
              "t": 12.5,
              "s": [100, 95, 100]
            },
            { "t": 25, "s": [100, 105, 100] }
          ],
          "ix": 6,
          "l": 2,
          "x": "var $bm_rt;\n$bm_rt = loopOutDuration();"
        }
      },
      "ao": 0,
      "ef": [
        {
          "ty": 5,
          "nm": "Kleaner",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 1,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        },
        {
          "ty": 5,
          "nm": "Kleaner 2",
          "np": 34,
          "mn": "Pseudo/Duik Kleaner v3.2",
          "ix": 2,
          "en": 1,
          "ef": [
            {
              "ty": 7,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0001",
              "ix": 1,
              "v": { "a": 0, "k": 0, "ix": 1 }
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0002",
              "ix": 2,
              "v": { "a": 0, "k": 0, "ix": 2 }
            },
            {
              "ty": 7,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0003",
              "ix": 3,
              "v": { "a": 0, "k": 1, "ix": 3 }
            },
            {
              "ty": 6,
              "nm": "Anticipation",
              "mn": "Pseudo/Duik Kleaner v3.2-0004",
              "ix": 4,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Duration (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0005",
              "ix": 5,
              "v": { "a": 0, "k": 0.3, "ix": 5 }
            },
            {
              "ty": 0,
              "nm": "Amplitude",
              "mn": "Pseudo/Duik Kleaner v3.2-0006",
              "ix": 6,
              "v": { "a": 0, "k": 50, "ix": 6 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0007",
              "ix": 7,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0008",
              "ix": 8,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Slow In",
              "mn": "Pseudo/Duik Kleaner v3.2-0009",
              "ix": 9,
              "v": { "a": 0, "k": 60, "ix": 9 }
            },
            {
              "ty": 0,
              "nm": "Slow Out",
              "mn": "Pseudo/Duik Kleaner v3.2-0010",
              "ix": 10,
              "v": { "a": 0, "k": 25, "ix": 10 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0011",
              "ix": 11,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Follow Through",
              "mn": "Pseudo/Duik Kleaner v3.2-0012",
              "ix": 12,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Elasticity",
              "mn": "Pseudo/Duik Kleaner v3.2-0013",
              "ix": 13,
              "v": { "a": 0, "k": 10, "ix": 13 }
            },
            {
              "ty": 0,
              "nm": "Elasticity random",
              "mn": "Pseudo/Duik Kleaner v3.2-0014",
              "ix": 14,
              "v": { "a": 0, "k": 0, "ix": 14 }
            },
            {
              "ty": 0,
              "nm": "Damping",
              "mn": "Pseudo/Duik Kleaner v3.2-0015",
              "ix": 15,
              "v": { "a": 0, "k": 50, "ix": 15 }
            },
            {
              "ty": 0,
              "nm": "Damping random",
              "mn": "Pseudo/Duik Kleaner v3.2-0016",
              "ix": 16,
              "v": { "a": 0, "k": 0, "ix": 16 }
            },
            {
              "ty": 7,
              "nm": "Bounce",
              "mn": "Pseudo/Duik Kleaner v3.2-0017",
              "ix": 17,
              "v": { "a": 0, "k": 0, "ix": 17 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0018",
              "ix": 18,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Spatial Options",
              "mn": "Pseudo/Duik Kleaner v3.2-0019",
              "ix": 19,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Smart Interpolation",
              "mn": "Pseudo/Duik Kleaner v3.2-0020",
              "ix": 20,
              "v": { "a": 0, "k": 0, "ix": 20 }
            },
            {
              "ty": 7,
              "nm": "Mode",
              "mn": "Pseudo/Duik Kleaner v3.2-0021",
              "ix": 21,
              "v": { "a": 0, "k": 1, "ix": 21 }
            },
            {
              "ty": 6,
              "nm": "Overlap (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0022",
              "ix": 22,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Overlap",
              "mn": "Pseudo/Duik Kleaner v3.2-0023",
              "ix": 23,
              "v": { "a": 0, "k": 1, "ix": 23 }
            },
            {
              "ty": 0,
              "nm": "Delay (s)",
              "mn": "Pseudo/Duik Kleaner v3.2-0024",
              "ix": 24,
              "v": { "a": 0, "k": 0.05, "ix": 24 }
            },
            {
              "ty": 0,
              "nm": "Overlap random",
              "mn": "Pseudo/Duik Kleaner v3.2-0025",
              "ix": 25,
              "v": { "a": 0, "k": 0, "ix": 25 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0026",
              "ix": 26,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "Soft Body (simulation)",
              "mn": "Pseudo/Duik Kleaner v3.2-0027",
              "ix": 27,
              "v": 0
            },
            {
              "ty": 7,
              "nm": "Soft Body",
              "mn": "Pseudo/Duik Kleaner v3.2-0028",
              "ix": 28,
              "v": { "a": 0, "k": 1, "ix": 28 }
            },
            {
              "ty": 0,
              "nm": "Soft-Body Flexibility",
              "mn": "Pseudo/Duik Kleaner v3.2-0029",
              "ix": 29,
              "v": { "a": 0, "k": 100, "ix": 29 }
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0030",
              "ix": 30,
              "v": 0
            },
            {
              "ty": 6,
              "nm": "",
              "mn": "Pseudo/Duik Kleaner v3.2-0031",
              "ix": 31,
              "v": 0
            },
            {
              "ty": 0,
              "nm": "Precision",
              "mn": "Pseudo/Duik Kleaner v3.2-0032",
              "ix": 32,
              "v": { "a": 0, "k": 1, "ix": 32 }
            }
          ]
        }
      ],
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-6.299, -5.795],
                    [0, 0],
                    [5.737, 6.717],
                    [0, 0],
                    [10.167, 5.565],
                    [0, 0],
                    [17.378, -0.31],
                    [0, 0],
                    [15.353, -5.997],
                    [0, 0],
                    [11.427, -9.347]
                  ],
                  "o": [
                    [0, 0],
                    [4.241, -6.911],
                    [-6.84, -8.006],
                    [0, 0],
                    [-11.921, -6.523],
                    [0, 0],
                    [-16.48, 0.294],
                    [0, 0],
                    [-16.645, 6.503],
                    [0, 0],
                    [-13.729, 11.232]
                  ],
                  "v": [
                    [-0.855, 174.762],
                    [107.432, 174.762],
                    [118.591, 139.221],
                    [93.401, 151.899],
                    [97.405, 117.535],
                    [69.407, 130.65],
                    [57.561, 85.981],
                    [38.311, 134.599],
                    [0.552, 80.551],
                    [10.177, 151.38],
                    [-23.14, 129.168]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-8.446, -7.984],
                    [-10.378, 8.492],
                    [-6.349, -5.591],
                    [6.857, -5.6]
                  ],
                  "o": [
                    [-10.387, -10.978],
                    [5.046, -4.131],
                    [-7.402, -8.188],
                    [-12.845, 10.516]
                  ],
                  "v": [
                    [-2.322, 173.384],
                    [-16.757, 135.542],
                    [1.734, 140.865],
                    [-23.143, 129.165]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-5.064, -13.178],
                    [-0.268, -0.361],
                    [-16.449, 6.432],
                    [-2.699, -1.894],
                    [4.371, -1.71]
                  ],
                  "o": [
                    [4.334, 4.898],
                    [-0.61, -1.488],
                    [2.449, -0.961],
                    [-4.833, -6.099],
                    [-14.379, 5.619]
                  ],
                  "v": [
                    [8.887, 148.11],
                    [16.548, 157.73],
                    [6.928, 86.924],
                    [14.709, 88.588],
                    [0.551, 80.548]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [1.534, -13.566],
                    [0, 0],
                    [-16.477, 0.296],
                    [-0.85, -0.277],
                    [4.316, -0.074]
                  ],
                  "o": [
                    [3.493, 7.92],
                    [0, 0],
                    [0.998, -0.018],
                    [-1.931, -4.131],
                    [-12.392, 0.222]
                  ],
                  "v": [
                    [38.994, 127.16],
                    [44.687, 140.975],
                    [63.936, 92.358],
                    [66.708, 92.746],
                    [57.56, 85.982]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 4",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 4,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [5.757, -4.824],
                    [0, 0],
                    [-11.45, -2.384],
                    [1.922, 1.053]
                  ],
                  "o": [
                    [-0.092, 7.578],
                    [0, 0],
                    [-0.434, -2.366],
                    [-6.838, -3.733]
                  ],
                  "v": [
                    [76.615, 123.482],
                    [75.783, 137.03],
                    [100.817, 122.826],
                    [97.407, 117.531]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.458823531866, 0.482352942228, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 5",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 5,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [-6.299, -5.795],
                    [0, 0],
                    [5.737, 6.717],
                    [0, 0],
                    [10.167, 5.565],
                    [0, 0],
                    [17.378, -0.31],
                    [0, 0],
                    [15.353, -5.997],
                    [0, 0],
                    [11.427, -9.347]
                  ],
                  "o": [
                    [0, 0],
                    [4.241, -6.911],
                    [-6.84, -8.006],
                    [0, 0],
                    [-11.921, -6.523],
                    [0, 0],
                    [-16.48, 0.294],
                    [0, 0],
                    [-16.645, 6.503],
                    [0, 0],
                    [-13.729, 11.232]
                  ],
                  "v": [
                    [-0.855, 174.762],
                    [107.432, 174.762],
                    [118.591, 139.221],
                    [93.401, 151.899],
                    [97.405, 117.535],
                    [69.407, 130.65],
                    [57.561, 85.981],
                    [38.311, 134.599],
                    [0.552, 80.551],
                    [10.177, 151.38],
                    [-23.14, 129.168]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.552941203117, 0.584313750267, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 6",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 6,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 29,
      "ty": 4,
      "nm": "Layer 2",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[136.775, 174.762], [145.314, 174.762]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[107.432, 174.762], [128.526, 174.762]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 2",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 2,
          "mn": "ADBE Vector Group",
          "hd": false
        },
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [[0, 0], [0, 0]],
                  "o": [[0, 0], [0, 0]],
                  "v": [[-22.042, 174.762], [-33.881, 174.762]],
                  "c": false
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "st",
              "c": {
                "a": 0,
                "k": [0.066666670144, 0.145098045468, 0.266666680574, 1],
                "ix": 3
              },
              "o": { "a": 0, "k": 100, "ix": 4 },
              "w": { "a": 0, "k": 1.025, "ix": 5 },
              "lc": 2,
              "lj": 2,
              "bm": 0,
              "nm": "Stroke 1",
              "mn": "ADBE Vector Graphic - Stroke",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.882352948189, 0.898039221764, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 3",
          "np": 3,
          "cix": 2,
          "bm": 0,
          "ix": 3,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 30,
      "ty": 4,
      "nm": "Layer 1",
      "parent": 1,
      "sr": 1,
      "ks": {
        "o": { "a": 0, "k": 100, "ix": 11 },
        "r": { "a": 0, "k": 0, "ix": 10 },
        "p": { "a": 0, "k": [50, 50, 0], "ix": 2, "l": 2 },
        "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 },
        "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 0,
                "k": {
                  "i": [
                    [4.864, -30.745],
                    [17.418, -10.523],
                    [14.881, 0.014],
                    [14.65, -2.638],
                    [5.977, -7.9],
                    [16.363, -3.014],
                    [16.384, 2.905],
                    [13.428, 8.405],
                    [-0.52, 15.828],
                    [-0.173, 21.697],
                    [10.776, 19.131],
                    [-11.983, 21.429],
                    [-24.537, 0.947],
                    [-36.556, -8.124],
                    [-15.987, -3.115],
                    [-17.859, -25.498]
                  ],
                  "o": [
                    [-3.173, 20.107],
                    [-12.742, 7.697],
                    [-14.881, -0.014],
                    [-9.873, 1.778],
                    [-10.033, 13.262],
                    [-16.363, 3.021],
                    [-15.604, -2.761],
                    [-13.421, -8.405],
                    [0.715, -21.689],
                    [0.181, -21.95],
                    [-12.041, -21.4],
                    [11.983, -21.436],
                    [37.416, -1.438],
                    [15.9, 3.534],
                    [30.557, 5.941],
                    [17.859, 25.491]
                  ],
                  "v": [
                    [159.609, 37.383],
                    [129.731, 88.408],
                    [86.627, 97.631],
                    [42.071, 98.895],
                    [14.758, 111.052],
                    [-24.71, 139.477],
                    [-74.297, 137.157],
                    [-119.237, 122.666],
                    [-142.777, 83.877],
                    [-121.369, 23.102],
                    [-151.999, -33.944],
                    [-152.1, -104.44],
                    [-91.99, -141.278],
                    [14.289, -107.533],
                    [62.69, -101.007],
                    [139.098, -51.383]
                  ],
                  "c": true
                },
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [0.933333337307, 0.956862747669, 1, 1],
                "ix": 4
              },
              "o": { "a": 0, "k": 100, "ix": 5 },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": { "a": 0, "k": [0, 0], "ix": 2 },
              "a": { "a": 0, "k": [0, 0], "ix": 1 },
              "s": { "a": 0, "k": [100, 100], "ix": 3 },
              "r": { "a": 0, "k": 0, "ix": 6 },
              "o": { "a": 0, "k": 100, "ix": 7 },
              "sk": { "a": 0, "k": 0, "ix": 4 },
              "sa": { "a": 0, "k": 0, "ix": 5 },
              "nm": "Transform"
            }
          ],
          "nm": "Group 1",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 225,
      "st": 0,
      "bm": 0
    }
  ],
  "markers": [],
  "nm": "Comp 20",
  "op": 200,
  "v": "5.7.11",
  "w": 512
}
