-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlumber_jack.html
47 lines (41 loc) · 138 KB
/
lumber_jack.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<meta charset="UTF-8">
<head>
<style>
body {
background-color: #fff;
margin: 0;
height: 100%;
overflow: hidden;
}
#lottie {
background-color: #fff;
width: 100%;
height: 100%;
display: block;
overflow: hidden;
transform: translate3d(0, 0, 0);
text-align: center;
opacity: 1;
}
</style>
<title></title>
</head>
<body>
<script src="lib/lottie.js" type="text/javascript"></script>
<div id="lottie"></div>
<script>
var animationData = {"v":"5.6.1","fr":60,"ip":0,"op":240,"w":800,"h":800,"nm":"Lumber-Jack-Face","ddd":0,"assets":[{"id":"image_0","w":394,"h":223,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":135,"h":37,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":134,"h":37,"u":"images/","p":"img_2.png","e":0},{"id":"image_3","w":172,"h":105,"u":"images/","p":"img_3.png","e":0},{"id":"image_4","w":25,"h":25,"u":"images/","p":"img_4.png","e":0},{"id":"image_5","w":74,"h":74,"u":"images/","p":"img_5.png","e":0},{"id":"image_6","w":25,"h":25,"u":"images/","p":"img_6.png","e":0},{"id":"image_7","w":74,"h":74,"u":"images/","p":"img_7.png","e":0},{"id":"image_8","w":269,"h":73,"u":"images/","p":"img_8.png","e":0},{"id":"image_9","w":215,"h":28,"u":"images/","p":"img_9.png","e":0},{"id":"image_10","w":327,"h":164,"u":"images/","p":"img_10.png","e":0},{"id":"image_11","w":62,"h":86,"u":"images/","p":"img_11.png","e":0},{"id":"image_12","w":62,"h":86,"u":"images/","p":"img_12.png","e":0},{"id":"image_13","w":327,"h":388,"u":"images/","p":"img_13.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"Lumberjack Face","parent":2,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":239,"s":[0,0,0]}],"ix":2},"a":{"a":0,"k":[37.5,37.5,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"joystickLimit","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":200,"ix":1}}]}],"sw":75,"sh":75,"sc":"#ffffff","ip":0,"op":244,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Lumberjack Face Origin","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,84,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[37,37,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[251.383,200],"ix":2,"x":"var $bm_rt;\nvar temp;\ntemp = $bm_mul(thisComp.layer('Lumberjack Face')('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001'), 2);\n$bm_rt = [\n temp,\n temp\n];"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117629528,0.310726553202,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":14,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"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}],"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Hat","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[406.596,213.58,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 406.595794677734,\n 213.579956054688,\n 0\n ];\n var key2 = [\n 412.595794677734,\n 213.579956054688,\n 0\n ];\n var key3 = [\n 412.595794677734,\n 213.579956054688,\n 0\n ];\n var key4 = [\n 406.595794677734,\n 213.579956054688,\n 0\n ];\n var key5 = [\n 406.595794677734,\n 213.579956054688,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[196.864,111.034,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100,\n 100\n ];\n var key2 = [\n 93.9044217497256,\n 100,\n 100\n ];\n var key3 = [\n 93.9044217497256,\n 100,\n 100\n ];\n var key4 = [\n 100,\n 100,\n 100\n ];\n var key5 = [\n 100,\n 100,\n 100\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"R Eyebrow","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[474.713,330.709,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 474.712799072266,\n 330.708709716797,\n 0\n ];\n var key2 = [\n 511.712799072266,\n 330.708709716797,\n 0\n ];\n var key3 = [\n 447.712799072266,\n 330.708709716797,\n 0\n ];\n var key4 = [\n 474.712799072266,\n 320.708709716797,\n 0\n ];\n var key5 = [\n 474.712799072266,\n 340.708709716797,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[67.288,18.257,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"L Eyebrow","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[340.962,330.606,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 340.961975097656,\n 330.606201171875,\n 0\n ];\n var key2 = [\n 377.961975097656,\n 330.606201171875,\n 0\n ];\n var key3 = [\n 313.961975097656,\n 330.606201171875,\n 0\n ];\n var key4 = [\n 340.961975097656,\n 320.606201171875,\n 0\n ];\n var key5 = [\n 340.961975097656,\n 340.606201171875,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[66.963,18.345,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Nose","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[405,383.31,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 405.000091552734,\n 383.309997558594,\n 0\n ];\n var key2 = [\n 463.000091552734,\n 383.309997558594,\n 0\n ];\n var key3 = [\n 367.000091552734,\n 383.309997558594,\n 0\n ];\n var key4 = [\n 405.000091552734,\n 383.309997558594,\n 0\n ];\n var key5 = [\n 405.000091552734,\n 411.309997558594,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[85.851,52.413,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100,\n 100\n ];\n var key2 = [\n 76.7036889350965,\n 100,\n 100\n ];\n var key3 = [\n 76.7036889350965,\n 100,\n 100\n ];\n var key4 = [\n 100,\n 100,\n 100\n ];\n var key5 = [\n 100,\n 100,\n 100\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"L Eyeball","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[333.962,348.71,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 333.962493896484,\n 348.709503173828,\n 0\n ];\n var key2 = [\n 385.962493896484,\n 348.709503173828,\n 0\n ];\n var key3 = [\n 301.962493896484,\n 348.709503173828,\n 0\n ];\n var key4 = [\n 333.962493896484,\n 340.709503173828,\n 0\n ];\n var key5 = [\n 333.962493896484,\n 389.209503173828,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[12.402,12.402,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"L Eye","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[333.01,350.473,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 333.010192871094,\n 350.472717285156,\n 0\n ];\n var key2 = [\n 370.010192871094,\n 350.472717285156,\n 0\n ];\n var key3 = [\n 314.010192871094,\n 350.472717285156,\n 0\n ];\n var key4 = [\n 333.010192871094,\n 354.472717285156,\n 0\n ];\n var key5 = [\n 333.010192871094,\n 372.472717285156,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[36.936,36.936,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"R Eyeball","refId":"image_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[475.462,349.71,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 475.462493896484,\n 349.709503173828,\n 0\n ];\n var key2 = [\n 528.962493896484,\n 349.709503173828,\n 0\n ];\n var key3 = [\n 443.962493896484,\n 349.709503173828,\n 0\n ];\n var key4 = [\n 475.462493896484,\n 341.709503173828,\n 0\n ];\n var key5 = [\n 475.462493896484,\n 390.209503173828,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[12.402,12.402,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"R Eye","refId":"image_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[476.01,350.473,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 476.009704589844,\n 350.472717285156,\n 0\n ];\n var key2 = [\n 513.009704589844,\n 350.472717285156,\n 0\n ];\n var key3 = [\n 458.009704589844,\n 350.472717285156,\n 0\n ];\n var key4 = [\n 476.009704589844,\n 354.472717285156,\n 0\n ];\n var key5 = [\n 476.009704589844,\n 372.472717285156,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[36.936,36.936,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Face","refId":"image_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408,367.26,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 408,\n 367.260009765625,\n 0\n ];\n var key2 = [\n 438,\n 367.260009765625,\n 0\n ];\n var key3 = [\n 388,\n 367.260009765625,\n 0\n ];\n var key4 = [\n 408,\n 367.260009765625,\n 0\n ];\n var key5 = [\n 408,\n 389.260009765625,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[134.001,36.363,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100,\n 100\n ];\n var key2 = [\n 84.3284759886539,\n 100,\n 100\n ];\n var key3 = [\n 84.3284759886539,\n 100,\n 100\n ];\n var key4 = [\n 100,\n 79.5288921374778,\n 100\n ];\n var key5 = [\n 100,\n 148.637047126606,\n 100\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Lip","refId":"image_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408,475.599,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 408,\n 475.598602294922,\n 0\n ];\n var key2 = [\n 463,\n 475.598602294922,\n 0\n ];\n var key3 = [\n 357,\n 475.598602294922,\n 0\n ];\n var key4 = [\n 408,\n 455.598602294922,\n 0\n ];\n var key5 = [\n 408,\n 507.598602294922,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[107.251,13.625,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100,\n 100\n ];\n var key2 = [\n 75.7576895755146,\n 100,\n 100\n ];\n var key3 = [\n 75.7576895755146,\n 100,\n 100\n ];\n var key4 = [\n 100,\n 100,\n 100\n ];\n var key5 = [\n 100,\n 100,\n 100\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"Head","refId":"image_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408.153,242.023,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 408.152801513672,\n 242.022705078125,\n 0\n ];\n var key2 = [\n 408.152801513672,\n 242.022705078125,\n 0\n ];\n var key3 = [\n 408.152801513672,\n 242.022705078125,\n 0\n ];\n var key4 = [\n 408.152801513672,\n 242.022705078125,\n 0\n ];\n var key5 = [\n 408.152801513672,\n 242.022705078125,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[163.273,81.761,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"L Ear","refId":"image_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[214.356,381.986,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 214.356491088867,\n 381.986022949219,\n 0\n ];\n var key2 = [\n 235.356491088867,\n 381.986022949219,\n 0\n ];\n var key3 = [\n 254.356491088867,\n 381.986022949219,\n 0\n ];\n var key4 = [\n 214.356491088867,\n 381.986022949219,\n 0\n ];\n var key5 = [\n 214.356491088867,\n 381.986022949219,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[30.772,42.814,0],"ix":1},"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,100,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":1,"s":[100,100,100]},{"t":2,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,86],[62.5,86.516],[62.5,0.516]],"c":true},"ix":1,"x":"var $bm_rt;\nif (numKeys > 0 || typeof createPath === 'undefined') {\n $bm_rt = value;\n} else {\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001').value;\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position').value;\n var key1 = {\n closed: true,\n vertices: [\n [\n 0,\n 0\n ],\n [\n 0,\n 86\n ],\n [\n 62.5,\n 86.5\n ],\n [\n 62.5,\n 0.5\n ]\n ],\n inTangents: [\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ]\n ],\n outTangents: [\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key2 = {\n closed: true,\n vertices: [\n [\n -16,\n -0.2\n ],\n [\n -16,\n 85.8\n ],\n [\n 61.5,\n 85.9\n ],\n [\n 61.5,\n -0.1\n ]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key3 = {\n closed: true,\n vertices: [\n [\n -32,\n -0.3\n ],\n [\n -32,\n 85.7\n ],\n [\n 30.5,\n 86.2\n ],\n [\n 30.5,\n 0.2\n ]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key4 = {\n closed: true,\n vertices: [\n [null],\n [null],\n [null],\n [null]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key5 = {\n closed: true,\n vertices: [\n [null],\n [null],\n [null],\n [null]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var rotoBezier = false;\n var bias = {};\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n bias.slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001').value;\n bias.slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002').value;\n bias.slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003').value;\n bias.slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004').value;\n } catch (err) {\n bias.slideR = 0;\n bias.slideL = 0;\n bias.slideU = 0;\n bias.slideD = 0;\n }\n function joystick(key1, key2, key3, key4, key5, bias, contrl) {\n var resultVal;\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n if (key2 === null) {\n resultVal = key1;\n } else {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (bias.slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, bias.slideR);\n resultVal = linear(Math.abs(bias.slideR), 0, 100, resultVal, easeResultX);\n }\n }\n } else {\n if (key3 === null) {\n resultVal = key1;\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (bias.slideL !== 0) {\n easeResultX = easeSwitch($bm_sub(0, contrlCurVal[0]), 0, myLimit, key1, key3, bias.slideL);\n resultVal = linear(Math.abs(bias.slideL), 0, 100, resultVal, easeResultX);\n }\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n if (key4 === null) {\n resultAdd = [\n 0,\n 0\n ];\n } else {\n resultAdd = $bm_sub(linear($bm_sub(0, contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (bias.slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, bias.slideU), key1);\n resultAdd = linear(Math.abs(bias.slideU), 0, 100, resultAdd, easeResultY);\n }\n }\n } else {\n if (key5 === null) {\n resultAdd = [\n 0,\n 0\n ];\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (bias.slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, bias.slideD), key1);\n resultAdd = linear(Math.abs(bias.slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n }\n return $bm_sum(resultVal, resultAdd);\n }\n function cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n }\n function sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n }\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n function easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n }\n function unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n }\n function moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n }\n var myPoints = [];\n var myInTangents = [];\n var myOutTangents = [];\n var k1vl = key1.vertices.length;\n var i = 0;\n for (i = 0; i < k1vl; i++) {\n myPoints.push(joystick(key1.vertices[i], key2.vertices[i], key3.vertices[i], key4.vertices[i], key5.vertices[i], bias, contrl));\n myInTangents.push(joystick(key1.inTangents[i], key2.inTangents[i], key3.inTangents[i], key4.inTangents[i], key5.inTangents[i], bias, contrl));\n myOutTangents.push(joystick(key1.outTangents[i], key2.outTangents[i], key3.outTangents[i], key4.outTangents[i], key5.outTangents[i], bias, contrl));\n }\n $bm_rt = createPath(myPoints, myInTangents, myOutTangents, key1.closed);\n}"},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"R Ear","refId":"image_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[601.939,381.986,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 601.93896484375,\n 381.986022949219,\n 0\n ];\n var key2 = [\n 557.93896484375,\n 381.986022949219,\n 0\n ];\n var key3 = [\n 557.93896484375,\n 381.986022949219,\n 0\n ];\n var key4 = [\n 601.93896484375,\n 381.986022949219,\n 0\n ];\n var key5 = [\n 601.93896484375,\n 381.986022949219,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[30.763,42.814,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,0],[0,86],[62,86],[62,0]],"c":true},"ix":1,"x":"var $bm_rt;\nif (numKeys > 0 || typeof createPath === 'undefined') {\n $bm_rt = value;\n} else {\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001').value;\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position').value;\n var key1 = {\n closed: true,\n vertices: [\n [\n 0,\n 0\n ],\n [\n 0,\n 86\n ],\n [\n 62,\n 86\n ],\n [\n 62,\n 0\n ]\n ],\n inTangents: [\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ]\n ],\n outTangents: [\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ],\n [\n 0,\n 0\n ]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key2 = {\n closed: true,\n vertices: [\n [\n 35,\n 0.2\n ],\n [\n 35,\n 86.2\n ],\n [\n 97,\n 86.2\n ],\n [\n 97,\n 0.2\n ]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key3 = {\n closed: true,\n vertices: [\n [null],\n [null],\n [null],\n [null]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key4 = {\n closed: true,\n vertices: [\n [null],\n [null],\n [null],\n [null]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var key5 = {\n closed: true,\n vertices: [\n [null],\n [null],\n [null],\n [null]\n ],\n inTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n outTangents: [\n [null],\n [null],\n [null],\n [null]\n ],\n featherSegLocs: [],\n featherRelSegLocs: [],\n featherRadii: [],\n featherInterps: [],\n featherTensions: [],\n featherTypes: [],\n featherRelCornerAngles: []\n };\n var rotoBezier = false;\n var bias = {};\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n bias.slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001').value;\n bias.slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002').value;\n bias.slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003').value;\n bias.slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004').value;\n } catch (err) {\n bias.slideR = 0;\n bias.slideL = 0;\n bias.slideU = 0;\n bias.slideD = 0;\n }\n function joystick(key1, key2, key3, key4, key5, bias, contrl) {\n var resultVal;\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n if (key2 === null) {\n resultVal = key1;\n } else {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (bias.slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, bias.slideR);\n resultVal = linear(Math.abs(bias.slideR), 0, 100, resultVal, easeResultX);\n }\n }\n } else {\n if (key3 === null) {\n resultVal = key1;\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (bias.slideL !== 0) {\n easeResultX = easeSwitch($bm_sub(0, contrlCurVal[0]), 0, myLimit, key1, key3, bias.slideL);\n resultVal = linear(Math.abs(bias.slideL), 0, 100, resultVal, easeResultX);\n }\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n if (key4 === null) {\n resultAdd = [\n 0,\n 0\n ];\n } else {\n resultAdd = $bm_sub(linear($bm_sub(0, contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (bias.slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, bias.slideU), key1);\n resultAdd = linear(Math.abs(bias.slideU), 0, 100, resultAdd, easeResultY);\n }\n }\n } else {\n if (key5 === null) {\n resultAdd = [\n 0,\n 0\n ];\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (bias.slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, bias.slideD), key1);\n resultAdd = linear(Math.abs(bias.slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n }\n return $bm_sum(resultVal, resultAdd);\n }\n function cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n }\n function sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n }\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n function easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n }\n function unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n }\n function moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n }\n var myPoints = [];\n var myInTangents = [];\n var myOutTangents = [];\n var k1vl = key1.vertices.length;\n var i = 0;\n for (i = 0; i < k1vl; i++) {\n myPoints.push(joystick(key1.vertices[i], key2.vertices[i], key3.vertices[i], key4.vertices[i], key5.vertices[i], bias, contrl));\n myInTangents.push(joystick(key1.inTangents[i], key2.inTangents[i], key3.inTangents[i], key4.inTangents[i], key5.inTangents[i], bias, contrl));\n myOutTangents.push(joystick(key1.outTangents[i], key2.outTangents[i], key3.outTangents[i], key4.outTangents[i], key5.outTangents[i], bias, contrl));\n }\n $bm_rt = createPath(myPoints, myInTangents, myOutTangents, key1.closed);\n}"},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":245,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"Beard","refId":"image_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408,517.682,0],"ix":2,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 407.999694824219,\n 517.68212890625,\n 0\n ];\n var key2 = [\n 407.999694824219,\n 517.68212890625,\n 0\n ];\n var key3 = [\n 407.999694824219,\n 517.68212890625,\n 0\n ];\n var key4 = [\n 407.999694824219,\n 517.68212890625,\n 0\n ];\n var key5 = [\n 407.999694824219,\n 517.68212890625,\n 0\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"},"a":{"a":0,"k":[163.426,193.568,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Lumberjack Face');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100,\n 100\n ];\n var key2 = [\n 93.8810224115397,\n 100,\n 100\n ];\n var key3 = [\n 93.8810224115397,\n 100,\n 100\n ];\n var key4 = [\n 100,\n 100,\n 100\n ];\n var key5 = [\n 100,\n 100,\n 100\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = $bm_sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = $bm_sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = $bm_sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = $bm_sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return $bm_sum($bm_sum(resultVal, resultAdd), $bm_sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var myCos2 = $bm_sum($bm_sum($bm_mul($bm_neg(c), Math.cos($bm_mul(mapVal, $bm_div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp($bm_div(val, $bm_sub(max1, min1)), 0, 1);\n var c = $bm_sub(input2, input1);\n var mySin2 = $bm_sum($bm_mul(c, Math.sin($bm_mul(mapVal, $bm_div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}\n$bm_rt = joystick(value);"}},"ao":0,"ip":0,"op":245,"st":0,"bm":0}],"markers":[]};
const params = {
container: document.getElementById('lottie'),
renderer: 'svg',
loop: true,
autoplay: true,
animationData:animationData
};
let anim;
anim = lottie.loadAnimation(params);
</script>
<script src="lib/morood.js" type="text/javascript"></script>
</body>
</html>