--- title: "arc" excerpt: "Starting at the current sketch's origin, draw a curved line segment along" layout: manual --- Starting at the current sketch's origin, draw a curved line segment along an imaginary circle of the specified radius. The arc is constructed such that the current position of the sketch is placed along an imaginary circle of the specified radius, at angleStart degrees. The resulting arc is the segment of the imaginary circle from that origin point to angleEnd, radius away from the center of the imaginary circle. Unless this makes a lot of sense and feels like what you're looking for to construct your shape, you're likely looking for tangentialArc. ```js arc(data: ArcData, sketch_group: SketchGroup, tag?: TagDeclarator) -> SketchGroup ``` ### Examples ```js const exampleSketch = startSketchOn('XZ') |> startProfileAt([0, 0], %) |> line([10, 0], %) |> arc({ angleStart: 0, angleEnd: 280, radius: 16 }, %) |> close(%) ``` ![Rendered example of arc 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAB6NUlEQVR4Ae3gAZAkSZIkSRKLqpm7R0REZmZmVlVVVVV3d3d3d/fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMdHd3d3dXV1VVVVVmZkZGRIS7m5kKz0xmV3d1d3dPz8zMzMxMYn3Qgx7EVVddddVVV1111VVXXXXVVVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVc90zXXXPNggDNnzjz4mmuueTDAmTNnHsRzueaaax7MM11zzTUPBrjvvvtuveaaax7Mc7nvvvtu5bncd999t15zzTUPvu+++249e/bsMwDuu+++WwHOnj17K8B99913K1ddddVVV1111VVX/XtRueqqq6666qqrrrrq/7xrrrnmwWfOnHnwNddc8+AzZ848COCaa6558DXXXPPgM2fOPPiaa655MP+Cl33Zl+U/w1/+5V/ywtx33323Apw9e/bW++6779Z/+Id/+B2A++6779azZ8/eet99993KVVddddVVV1111VUvCHrQgx7EVVddddVVV1111VX/u11zzTUPBnixF3ux1z5z5syDAF78xV/8tc+cOfPga6655sE8l5d92Zflf6u//Mu/5Lndd999t549e/bW++6779b77rvv1rNnzz7jvvvuu/Uf/uEffpurrrrqqquuuuqq/9/Qgx70IK666qqrrrrqqquu+t/jmmuuefCLvdiLvfaZM2ce9OIv/uKv/WIv9mKvzXN52Zd9Wf6/+su//Ese6L777rv1H/7hH34b4B/+4R9+57777rv1H/7hH36bq6666qqrrrrqqv8f0IMe9CCuuuqqq6666qqrrvqf55prrnnwmTNnHvxiL/ZirwXw4i/+4q/9Yi/2Yq/NM73sy74sV/3r/OVf/iX3u++++279h3/4h9/+h3/4h9+57777bv2Hf/iH3+aqq6666qqrrrrq/x70oAc9iKuuuuqqq6666qqr/vtdc801D37t137t9wJ4p3d6p8/mAV72ZV+Wq/5z/OVf/iUA9913360A//AP//Db//AP//A79913363/8A//8NtcddVVV1111VVX/e+GHvSgB3HVVVddddVVV1111X+9a6655sGv/dqv/V4v/uIv/tov9mIv9to808u+7Mty1X+vv/zLvwTgvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNvc9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111VX/+a655poHv/Zrv/Z7vfiLv/hrv9iLvdhr80wv+7Ivy1X/s/3lX/4lAPfdd9+tZ8+evfXv//7vf/sf/uEffucf/uEffpurrrrqqquuuuqq/9nQgx70IK666qqrrrrqqquu+o93zTXXPPi1X/u13wvgnd7pnT6bZ3rZl31Zrvrf7S//8i8BuO+++279h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq6666n8e9KAHPYirrrrqqquuuuqqq/5jXHPNNQ9+7dd+7fd68Rd/8dd+sRd7sdcGeNmXfVmu+r/tL//yLwG47777bv2Hf/iH3/6t3/qt7/mHf/iH3+aqq6666qqrrrrqvx960IMexFVXXXXVVVddddVV/zbXXHPNg1/7tV/7vQDe6Z3e6bN5ppd92Zflqv+f/vIv/xKA++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666qqr/nugBz3oQVx11VVXXXXVVVdd9a/zju/4jp91zTXXPPh1Xud13hvgZV/2ZbnqqufnL//yL7nvvvtu/Yd/+Iff/q3f+q3v+Yd/+Iff5qqrrrrqqquuuuq/DnrQgx7EVVddddVVV1111VX/shd7sRd77Rd7sRd7rXd6p3f6bICXfdmX5aqr/jX+8i//kvvuu+/Wf/iHf/jtf/iHf/id3/qt3/purrrqqquuuuqqq/5zoQc96EFcddVVV1111VVXXfX8XXPNNQ9+7dd+7fd6p3d6p88GeNmXfVmuuuo/wl/+5V9y33333foP//APv/1bv/Vb3/MP//APv81VV1111VVXXXXVfzz0oAc9iKuuuuqqq6666qqrnu2aa6558Gu/9mu/1zu90zt9NsDLvuzLctVV/5n+8i//kvvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq/7joAc96EFcddVVV1111VVXXQXv+I7v+Fmv8zqv897XXHPNg1/2ZV+Wq676r/aXf/mX3Hfffbf+wz/8w2//1m/91vf8wz/8w29z1VVXXXXVVVdd9e+DHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+r3d6p3f6bICXfdmX5aqr/if4y7/8S+67775bf+u3fuu7f/u3f/t77rvvvlu56qqrrrrqqquu+tdDD3rQg7jqqquuuuqqq676/+Yd3/EdP+t1Xud13vuaa655MMDLvuzLctVV/xP95V/+Jffdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV73o0IMe9CCuuuqqq6666qqr/j+45pprHvzar/3a7/VO7/ROnw3wsi/7slx11f8mf/mXf8l9991362/91m9994/+6I9+DlddddVVV1111VX/MvSgBz2Iq6666qqrrrrqqv/Lrrnmmge/9mu/9nu90zu902cDvOzLvixXXfW/2V/+5V9y33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVC4Ye9KAHcdVVV1111VVXXfV/0TXXXPPgd3zHd/ys13md13nvl33Zl+Wqq/6v+cu//Evuu+++W//hH/7ht3/rt37re/7hH/7ht7nqqquuuuqqq656TuhBD3oQV1111VVXXXXVVf+XvOM7vuNnvc7rvM57X3PNNQ9+2Zd9Wa666v+Dv/zLv+S3fuu3vvu3fuu3vucf/uEffpurrrrqqquuuuqqK9CDHvQgrrrqqquuuuqqq/4veMd3fMfPep3XeZ33vuaaax78si/7slx11f9Hf/mXf8lv/dZvffdv/dZvfc8//MM//DZXXXXVVVddddX/d+hBD3oQV1111VVXXXXVVf+bveM7vuNnvdM7vdNnA7zsy74sV111FfzlX/4lv/Vbv/Xdv/Vbv/U9//AP//DbXHXVVVddddVV/1+hBz3oQVx11VVXXXXVVVf9b/SO7/iOn/VO7/ROnw3wsi/7slx11VXP6y//8i/5rd/6re/+rd/6re/5h3/4h9/mqquuuuqqq676/wY96EEP4qqrrrrqqquuuup/k9d5ndd573d8x3f8rGuuuebBL/uyL8tVV131L/vLv/xLfuu3fuu7f+u3fut7/uEf/uG3ueqqq6666qqr/r9AD3rQg7jqqquuuuqqq6763+DFXuzFXvvDP/zDv+uaa6558Mu+7Mty1VVX/ev98i//8q3/8A//8Ns/+qM/+jn33XffrVx11VVXXXXVVf/XoQc96EFcddVVV1111VVX/U92zTXXPPjDP/zDv+vFXuzFXvtlX/Zlueqqq/59/vIv/5L77rvv1t/6rd/67h/90R/9HK666qqrrrrqqv/L0IMe9CCuuuqqq6666qqr/ie65pprHvzhH/7h3/ViL/Zir/2yL/uyXHXVVf+x/vIv/5L77rvv1t/6rd/67h/90R/9HK666qqrrrrqqv+L0IMe9CCuuuqqq6666qqr/qd5x3d8x896p3d6p89+2Zd9Wa666qr/XH/5l3/Jfffdd+vXf/3Xv88//MM//DZXXXXVVVddddX/JZTjx49z1VVXXXXVVVdd9T/F67zO67z3V3zFV/zVi7/4i7/2y77sy3LVVVf957v++ut5+MMffvzRj370e19zzTUPvvXWW//m8PBwl6uuuuqqq6666v8CyvHjx7nqqquuuuqqq67673bNNdc8+JM+6ZN+6s3f/M0/+mVf9mW5/vrrueqqq/5rXX/99bzqq77qS998881vvbm5efwf/uEffoerrrrqqquuuup/O/SgBz2Iq6666qqrrrrqqv8u11xzzYNf+7Vf+73e6Z3e6bNf9mVflquuuup/hr/8y7/kvvvuu/Xrv/7r3+cf/uEffpurrrrqqquuuup/K8rx48e56qqrrrrqqquu+u/wju/4jp/1SZ/0ST/94i/+4q/9si/7slx11VX/c1x//fU8/OEPP37y5MnX3tzcPP4P//APv8NVV1111VVXXfW/EeX48eNcddVVV1111VVX/Ve65pprHvxJn/RJP/U6r/M67/2yL/uyXH/99Vx11VX/Mz384Q8/furUqdd+ndd5nfc+Ojq6dOutt/41V1111VVXXXXV/yaU48ePc9VVV1111VVXXfVf5R3f8R0/65M+6ZN++o3f+I0ffP3113PVVVf9z3f99dfz8Ic//PjNN9/81gBnz559xuHh4S5XXXXVVVddddX/BpTjx49z1VVXXXXVVVdd9Z/tmmuuefAnfdIn/dTrvM7rvPfLvuzLctVVV/3vc/3113Pq1KnXfsVXfMW33tzcPP4P//APv8NVV1111VVXXfU/HXrQgx7EVVddddVVV1111X+md3zHd/ysd3qnd/rsl33Zl+Wqq676v+Ev//Iv+Yd/+Iff/vqv//r3ue+++27lqquuuuqqq676n4py/Phxrrrqqquuuuqqq/4zXHPNNQ/+pE/6pJ96ndd5nfd+2Zd9Wa666qr/O66//npaaw9+xVd8xbfe3Nw8/g//8A+/w1VXXXXVVVdd9T8Rlauuuuqqq6666qr/BO/4ju/4We/0Tu/02S/7si/LVVdd9X/Ty77sywI8+JprrvlsgB/90R/9HK666qqrrrrqqv9p0IMe9CCuuuqqq6666qqr/qNcc801D/7wD//w73qxF3ux137Zl31Zrrrqqv8f/vIv/5L77rvv1s/6rM96nfvuu+9Wrrrqqquuuuqq/ykox48f56qrrrrqqquuuuo/wou92Iu99ld8xVf81Ru/8Rs/+Prrr+eqq676/+P666/n4Q9/+PGbb775rTc3N4//wz/8w+9w1VVXXXXVVVf9T0A5fvw4V1111VVXXXXVVf9e7/iO7/hZH/ERH/HdL/uyL8tVV131/9fDH/7w46dOnXrta6655sF/+qd/+jNcddVVV1111VX/3dCDHvQgrrrqqquuuuqqq/6trrnmmgd/+Id/+He92Iu92Gu/7Mu+LFddddVVAH/5l3/Jfffdd+tnfdZnvc599913K1ddddVVV1111X8XyvHjx7nqqquuuuqqq676t3ixF3ux1/6Kr/iKv3rjN37jB19//fVcddVVV93v+uuv5+EPf/jxm2+++a03NzeP/8M//MPvcNVVV1111VVX/XegHD9+nKuuuuqqq6666qp/rXd8x3f8rI/4iI/47pd92ZflqquuuuoFefjDH3781KlTrw3wD//wD7/DVVddddVVV131Xw096EEP4qqrrrrqqquuuupFdc011zz4wz/8w7/rzJkzD37jN37jB3PVVVdd9SL4y7/8S+67775bP+uzPut17rvvvlu56qqrrrrqqqv+q1C56qqrrrrqqquuehFdc801D/6mb/qmp7/sy74sV1111VX/Gi/7si8L8GDgtz7rsz7rde67775bueqqq6666qqr/itQjh8/zlVXXXXVVVddddW/5MVe7MVe+yu+4iv+6mVf9mW56qqrrvq3evjDH3785ptvfuvNzc3j//AP//A7XHXVVVddddVV/9kox48f56qrrrrqqquuuuqFecd3fMfP+oiP+IjvftmXfVmuuuqqq/69Hv7whx8/derUawP8wz/8w+9w1VVXXXXVVVf9Z6IcP36cq6666qqrrrrqqhfkcz/3c3/rdV7ndd77ZV/2Zbnqqquu+o9y/fXXc+rUqdd+8Rd/8df+rd/6re/hqquuuuqqq676z0I5fvw4V1111VVXXXXVVc/tmmuuefAnfdIn/dSLvdiLvfbLvuzLctVVV131H+3666+ntfbg13md13nvP/uzP/uZw8PDXa666qqrrrrqqv9oVK666qqrrrrqqqueyzXXXPPgb/qmb3r6y77sy3LVVVdd9Z/pZV/2ZQEeDPzWZ33WZ73OfffddytXXXXVVVddddV/JMrx48e56qqrrrrqqquuut+LvdiLvfZXfMVX/NXLvuzLctVVV131X+XhD3/48Ztvvvmtb7311r85e/bsrVx11VVXXXXVVf9RKMePH+eqq6666qqrrroK4HVe53Xe+5M+6ZN+6mVf9mW56qqrrvqv9vCHP/z4yZMnX3tzc/P4P/zDP/wOV1111VVXXXXVfwTK8ePHueqqq6666qqrrnrHd3zHz3rf933fr37Zl31Zrrrqqqv+uzz84Q8/3lp78Obm5vF/+Id/+B2uuuqqq6666qp/L8rx48e56qqrrrrqqqv+f/vwD//w73rzN3/zj37Zl31Zrrrqqqv+uz384Q8/furUqdcG+Id/+Iff4aqrrrrqqquu+vegHD9+nKuuuuqqq6666v+vz/3cz/2tV3zFV3zrl33Zl+Wqq6666n+K66+/nlOnTr02wD/8wz/8DlddddVVV1111b8V5fjx41x11VVXXXXVVf8/fe7nfu5vvdiLvdhrv+zLvixXXXXVVf/TXH/99Zw6deq1Af7hH/7hd7jqqquuuuqqq/4tKMePH+eqq6666qqrrvr/5ZprrnnwJ33SJ/3Ui73Yi732y77sy3LVVVdd9T/V9ddfz6lTp14b4B/+4R9+h6uuuuqqq6666l+Lcvz4ca666qqrrrrqqv8/rrnmmge/4zu+42e94iu+4lu/7Mu+LFddddVV/9Ndf/31nDp16rUB/uEf/uF3uOqqq6666qqr/jUox48f56qrrrrqqquu+v/hmmuuefCHf/iHf9cHf/AHv/X111/PVVddddX/Ftdffz2nTp16bYB/+Id/+B2uuuqqq6666qoXFeX48eNcddVVV1111VX/911zzTUP/vAP//Dveo/3eI/X5qqrrrrqf6Hrr7+eU6dOvTbAP/zDP/wOV1111VVXXXXVi4Jy/Phxrrrqqquuuuqq/9uuueaaB3/4h3/4d73Yi73Ya19//fVcddVVV/1vdf3113Pq1KnXBviHf/iH3+Gqq6666qqrrvqXUI4fP85VV1111VVXXfV/2yd90if91Iu92Iu99su+7Mty1VVXXfW/3fXXX8+pU6deG+Af/uEffoerrrrqqquuuuqFoRw/fpyrrrrqqquuuur/rs/93M/9rRd7sRd77Zd92Zflqquuuur/iuuvv55Tp069NsA//MM//A5XXXXVVVddddULQjl+/DhXXXXVVVddddX/TZ/7uZ/7Wy/2Yi/22i/7si/LVVddddX/Nddffz2nTp16bYB/+Id/+B2uuuqqq6666qrnh3L8+HGuuuqqq6666qr/ez73cz/3t17sxV7stV/2ZV+Wq6666qr/q66//npaaw8+Ojq6dOutt/41V1111VVXXXXVc6McP36cq6666qqrrrrq/5bP/dzP/a0Xe7EXe+2XfdmX5aqrrrrq/7qHP/zhx2ez2Uvfeuutf3P27Nlbueqqq6666qqrHohy/Phxrrrqqquuuuqq/zs+/MM//Lte8RVf8a1f9mVflquuuuqq/y8e/vCHHz958uRr/9mf/dnPHB4e7nLVVVddddVVV92Pcvz4ca666qqrrrrqqv8b3vEd3/Gz3vzN3/yjX/ZlX5arrrrqqv9vHv7whx+/+eab3/rP/uzPfubw8HCXq6666qqrrroKgMpVV1111VVXXfV/wou92Iu99ju90zt99su+7Mty1VVXXfX/1Ru/8Rs/GPitD/mQD3kIV1111VVXXXUVAMFVV1111VVXXfW/3ou92Iu99ud+7uf+1su+7Mty1VVXXfX/3TXXXPPgb/qmb3o6V1111VVXXXUVAOX48eNcddVVV1111VX/e73Yi73Ya3/u537ub73sy74sV1111VVXwfXXX8/e3t7xa6655sF/+qd/+jNcddVVV1111f9vlOPHj3PVVVddddVVV/3vdM011zz4K77iK/7qZV/2ZbnqqquuuurZrr/+eubz+UsD/MM//MPvcNVVV1111VX/f1GOHz/OVVddddVVV131v9MnfdIn/dQbv/EbP5irrrrqqquex/XXX09r7cG33nrr35w9e/ZWrrrqqquuuur/J8rx48e56qqrrrrqqqv+9/ncz/3c33qxF3ux177++uu56qqrrrrq+Xv4wx9+/OTJk6/9Z3/2Zz9zeHi4y1VXXXXVVVf9/0Plqquuuuqqq676X+cd3/EdP+vFXuzFXvtlX/Zlueqqq6666oV74zd+4wcDv/UhH/IhD+Gqq6666qqr/v+hHD9+nKuuuuqqq6666n+PF3uxF3vtj/iIj/jul33Zl+Wqq6666qoXzd7e3vFrrrnmwX/6p3/6M1x11VVXXXXV/y+U48ePc9VVV1111VVX/e9wzTXXPPgrvuIr/uplX/Zlueqqq6666kV3/fXXM5/PXxrgH/7hH36Hq6666qqrrvr/g3L8+HGuuuqqq6666qr/HT7pkz7pp974jd/4wVx11VVXXfWvdv3119Nae/Ctt976N2fPnr2Vq6666qqrrvr/geCqq6666qqrrvpf4XM/93N/68Ve7MVem6uuuuqqq/7N3viN3/jBH/7hH/5dXHXVVVddddX/HwRXXXXVVVddddX/eO/4ju/4WS/2Yi/22i/7si/LVVddddVV/z7XXHPNgz/8wz/8u7jqqquuuuqq/x8ox48f56qrrrrqqquu+p/rxV7sxV77Iz7iI777ZV/2Zbnqqquuuurf7/rrr2c+n7/02bNnn3Hrrbf+NVddddVVV131fxvl+PHjXHXVVVddddVV/3N97ud+7m+9xmu8xnGuuuqqq676D3P99dczm81e+s/+7M9+5vDwcJerrrrqqquu+r+Lcvz4ca666qqrrrrqqv+ZPvdzP/e3HvKQh7z09ddfz1VXXXXVVf+xHv7whx+fz+cv/Vu/9Vvfw1VXXXXVVVf930U5fvw4V1111VVXXXXV/zwv9mIv9trv9E7v9Nkv+7Ivy1VXXXXVVf85WmsPBviHf/iH3+Gqq6666qqr/m+iHD9+nKuuuuqqq6666n+Wa6655sFf8RVf8Vcv+7Ivy1VXXXXVVf95rr/+elprD7711lv/5uzZs7dy1VVXXXXVVf/3UI4fP85VV1111VVXXfU/yyd90if91Bu/8Rs/mKuuuuqqq/7TPfzhDz/eWnvwb/3Wb30PV1111VVXXfV/D+X48eNcddVVV1111VX/c7zjO77jZ73O67zOe19//fVcddVVV131X6O19uBrrrnmwX/6p3/6M1x11VVXXXXV/y2U48ePc9VVV1111VVX/c/wYi/2Yq/9ER/xEd/9si/7slx11VVXXfVf5/rrr2dvb+/4rbfe+jdnz569lauuuuqqq676v4Pgqquuuuqqq676H+PDP/zDv+tlX/Zlueqqq6666r/eG7/xGz/4wz/8w7+Lq6666qqrrvq/heCqq6666qqrrvof4R3f8R0/65prrnkwV1111VVX/be55pprHvyO7/iOn8VVV1111VVX/d9BOX78OFddddVVV1111X+vF3uxF3vtj/iIj/jul33Zl+Wqq6666qr/Ptdffz2ttQc/4xnP+Jv77rvvVq666qqrrrrqfz+Cq6666qqrrrrqv907vdM7fdbLvuzLctVVV1111X+/N37jN37wO77jO342V1111VVXXfV/A8FVV1111VVXXfXf6nVe53Xe+8Ve7MVem6uuuuqqq/7HeLEXe7HXep3XeZ335qqrrrrqqqv+9yO46qqrrrrqqqv+21xzzTUP/vAP//DvetmXfVmuuuqqq676n+NlX/Zlecd3fMfP4qqrrrrqqqv+9yO46qqrrrrqqqv+23z4h3/4d73sy74sV1111VVX/c9zzTXXPPjDP/zDv4urrrrqqquu+t+N4Kqrrrrqqquu+m/xOq/zOu/9Yi/2Yq/NVVddddVV/yO97Mu+LC/2Yi/22i/2Yi/22lx11VVXXXXV/16U48ePc9VVV1111VVX/df7iq/4ir962Zd9Wa666qqrrvqf6+EPf/jx1tqDf+u3fut7uOqqq6666qr/nQiuuuqqq6666qr/ch/+4R/+XVx11VVXXfW/wou92Iu99ou92Iu9NlddddVVV131vxPBVVddddVVV131X+qaa6558Ou8zuu898u+7Mty1VVXXXXV/3wv+7Ivy4d/+Id/F1ddddVVV131vxPBVVddddVVV131X+rDP/zDv+tlX/Zlueqqq6666n+Pa6655sGv8zqv895cddVVV1111f8+BFddddVVV1111X+ZF3uxF3vtF3uxF3ttrrrqqquu+l/lZV/2ZXmnd3qnz+aqq6666qqr/vchuOqqq6666qqr/su80zu902e97Mu+LFddddVVV/3vc+bMmQd9+Id/+Hdx1VVXXXXVVf+7EFx11VVXXXXVVf8lXud1Xue9X+zFXuy1ueqqq6666n+ll33Zl+XFXuzFXvvFXuzFXpurrrrqqquu+t+D4Kqrrrrqqquu+i/xju/4jp/1si/7slx11VVXXfW/1xu/8Rs/+HVe53Xei6uuuuqqq67634Pgqquuuuqqq676T/eO7/iOn3XNNdc8mKuuuuqqq/7Xe7EXe7HXfrEXe7HX5qqrrrrqqqv+dyC46qqrrrrqqqv+073TO73TZ7/sy74sV1111VVX/e93zTXXPPh1Xud13ourrrrqqquu+t+B4Kqrrrrqqquu+k/14R/+4d/FVVddddVV/2e87Mu+LC/2Yi/22tdcc82Dueqqq6666qr/+Qiuuuqqq6666qr/VK/zOq/z3i/7si/LVVddddVV/3dcc801D37Hd3zHz+Kqq6666qqr/ucjuOqqq6666qqr/tN8+Id/+Hdx1VVXXXXV/zkv+7Ivy4u92Iu99jXXXPNgrrrqqquuuup/NoKrrrrqqquuuuo/zeu8zuu898u+7Mty1VVXXXXV/z3XXHPNg9/xHd/xs7jqqquuuuqq/9kIrrrqqquuuuqq/xTv+I7v+FlcddVVV131f9bLvuzL8uIv/uKvc8011zyYq6666qqrrvqfi3L8+HGuuuqqq6666qr/eJ/7uZ/72y/7si/LVVddddVV/3ft7e0d39zcPP6nf/qnP8NVV1111VVX/c9E5aqrrrrqqquu+g/3ju/4jp/FVVddddVV/+e97Mu+LPfdd99rc9VVV1111VX/cxFcddVVV1111VX/4d7pnd7ps1/2ZV+Wq6666qqr/u+75pprHvw6r/M6781VV1111VVX/c9EcNVVV1111VVX/Yd6x3d8x8/iqquuuuqq/zde9mVflnd8x3f8LK666qqrrrrqfyaCq6666qqrrrrqP9TrvM7rvPfLvuzLctVVV1111f8f11xzzYNf7MVe7LW56qqrrrrqqv95CK666qqrrrrqqv8wr/M6r/Pe11xzzYO56qqrrrrq/5WXfdmX5Z3e6Z0+i6uuuuqqq676n4fgqquuuuqqq676D/M6r/M67/WyL/uyXHXVVVdd9f/PmTNnHnzNNdc8mKuuuuqqq676n4Xgqquuuuqqq676D/FiL/Zir/1iL/Zir81VV1111VX/L11zzTUPfsd3fMfP4qqrrrrqqqv+Z6Fy1VVXXXXVVVf9h3id13md93rZl31Zrrrqqquu+v/pZV/2Zbnvvvtem6uuuuqqq676n4Xgqquuuuqqq676D/E6r/M6781VV1111VX/r11zzTUPfvEXf/HX5qqrrrrqqqv+5yC46qqrrrrqqqv+3V7ndV7nvbnqqquuuur/vZd92ZflHd/xHT+bq6666qqrrvqfg8pVV1111VVXXfXv9o7v+I6f9bIv+7JcddVVV1111TXXXPNgrrrqqquuuup/DoKrrrrqqquuuurf5cVe7MVe+5prrnkwV1111VVXXQWcOXPmQe/4ju/4WVx11VVXXXXV/wwEV1111VVXXXXVv8vrvM7rvNfLvuzLctVVV1111VUAL/uyL8vrvM7rvDdXXXXVVVdd9T8DwVVXXXXVVVdd9e/yOq/zOu/NVVddddVVVz3ANddc8+AXe7EXe22uuuqqq6666r8fwVVXXXXVVVdd9W/2Oq/zOu/NVVddddVVVz0fL/ZiL/ZaXHXVVVddddV/P4Krrrrqqquuuurf7HVe53Xe62Vf9mW56qqrrrrqqgd62Zd9WV7ndV7nvbnqqquuuuqq/34EV1111VVXXXXVv9mLvdiLvTZXXXXVVVdd9Xxcc801D36xF3ux1+aqq6666qqr/nsRXHXVVVddddVV/ybv+I7v+FlcddVVV1111Qvwsi/7srzO67zOe3HVVVddddVV/72oXHXVVVddddVV/yav8zqv894v+7Ivy1VXXXXVVVe9IC/2Yi/22lx11VVXXXXVfy+Cq6666qqrrrrqX+11Xud13vuaa655MFddddVVV131QlxzzTUPfrEXe7HX5qqrrrrqqqv++xBcddVVV1111VX/amfOnHnQy77sy3LVVVddddVV/5IXe7EXey2uuuqqq6666r8PwVVXXXXVVVdd9a/2Oq/zOu/NVVddddVVV/0LXvZlX5bXeZ3XeW+uuuqqq6666r8PwVVXXXXVVVdd9a/yOq/zOu99zTXXPJirrrrqqquuehFcc801D37xF3/x1+aqq6666qqr/ntQueqqq6666qqr/lVe7MVe7LW46qqrrrrqqn+FM2fOPJirrrrqqquu+u9BcNVVV1111VVX/au82Iu92Gu/7Mu+LFddddVVV131onjZl31ZXud1Xue9ueqqq6666qr/HlSuuuqqq6666qp/lWuuuebBXHXVVVddddW/wjXXXPNgrrrqqquuuuq/B8FVV1111VVXXfUie53XeZ335qqrrrrqqqv+lc6cOfOgF3uxF3ttrrrqqquuuuq/HsFVV1111VVXXfUie7EXe7HXetmXfVmuuuqqq6666l/jZV/2ZXmxF3ux1+Kqq6666qqr/usRXHXVVVddddVVL7LXeZ3XeW+uuuqqq6666t/gxV/8xV+bq6666qqrrvqvR+Wqq6666qqrrnqRvNiLvdhrc9VVV1111VX/RmfOnHkwV1111VVXXfVfj+Cqq6666qqrrnqRvM7rvM57vezLvixXXXXVVVdd9W9xzTXXPPjFXuzFXpurrrrqqquu+q9FcNVVV1111VVXvUhe7MVe7LW56qqrrrrqqn+HF3uxF3strrrqqquuuuq/FsFVV1111VVXXfUiueaaax7MVVddddVVV/0bvezLviwv/uIv/tpcddVVV1111X8tKlddddVVV1111b/odV7ndd6bq6666qqrrvp3OnPmzIO56qqrrrrqqv9aBFddddVVV1111b/oxV7sxV7rZV/2Zbnqqquuuuqqf49rrrnmwS/2Yi/22lx11VVXXXXVfx2Cq6666qqrrrrqX/RiL/Zir81VV1111VVX/Qd4sRd7sdfiqquuuuqqq/7rEFx11VVXXXXVVf+ia6655sFcddVVV1111b/Ty77sy/LiL/7ir81VV1111VVX/dehctVVV1111VVXvVCv8zqv895cddVVV1111X+QM2fOPJirrrrqqquu+q9D5aqrrrrqqquueqFe7MVe7LVe9mVflquuuuqqq676j3DNNdc8mKuuuuqqq676r0Nw1VVXXXXVVVe9UC/2Yi/22lx11VVXXXXVf6AXe7EXe22uuuqqq6666r8GwVVXXXXVVVddddVVV1111VX/pa655poHc9VVV1111VX/NahcddVVV1111VUv1DXXXPNgrrrqqquuuuo/yMu+7Mty5syZB3HVVVddddVV/zUIrrrqqquuuuqqF+h1Xud13purrrrqqquu+g/24i/+4q/NVVddddVVV/3XoHLVVVddddVVV71AZ86ceRBXXXXVVVdd9R/szJkzD+aqq6666qqr/msQXHXVVVddddVVL9A111zz4Jd92Zflqquuuuqqq/4jXXPNNQ++5pprHsxVV1111VVX/ecjuOqqq6666qqrXqAXe7EXe22uuuqqq6666j/BNddc82Cuuuqqq6666j8fwVVXXXXVVVdd9QJdc801D+aqq6666qqr/hM89rGPfS2uuuqqq6666j8fwVVXXXXVVVdd9Xy9zuu8zntz1VVXXXXVVf8JXvZlX5arrrrqqquu+i9CcNVVV1111VVXXXXVVVddddV/uRd/8Rd/Ha666qqrrrrqPx+Vq6666qqrrrrq+XqxF3ux13rZl31Zrrrqqquuuuqqq6666qqr/hejctVVV1111VVXXXXVVVddddV/uWuuuebBXHXVVVddddV/PipXXXXVVVddddXz9WIv9mKvzVVXXXXVVVf9Jzlz5syDuOqqq6666qr/fARXXXXVVVddddXzdc011zyYq6666qqrrvpP9GIv9mKvzVVXXXXVVVf956Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Vw1VVXXXXVVVc9jxd7sRd7ba666qqrrrrqP9mLvdiLvRZXXXXVVVdd9Z+L4Kqrrrrqqquueh7XXHPNg7nqqquuuuqq/0Qv+7Ivy1VXXXXVVVf9F6By1VVXXXXVVVc9jzNnzjyIq6666qqrrrrqqquuuuqq//2oXHXVVVddddVVz+Oaa6558Mu+7Mty1VVXXXXVVf+Zrrnmmgdz1VVXXXXVVf+5qFx11VVXXXXVVVddddVVV1313+Kaa655MFddddVVV131n4vKVVddddVVV131PK655poHc9VVV1111VVXXXXVVVdd9b8flauuuuqqq6666nmcOXPmwVx11VVXXXXVf7IzZ848mKuuuuqqq676z0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV131PK655poHc9VVV1111VX/ya655poHc9VVV1111VX/uahcddVVV1111VVXXXXVVVddddVVV1111VX/VxFcddVVV1111VXP4ZprrnkwV1111VVXXfVf5JprrnkwV1111VVXXfWfh8pVV1111VVXXfUczpw582Cuuuqqq6666qqrrrrqqqv+b6By1VVXXXXVVVc9h2uuuebBXHXVVVddddVVV1111VVX/d9A5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qgquuuuqqq6666qqrrrrqqqv+25w5c+bBXHXVVVddddV/HipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qrncObMmQdx1VVXXXXVVVddddVVV131fwOVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV/23OXv27K1cddVVV1111X8eKlddddVVV1111fN42Zd9Wa666qqrrrrqqquuuuqqq/4PILjqqquuuuqqq57HX/7lX3LVVVddddVVV1111VVXXfV/AJWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVX/be57777buWqq6666qqr/vNQueqqq6666qqrnsPZs2efwVVXXXXVVVddddVVV1111f8NVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1313+K+++67lauuuuqqq676z0Xlqquuuuqqq656Dvfdd9+tXHXVVVddddVVV1111VVX/d9A5aqrrrrqqquuuuqqq6666qr/FmfPnr2Vq6666qqrrvrPReWqq6666qqrrrrqqquuuuqq/3LDMHDffffdylVXXXXVVVf956Jy1VVXXXXVVVddddVVV1111X+5YRi46qqrrrrqqv8CVK666qqrrrrqqudw9uzZW7nqqquuuuqq/2Tr9Zr77rvvVq666qqrrrrqPxeVq6666qqrrrrqqquuuuqqq/7LPeMZz+Ds2bPP4Kqrrrrqqqv+c1G56qqrrrrqqquew3333XcrV1111VVXXXXVVVddddVV/zcQXHXVVVddddVVz+O+++67lauuuuqqq676T/YP//APv81VV1111VVX/eciuOqqq6666qqrnsfZs2dv5aqrrrrqqquuuuqqq6666n8/KlddddVVV1111VVXXXXVVVf9l/uHf/iH377vvvtu5aqrrrrqqqv+c1G56qqrrrrqqquex3333XcrV1111VX/yX75l3/51rNnz97KVf8vfeZnfubrcNVVV1111VX/+ahcddVVV1111VXP47777rv1L//yL3nZl31Zrrrqqqv+M/zlX/4l//AP//DbX//1X/8+XHXVVVddddVVV/3noXLVVVddddVVV1111VVX/bf4rd/6re/hqquuuuqqq6666j8Xlauuuuqqq6666nn8wz/8w+9w1VVXXfWf7B/+4R9+m6uuuuqqq6666qr/XFSuuuqqq6666qrncfbs2Vu56qqrrvpP9Fu/9VvfzVVXXXXVVVddddV/PipXXXXVVVddddVVV1111X+pv/zLv+Qf/uEffoerrrrqqquuuuqq/3wEV1111VVXXXXV87jvvvtuve+++27lqquuuuo/yT/8wz/8NlddddVVV1111VX/+Qiuuuqqq6666qrn6+zZs7dy1VVXXfWf5L777ruVq6666qqrrrrqqv98BFddddVVV1111fP193//97/NVVddddV/gt/6rd/6Hq666qqrrrrqqqv+axBcddVVV1111VUv0F/+5V9y1VVXXfUf6S//8i/5h3/4h9/mqquuuuqqq6666r8Glauuuuqqq6666vn6h3/4h9/hqquuuuo/wW/91m99N1ddddVVV1111VX/NahcddVVV1111VXP19mzZ2/lqquuuuo/2G/91m99N1ddddVVV1111VX/dQiuuuqqq6666qoX6L777ruVq6666qr/IH/5l3/JP/zDP/wOV1111VVXXXXVVf91CK666qqrrrrqqufrvvvuu/Xs2bO3ctVVV131H+gf/uEffpurrrrqqquuuuqq/zoEV1111VVXXXXVC/T3f//3v81VV1111X+g++6771auuuqqq6666qqr/usQXHXVVVddddVVL9A//MM//M5f/uVfctVVV131H+G3fuu3vpurrrrqqquuuuqq/1pUrrrqqquuuuqqF+js2bO3ctVVV131H+Av//Iv+Yd/+Iff4aqrrrrqqquuuuq/FpWrrrrqqquuuuqqq6666r/EP/zDP/w2V1111VVXXXXVVf+1CK666qqrrrrqqhfovvvuu/Uf/uEffpurrrrqqn+n3/qt3/ru++6771auuuqqq6666qqr/msRXHXVVVddddVVL9Tf//3f/zZXXXXVVf8Of/mXf8k//MM//A5XXXXVVVddddVV//UIrrrqqquuuuqqF+of/uEffucv//Ivueqqq6769/iHf/iH3+aqq6666qqrrrrqvx6Vq6666qqrrrrqhTp79uytXHXVVVf9O9133323ctVVV1111VVXXfVfj+Cqq6666qqrrnqh7rvvvlvvu+++W7nqqquu+jf6rd/6re/mqquuuuqqq6666r8HwVVXXXXVVVdd9S86e/bsrVx11VVX/Rv85V/+Jf/wD//wO1x11VVXXXXVVVf99yC46qqrrrrqqqv+Rb/1W7/1PX/5l3/JVVddddW/xT/8wz/8NlddddVVV1111VX/PahcddVVV1111VX/on/4h3/4ba666qqr/g3+4R/+4Xfuu+++W7nqqquuuuqqq67670Fw1VVXXXXVVVf9i+67775b77vvvlu56qqrrvpX+Mu//Evuu+++W7nqqquuuuqqq67670Nw1VVXXXXVVVe9SM6ePXsrV1111VX/Sr/1W7/13Vx11VVXXXXVVVf99yG46qqrrrrqqqteJD/yIz/yOX/5l3/JVVddddW/xj/8wz/8NlddddVVV1111VX/fahcddVVV1111VUvkrNnz97KVVddddW/wm/91m99N1ddddVVV1111VX/vQiuuuqqq6666qoXyX333XfrP/zDP/w2V1111VUvgr/8y7/kH/7hH36Hq6666qqrrrrqqv9eBFddddVVV1111Yvs7//+73+bq6666qoX0T/8wz/8NlddddVVV1111VX/vQiuuuqqq6666qoX2T/8wz/8zl/+5V9y1VVXXfWiuO+++27lqquuuuqqq6666r8XwVVXXXXVVVdd9SL7h3/4h9/+h3/4h9/mqquuuupf8Fu/9VvfzVVXXXXVVVddddV/PypXXXXVVVddddW/yn333XcrV1111VUvxF/+5V/yD//wD7/DVVddddVVV1111X8/gquuuuqqq6666l/lt37rt77nL//yL7nqqquuemF+67d+67u56qqrrrrqqquu+u9H5aqrrrrqqquu+lc5e/bsrVx11VVXvRC/9Vu/9d1cddVVV1111VVX/c9AcNVVV1111VVX/avcd999t/7DP/zDb3PVVVdd9Xz85V/+Jf/wD//wO1x11VVXXXXVVVf9z0Bw1VVXXXXVVVf9q/3Ij/zI5/zlX/4lV1111VXPzz/8wz/8NlddddVVV1111VX/M1C56qqrrrrqqqv+1c6ePXsrV1111VUvwH333XcrV1111VVXXXXVVf8zEFx11VVXXXXVVf9q9913362/9Vu/9d1cddVVVz2X3/qt3/purrrqqquuuuqqq/7nILjqqquuuuqqq/5Nfuu3fut7/vIv/5Krrrrqqvv95V/+Jf/wD//wO1x11VVXXXXVVVf9z0Fw1VVXXXXVVVf9m/zDP/zDb//DP/zDb3PVVVdd9QD/8A//8NtcddVVV1111VVX/c9BcNVVV1111VVX/Zv9/d///W//5V/+JVddddVVAL/1W7/1Pffdd9+tXHXVVVddddVVV/3PQXDVVVddddVVV/2b/fZv//b3cNVVV10F/OVf/iX33Xff07nqqquuuuqqq676n4Xgqquuuuqqq676N7vvvvtu/Yd/+Iff5qqrrroK+Id/+Iff4aqrrrrqqquuuup/FoKrrrrqqquuuurf5bd+67e+5y//8i+56qqrrvqHf/iH3+aqq6666qqrrrrqfxYqV1111VVXXXXVv8s//MM//DZXXXXV/3u/9Vu/9d1cddVVV1111VVX/c9DcNVVV1111VVX/bvcd999t/7Wb/3Wd3PVVVf9v/WXf/mX/MM//MPvcNVVV1111VVXXfU/D8FVV1111VVXXfXv9qM/+qOf85d/+ZdcddVV/3/9wz/8w29z1VVXXXXVVVdd9T8PwVVXXXXVVVdd9e9233333foP//APv81VV131/9Z99913K1ddddVVV1111VX/8xBcddVVV1111VX/IX7kR37kc/7yL/+Sq6666v+f3/qt3/purrrqqquuuuqqq/5nIrjqqquuuuqqq/5D/MM//MNv/8M//MNvc9VVV/2/8pd/+Zf81m/91vdw1VVXXXXVVVdd9T8TwVVXXXXVVVdd9R/mt37rt77nL//yL7nqqqv+f/mHf/iH3+aqq6666qqrrrrqfyYqV1111VVXXXXVf5h/+Id/+G2uuuqq/1d+67d+67u56qqrrrrqqquu+p+L4Kqrrrrqqquu+g9z33333fpbv/Vb3/2Xf/mXXHXVVf/3/eVf/iX/8A//8DtcddVVV1111VVX/c9FcNVVV1111VVX/Yf60R/90c/hqquu+n/jH/7hH36bq6666qqrrrrqqv+5CK666qqrrrrqqv9Q9913362/9Vu/9d1/+Zd/yVVXXfV/33333XcrV1111VVXXXXVVf9zEVx11VVXXXXVVf/hfvRHf/RzuOqqq/7P+63f+q3v5qqrrrrqqquuuup/NoKrrrrqqquuuuo/3H333Xfrb/3Wb333X/7lX3LVVVf93/SXf/mX/MM//MPvcNVVV1111VVXXfU/G8FVV1111VVXXfWf4kd/9Ec/h6uuuur/tN/6rd/6bq666qqrrrrqqqv+ZyO46qqrrrrqqqv+U9x33323/tZv/dZ3/+Vf/iVXXXXV/z2/9Vu/9T1cddVVV1111VVX/c9HcNVVV1111VVX/af50R/90c/hqquu+j/nL//yL/mHf/iH3+aqq6666qqrrrrqfz6Cq6666qqrrrrqP819991362/91m9991/+5V9y1VVX/d/yD//wD7/NVVddddVVV1111f98BFddddVVV1111X+qH/3RH/0crrrqqv9z7rvvvlu56qqrrrrqqquu+p+P4Kqrrrrqqquu+k9133333fr1X//17/OXf/mXXHXVVf83/NZv/dZ3c9VVV1111VVXXfW/A8FVV1111VVXXfWf7h/+4R9++7777ruVq6666n+9v/zLv+Qf/uEffoerrrrqqquuuuqq/x0Irrrqqquuuuqq/3T33XffrT/6oz/6OX/5l3/JVVdd9b/fP/zDP/w2V1111VVXXXXVVf87EFx11VVXXXXVVf8l/uEf/uG3/+Ef/uG3ueqqq/5X+63f+q3vvu+++27lqquuuuqqq6666n8Hgquuuuqqq6666r/Efffdd+uP/MiPfM5f/uVfctVVV/3v9Jd/+ZdcddVVV1111VVX/S9DcNVVV1111VVX/Zf5h3/4h9/+h3/4h9/mqquu+l/rt37rt76Hq6666qqrrrrqqv89CK666qqrrrrqqv9SX//1X/8+f/mXf8lVV131v9M//MM//DZXXXXVVVddddVV/3tQjh8/zlVXXXXVVVdd9V/n8PBwF+DUqVOvff3113PVVVf97/GDP/iD3/2nf/qnP8NVV1111VVXXXXV/x4EV1111VVXXXXVf7nf/u3f/p777rvvVq666qr/Nf7yL/+Sf/iHf/gdrrrqqquuuuqqq/53Ibjqqquuuuqqq/7L3Xfffbd+/dd//fv85V/+JVddddX/Hv/wD//w21x11VVXXXXVVVf970Jw1VVXXXXVVVf9t/iHf/iH3/6t3/qt7/7Lv/xLrrrqqv8d7rvvvlu56qqrrrrqqquu+t+F4Kqrrrrqqquu+m/zoz/6o5/DVVdd9b/Cb/3Wb303V1111VVXXXXVVf/7EFx11VVXXXXVVf9t7rvvvlu//uu//n3+8i//kquuuup/rr/8y7/kH/7hH36Hq6666qqrrrrqqv99CK666qqrrrrqqv9Wv/Vbv/Xd//AP//DbXHXVVf+j/dZv/dZ3c9VVV1111VVXXfW/D8FVV1111VVXXfXf7uu//uvf5y//8i+56qqr/mf6rd/6re/hqquuuuqqq6666n8ngquuuuqqq6666r/dfffdd+vXf/3Xv89f/uVfctVVV/3P8pd/+Zf8wz/8w29z1VVXXXXVVVdd9b8TwVVXXXXVVVdd9T/Cb/3Wb333P/zDP/w2V1111f84//AP//DbXHXVVVddddVVV/3vRHDVVVddddVVV/2P8fVf//Xv85d/+ZdcddVV/7Pcd999t3LVVVddddVVV131vxPBVVddddVVV131P8Z9991369d//de/z1/+5V9y1VVX/c/wW7/1W9/NVVddddVVV1111f9elOPHj3PVVVddddVVV/3Pceutt/71Nddc8+D5fP7S119/PVddddV/n7/8y7/kF37hF77m1ltv/Wuuuuqqq6666qqr/nciuOqqq6666qqr/sf50R/90c+57777buWqq676b/cP//APv81VV1111VVXXXXV/14EV1111VVXXXXV/zj33XffrV//9V//Pn/5l3/JVVdd9d/nt37rt777vvvuu5Wrrrrqqquuuuqq/70ox48f56qrrrrqqquu+p/n7NmztwKcOnXqta+//nquuuqq/1p/+Zd/yZ/+6Z/+9D/8wz/8DlddddVVV1111VX/exFcddVVV1111VX/Y/32b//29/zDP/zDb//lX/4lV1111X+93/7t3/4errrqqquuuuqqq/53I7jqqquuuuqqq/7Huu+++279+q//+ve57777buWqq676L3fffffdylVXXXXVVVddddX/bgRXXXXVVVddddX/aPfdd9+tn/mZn/naf/mXf8lVV131X+e3fuu3vpurrrrqqquuuuqq//0Irrrqqquuuuqq//HOnj37jK//+q9/n7/8y7/kqquu+s/3l3/5l/zDP/zD73DVVVddddVVV131vx+Vq6666qqrrrrqf4Xf+q3f+u4zZ848CPjsl33Zl+Wqq676z/UP//APv81VV1111VVXXXXV/34EV1111VVXXXXV/xq//du//T3/8A//8NtcddVV/6nuu+++W++7775bueqqq6666qqrrvrfj+Cqq6666qqrrvpf47777rv167/+69/nl3/5l2/lqquu+k/zD//wD7/NVVddddVVV1111f8NBFddddVVV1111f8q9913362f9Vmf9Tp/+Zd/yVVXXfUf7y//8i/5rd/6re/hqquuuuqqq6666v8Ggquuuuqqq6666n+d++6779av//qvf5+//Mu/5KqrrvqP9w//8A+/zVVXXXXVVVddddX/DVSuuuqqq6666qr/lX7rt37ru8+cOfMg4LNf9mVflquuuuo/xm/91m99D1ddddVVV1111VX/d1C56qqrrrrqqqv+1/rRH/3Rz+GKz37Zl31Zrrrqqn+fv/zLv+Qf/uEffpurrrrqqquuuuqq/zsIrrrqqquuuuqq/9V++7d/+3v+4R/+4bf/8i//kquuuurf7x/+4R9+m6uuuuqqq6666qr/Owiuuuqqq6666qr/1e67775bv/7rv/59/uEf/uG3ueqqq/7d7rvvvlu56qqrrrrqqquu+r+D4Kqrrrrqqquu+l/vvvvuu/Xrv/7r3+eXf/mXb+Wqq676N/ut3/qt7+aqq6666qqrrrrq/xaCq6666qqrrrrq/4T77rvv1s/8zM987V/+5V++lauuuupf7S//8i/5h3/4h9/hqquuuuqqq6666v8Wgquuuuqqq6666v+Ms2fPPuOzPuuzXucv//Ivueqqq/71fuu3fuu7ueqqq6666qqrrvq/heCqq6666qqrrvo/5b777rv1Qz7kQx7yl3/5l1x11VUvut/6rd/6bq666qqrrrrqqqv+7yG46qqrrrrqqqv+z7nvvvtu/fqv//r3+cu//Euuuuqqf9lf/uVf8g//8A+/w1VXXXXVVVddddX/PVSuuuqqq6666qr/k37rt37ruwE+/MM//Lte9mVflquuuuqF+4d/+Iff5qqrrrrqqquuuur/HipXXXXVVVddddX/Wb/1W7/13QAf/uEf/l0v+7Ivy1VXXfWC3Xfffbdy1VVXXXXVVVdd9X8P5fjx41x11VVXXXXVVf933XrrrX999uzZZ9x8881vff3113PVVVc9rx/8wR/87j/90z/9Ga666qqrrrrqqqv+76EcP36cq6666qqrrrrq/7Zbb731r8+ePfuMm2+++a2vv/56rrrqqmf7y7/8S37hF37ha2699da/5qqrrrrqqquuuur/HipXXXXVVVddddX/C7/1W7/13QAf/uEf/l0v+7Ivy1VXXfVs//AP//DbXHXVVVddddVVV/3fRHDVVVddddVVV/2/8Vu/9Vvf/Zmf+Zmv85d/+ZdcddVVV/zWb/3Wd9933323ctVVV1111VVXXfV/E8FVV1111VVXXfX/yj/8wz/89gd/8Ac/+C//8i+56qr/7/7yL/+Sq6666qqrrrrqqv/jCK666qqrrrrqqv93zp49+4wP+ZAPechf/uVfctVV/9/91m/91vdw1VVXXXXVVVdd9X8XwVVXXXXVVVdd9f/Sfffdd+uHfMiHPOSXf/mXb+Wqq/4f+4d/+Iff5qqrrrrqqquuuur/LipXXXXVVVddddX/W/fdd9+tn/VZn/U6wG9dc801D37Zl31Zrrrq/5Pf+q3f+h6uuuqqq6666qqr/m+jHD9+nKuuuuqqq6666v+vw8PD3T/7sz/7mc3NzePz+fylr7/+eq666v+Dv/zLv+QXfuEXvubWW2/9a6666qqrrrrqqqv+76IcP36cq6666qqrrrrq/7fDw8Pdpz/96X99eHi4e+rUqde+/vrrueqq/+vuvvtuvuu7vutjDg8Pd7nqqquuuuqqq676v4vKVVddddVVV111FXD27Nln/OiP/ujncMVnv+zLvixXXfV/3X333XcrV1111VVXXXXVVf+3Ubnqqquuuuqqq656gB/90R/9HK747Jd92Zflqqv+r/qt3/qt7+aqq6666qqrrrrq/z6Cq6666qqrrrrqqufyoz/6o5/zIR/yIQ/55V/+5Vu56qr/g/7yL/+Sf/iHf/gdrrrqqquuuuqqq/7vo3LVVVddddVVV131fNx33323fuZnfuZrA799zTXXPPhlX/Zlueqq/0t+67d+67u56qqrrrrqqquu+r+Pcvz4ca666qqrrrrqqquen6Ojo0t/9md/9jOHh4e7p06deu3rr7+eq676v+AHf/AHv/tP//RPf4arrrrqqquuuuqq//uoXHXVVVddddVVV70Q9913360/+qM/+jlc8dkv+7Ivy1VX/W/2l3/5l/zDP/zD73DVVVddddVVV131/wPBVVddddVVV1111YvgR3/0Rz/nMz/zM1/nL//yL7nqqv/t/uEf/uG3ueqqq6666qqrrvr/geCqq6666qqrrrrqRfQP//APv/3BH/zBD/7lX/7lW//yL/+Sq6763+q+++67lauuuuqqq6666qr/HyjHjx/nqquuuuqqq6666kV1dHR06c/+7M9+5vDwcPfUqVOvff3113PVVf+b/OAP/uB3/+mf/unPcNVVV1111VVXXfX/A+X48eNcddVVV1111VVX/WscHh7u/sM//MPv/MM//MPvnDx58rUf/vCHH+eqq/4X+Mu//Et+4Rd+4WtuvfXWv+aqq6666qqrrrrq/wfK8ePHueqqq6666qqrrvq3OHv27K1/9md/9jPz+fylW2sPvv7667nqqv/J7r77br7ru77rYw4PD3e56qqrrrrqqquu+v+Bcvz4ca666qqrrrrqqqv+rQ4PD3f//u///rcPDw93T5069drXX389V131P9UP/uAPfvdv/dZvfQ9XXXXVVVddddVV/39Qjh8/zlVXXXXVVVddddW/x9HR0aV/+Id/+J3f/u3f/p6bb775rff29o5ff/31XHXV/yR/+Zd/yZ/+6Z/+9D/8wz/8DlddddVVV1111VX/f1COHz/OVVddddVVV1111X+Ew8PD3T/7sz/7mcPDw91Tp0699vXXX89VV/1Pcffdd/MN3/AN73N4eLjLVVddddVVV1111f8f6EEPehBXXXXVVVddddVV/9HOnDnzoM/93M/97WuuuebBL/uyL8tVV/13+8u//Eve7u3eTlx11VVXXXXVVVf9/0I5fvw4V1111VVXXXXVVf/Rjo6OLv3Zn/3ZzxweHu6eOnXqta+//nquuuq/0w/+4A9+z5/+6Z/+NFddddVVV1111VX/v1COHz/OVVddddVVV1111X+Gw8PD3X/4h3/4nd/+7d/+nptvvvmt9/b2jl9//fVcddV/tb/8y7/kF37hF77m1ltv/Wuuuuqqq6666qqr/n+hHD9+nKuuuuqqq6666qr/TIeHh7t/9md/9jOHh4e7p06deu3rr7+eq676r3T33XfzXd/1XR9zeHi4y1VXXXXVVVddddX/L5Tjx49z1VVXXXXVVVdd9Z/t8PBw9x/+4R9+57d/+7e/Zz6fv3Rr7cHXX389V131X+Fv/uZvbv3RH/3Rz+Gqq6666qqrrrrq/x/K8ePHueqqq6666qqrrvqvcnh4uPsP//APv3N4eLh76tSp17777ru5/vrrueqq/yx/+Zd/yZ/+6Z/+9J/+6Z/+DFddddVVV1111VX//1COHz/OVVddddVVV1111X+lw8PD3X/4h3/4nd/+7d/+nsPDw91Tp0699vXXX89VV/1nuPvuu/mu7/qujzl79uytXHXVVVddddVVV/3/gx70oAdx1VVXXXXVVVdd9d/pmmuuefDnfM7n/NY111zz4Jd92Zflqqv+I/3lX/4lb/d2byeuuuqqq6666qqr/n+iHD9+nKuuuuqqq6666qr/ToeHh7t/9md/9jOHh4e7p06deu27776b66+/nquu+o/wgz/4g9/9p3/6pz/DVVddddVVV1111f9PlOPHj3PVVVddddVVV1313+3w8HD3H/7hH37nt3/7t7/n8PBw99SpU6999913c/3113PVVf9Wf/mXf8kv/MIvfM2tt97611x11VVXXXXVVVf9/0Q5fvw4V1111VVXXXXVVf9THB4e7v7DP/zD7/z2b//29xweHu6eOnXqta+//nquuurf4u677+a7vuu7Pubw8HCXq6666qqrrrrqqv+fKMePH+eqq6666qqrrrrqf5rDw8Pdf/iHf/id3/7t3/6evb294/P5/KWvv/56rrrqX+Puu+/mu77ruz6Gq6666qqrrrrqqv+/KMePH+eqq6666qqrrrrqf6rDw8PdP/3TP/2Z3/qt3/ru+Xz+0q21B19//fVcddWL4gd/8Ae/+0//9E9/hquuuuqqq6666qr/vyjHjx/nqquuuuqqq6666n+6o6OjS7/1W7/1PWfPnn3G3t7e8dbag6+//nquuuoF+cu//Et+4Rd+4WtuvfXWv+aqq6666qqrrrrq/y/0oAc9iKuuuuqqq6666qr/ba655poHf/iHf/h3vdiLvdhrv+zLvixXXfXc/vIv/5K3e7u3E1ddddVVV1111VX/v1GOHz/OVVddddVVV1111f82h4eHu7/1W7/1Pb/927/9PfP5/KVbaw++/vrrueqq+/3gD/7gd//pn/7pz3DVVVddddVVV131/xvl+PHjXHXVVVddddVVV/1vdXh4uPtbv/Vb3/Pbv/3b3zOfz1+6tfbg66+/nqv+f/vLv/xLfuEXfuFrbr311r/mqquuuuqqq6666v83yvHjx7nqqquuuuqqq6763+7w8HD3t37rt77nt37rt777KU95yu6pU6de++677+b666/nqv9/7r77br7ru77rYw4PD3e56qqrrrrqqquu+v+Ncvz4ca666qqrrrrqqqv+rzg6Orr0D//wD7/z27/9299zeHi421p78N7e3vHrr7+eq/7/uPvuu/mu7/quj+Gqq6666qqrrrrqKsrx48e56qqrrrrqqquu+r/m8PBw9x/+4R9+58/+7M9+5tZbb/3rvb294621B19//fVc9X/fD/7gD37Pn/7pn/40V1111VVXXXXVVVdRjh8/zlVXXXXVVVddddX/VYeHh7u33nrr3/zWb/3W9/z2b//29+zt7R2fz+cvfffdd3P99ddz1f89f/mXf8kv/MIvfM2tt97611x11VVXXXXVVVddRTl+/DhXXXXVVVddddVV/x8cHh7u/umf/unP/PZv//b3HB4e7t5zzz201h58/fXXc9X/HXfffTff9V3f9TGHh4e7XHXVVVddddVVV12FHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+r3d6p3f6bICXfdmX5ar/3b7iK77iu7/+67/+fbjqqquuuuqqq666CoBy/Phxrrrqqquuuuqqq/6/Ojw83P2Hf/iH3/nt3/7t77n11lv/em9v73hr7cF33303119/PVf97/KXf/mX3HrrrX/9p3/6pz/DVVddddVVV1111VUAVK666qqrrrrqqquu4r777rv1vvvuu/W3fuu3vueaa6558Gu/9mu/1z/8wz+89ou92Iu9NsDLvuzLctX/Dr/1W7/1PVx11VVXXXXVVVdddT/0oAc9iKuuuuqqq6666qqrnr8zZ8486HVe53Xe+8Vf/MVf+8Ve7MVeG+BlX/Zluep/pr/8y7/k7d7u7cRVV1111VVXXXXVVfejHD9+nKuuuuqqq6666qqrnr+jo6NL//AP//A7v/Vbv/U9v/3bv/09h4eHu/fccw+ttQfffffdXH/99Vz1P8cP/uAPfvef/umf/gxXXXXVVVddddVVV90PPehBD+Kqq6666qqrrrrqqn+da6655sEv9mIv9tqv8zqv814v9mIv9toAL/uyL8tV/33+8i//kq//+q9/n9/6rd/6bq666qqrrrrqqquuuh960IMexFVXXXXVVVddddVV/3bXXHPNg1/sxV7stV7sxV7stV/sxV7sta+55poH33fffbe+8Ru/8YO56r/MX/7lX/IhH/IhD7nvvvtu5aqrrrrqqquuuuqq+1G56qqrrrrqqquuuurf5b777rv1vvvuu/W3fuu3vgfgmmuuefCZM2cefPbs2c96sRd7sdfmmV72ZV+Wq/5z3Xfffbdy1VVXXXXVVVddddUDUbnqqquuuuqqq6666j/Ufffdd+t9991362d+5mf+9jXXXPNggBd7sRd77dd5ndd5rxd7sRd7bZ7pZV/2ZbnqP85v/dZvfTdXXXXVVVddddVVVz03KlddddVVV1111VVX/ae57777bgW47777vvu3fuu3vvvMmTMPkqQXe7EXe+0Xe7EXe63XeZ3XeW8e4GVf9mW56l/vL//yL/mHf/iH3+Gqq6666qqrrrrqqueGHvSgB3HVVVddddVVV1111X+fM2fOPOjFX/zFX+fMmTMPevEXf/HXfrEXe7HX5ple9mVflqv+ZX/5l3/J273d24mrrrrqqquuuuqqq54betCDHsRVV1111VVXXXXVVf+znDlz5kEv/uIv/jov9mIv9loA11xzzYNf7MVe7LV5gJd92Zflqiu+4iu+4ru//uu//n246qqrrrrqqquuuuq5oQc96EFcddVVV1111VVXXfU/35kzZx4kSS/2Yi/22mfOnHnQNddc8+BrrrnmwS/2Yi/22jyXl33Zl+X/qr/8y7/kgX7rt37re77+67/+vbnqqquuuuqqq6666vlBD3rQg7jqqquuuuqqq6666n+3a6655sFnzpx58DXXXPNgwC/2Yi/22tdcc82DAV7sxV7stXkBXvZlX5b/Kf7yL/+S5+e+++679ezZs7fed999t9533323AvzDP/zD75w9e/bW++6771auuuqqq6666qqrrnph0IMe9CCuuuqqq6666qqrrvq/7cyZMw+SpDNnzjz4mmuueTDAmTNnHnTNNdc8GOCaa655MMCZM2cezDNdc801D+Y/0H333XcrD3D27Nlb77vvvlvvu+++W3mms2fPPuO+++67FeAf/uEffpurrrrqqquuuuqqq/690IMe9CCuuuqqq6666qqrrrrqhbnmmmsezAPYtiTxALYtSTzAfffddytXXXXVVVddddVVV/13Qg960IO46qqrrrrqqquuuuqqq6666qqrrrrqqqv+T6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+EdhNk3j0Re8FQAAAABJRU5ErkJggg==) ### Arguments * `data`: `ArcData` - Data to draw an arc. (REQUIRED) ```js { // The end angle. angleEnd: number, // The start angle. angleStart: number, // The radius. radius: number, } | { // The center. center: [number, number], // The radius. radius: number, // The to point. to: [number, number], } ``` * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) ```js { // The id of the sketch group (this will change when the engine's reference to it changes. id: uuid, // What the sketch is on (can be a plane or a face). on: { // The id of the plane. id: uuid, // Origin of the plane. origin: { x: number, y: number, z: number, }, type: "plane", // Type for a plane. value: "XY" | "XZ" | "YZ" | "Custom", // What should the plane’s X axis be? xAxis: { x: number, y: number, z: number, }, // What should the plane’s Y axis be? yAxis: { x: number, y: number, z: number, }, // The z-axis (normal). zAxis: { x: number, y: number, z: number, }, } | { // The extrude group the face is on. extrudeGroup: { // Chamfers or fillets on this extrude group. edgeCuts: [{ // The engine id of the edge to fillet. edgeId: uuid, // The id of the engine command that called this fillet. id: uuid, radius: number, tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "fillet", } | { // The engine id of the edge to chamfer. edgeId: uuid, // The id of the engine command that called this chamfer. id: uuid, length: number, tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "chamfer", }], // The id of the extrusion end cap endCapId: uuid, // The height of the extrude group. height: number, // The id of the extrude group. id: uuid, // The sketch group. sketchGroup: { // The id of the sketch group (this will change when the engine's reference to it changes. id: uuid, // What the sketch is on (can be a plane or a face). on: SketchSurface, // The starting path. start: { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], }, // Tag identifiers that have been declared in this sketch group. tags: { }, // The paths in the sketch group. value: [{ // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "ToPoint", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArcTo", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArc", } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Horizontal", // The x coordinate. x: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "AngledLineTo", // The x coordinate. x: number, // The y coordinate. y: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Base", }], }, // The id of the extrusion start cap startCapId: uuid, // The extrude surfaces. value: [{ // The face id for the extrude plane. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "extrudePlane", } | { // The face id for the extrude plane. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "extrudeArc", } | { // The id for the chamfer surface. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "chamfer", } | { // The id for the fillet surface. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "fillet", }], }, // The id of the face. id: uuid, type: "face", // The tag of the face. value: string, // What should the face’s X axis be? xAxis: { x: number, y: number, z: number, }, // What should the face’s Y axis be? yAxis: { x: number, y: number, z: number, }, // The z-axis (normal). zAxis: { x: number, y: number, z: number, }, }, // The starting path. start: { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], }, // Tag identifiers that have been declared in this sketch group. tags: { }, // The paths in the sketch group. value: [{ // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "ToPoint", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArcTo", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArc", } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Horizontal", // The x coordinate. x: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "AngledLineTo", // The x coordinate. x: number, // The y coordinate. y: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Base", }], } ``` * `tag`: `TagDeclarator` (OPTIONAL) ```js { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, } ``` ### Returns `SketchGroup` - A sketch group is a collection of paths. ```js { // The id of the sketch group (this will change when the engine's reference to it changes. id: uuid, // What the sketch is on (can be a plane or a face). on: { // The id of the plane. id: uuid, // Origin of the plane. origin: { x: number, y: number, z: number, }, type: "plane", // Type for a plane. value: "XY" | "XZ" | "YZ" | "Custom", // What should the plane’s X axis be? xAxis: { x: number, y: number, z: number, }, // What should the plane’s Y axis be? yAxis: { x: number, y: number, z: number, }, // The z-axis (normal). zAxis: { x: number, y: number, z: number, }, } | { // The extrude group the face is on. extrudeGroup: { // Chamfers or fillets on this extrude group. edgeCuts: [{ // The engine id of the edge to fillet. edgeId: uuid, // The id of the engine command that called this fillet. id: uuid, radius: number, tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "fillet", } | { // The engine id of the edge to chamfer. edgeId: uuid, // The id of the engine command that called this chamfer. id: uuid, length: number, tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "chamfer", }], // The id of the extrusion end cap endCapId: uuid, // The height of the extrude group. height: number, // The id of the extrude group. id: uuid, // The sketch group. sketchGroup: { // The id of the sketch group (this will change when the engine's reference to it changes. id: uuid, // What the sketch is on (can be a plane or a face). on: SketchSurface, // The starting path. start: { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], }, // Tag identifiers that have been declared in this sketch group. tags: { }, // The paths in the sketch group. value: [{ // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "ToPoint", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArcTo", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArc", } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Horizontal", // The x coordinate. x: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "AngledLineTo", // The x coordinate. x: number, // The y coordinate. y: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Base", }], }, // The id of the extrusion start cap startCapId: uuid, // The extrude surfaces. value: [{ // The face id for the extrude plane. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "extrudePlane", } | { // The face id for the extrude plane. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "extrudeArc", } | { // The id for the chamfer surface. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "chamfer", } | { // The id for the fillet surface. faceId: uuid, // The id of the geometry. id: uuid, // The source range. sourceRange: [number, number], // The tag. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, type: "fillet", }], }, // The id of the face. id: uuid, type: "face", // The tag of the face. value: string, // What should the face’s X axis be? xAxis: { x: number, y: number, z: number, }, // What should the face’s Y axis be? yAxis: { x: number, y: number, z: number, }, // The z-axis (normal). zAxis: { x: number, y: number, z: number, }, }, // The starting path. start: { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], }, // Tag identifiers that have been declared in this sketch group. tags: { }, // The paths in the sketch group. value: [{ // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "ToPoint", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArcTo", } | { // arc's direction ccw: bool, // the arc's center center: [number, number], // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "TangentialArc", } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Horizontal", // The x coordinate. x: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "AngledLineTo", // The x coordinate. x: number, // The y coordinate. y: number, } | { // The from point. from: [number, number], // The tag of the path. tag: { digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], end: number, start: number, value: string, }, // The to point. to: [number, number], type: "Base", }], } ```