<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="_G7Yxl-_GtqM`JWZ{9_R">saveStl</variable>
<variable id="/1%!K4D,j#vU,V:Ng8e$">saveStep</variable>
<variable id="|OC#VJm$P.|+,DA4fTz9">saveGlb</variable>
<variable id="vJ|+dx6pDnDUP7%?$kSe">surface</variable>
<variable id=".Ds#k)qhoT2hzPm:Fwgq">filletBody</variable>
<variable id="(-aYbpD19ERj]mcUD,dL">surface2</variable>
<variable id="k,H~gD}v8j0Y~?fU*F({">points</variable>
<variable id="W#[Iu?l@~/Sb}]zDGpYK">wirePromises</variable>
<variable id="QIzAHQ$%tL-/cAcRAVlv">wirePromises2</variable>
<variable id="8tdW(W1OCfSsXeKN:Lx5">sphereFace</variable>
<variable id=":fbtRCSr^j]Kc[Q!!_k2">sphereFace2</variable>
<variable id="}jje2))]`Qw7-d-zodM|">j</variable>
<variable id="Zh0GEzVKxr2Jo5G$}~r(">wire2d</variable>
<variable id="$*|qeRH~a+z~GOqL,Q3N">wires</variable>
<variable id="-y]2mZ-;t6C^$@R{=X=/">wire2d2</variable>
<variable id="2]CNr_6|[vr^)Lo=jx/`">wires2</variable>
<variable id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</variable>
<variable id="?lI5a=+:3(eA.gtEz*f[">m</variable>
<variable id="!18kK3r?GXQSOK,3sR;5">splitResult</variable>
<variable id="AwR*39Y!a-{Nn2?IJWqG">splitResult2</variable>
<variable id="oxnex0S-)iWJ2iOIlFfs">splitFace</variable>
<variable id="eUFMHr[Pw^Tz.[9~I{[V">k</variable>
<variable id="qLPm%[4]:2|$_=Cmi!Ko">bellModel</variable>
<variable id="CSa,R3C[s;;6;gI$o/o^">drawnMesh</variable>
</variables>
<block type="variables_set" id="K.G||#S/,wMCR^|;F5/[" x="-26" y="-1669">
<field name="VAR" id="_G7Yxl-_GtqM`JWZ{9_R">saveStl</field>
<value name="VALUE">
<block type="logic_boolean" id="?i/k1`]6s?n)#0U%ZR-u">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="variables_set" id="5~0vH[o:TUf@iCMK@(:4">
<field name="VAR" id="/1%!K4D,j#vU,V:Ng8e$">saveStep</field>
<value name="VALUE">
<block type="logic_boolean" id="mekbE%:/db6E$]qW3DQj">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="variables_set" id="uX@g)FGX+tiCr!i,{mD{">
<field name="VAR" id="|OC#VJm$P.|+,DA4fTz9">saveGlb</field>
<value name="VALUE">
<block type="logic_boolean" id="dIi0|DXf7z}JpIA2OVTm">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="variables_set" id="RA!84=d(cJorOL}h^]Y)">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
<value name="VALUE">
<block type="bitbybit.occt.operations.revolve" id="u3s%9R)]`Yn_qOf-p8+0">
<value name="Shape">
<block type="bitbybit.occt.shapes.wire.createBSpline" id="qcR[a`+zMc*J#3|y!V`y">
<value name="Points">
<block type="lists_create_with" id="iQNEO|nvh![rq_oB-Qj2">
<mutation items="6">
</mutation>
<value name="ADD0">
<block type="bitbybit.point.pointXYZ" id="K_8h={6XTgu1nyN06g3c">
<value name="X">
<block type="math_number" id="0Vo/_d}wc;FrvjC}mfIu">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="~dVT|7ZdrUY`R`.+Hs?-">
<field name="NUM">6.5</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="~qgzJh-Qd|~Hy@9i9uot">
<field name="NUM">0.5</field>
</block>
</value>
</block>
</value>
<value name="ADD1">
<block type="bitbybit.point.pointXYZ" id="QZlwbN/x^9bkNA`sl:s7">
<value name="X">
<block type="math_number" id="@wI%VM/]l3cyruc2l.1m">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="z?(oIrCIek$i#JlA=jDv">
<field name="NUM">5.5</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="1LRh$CPVJ8U=V6dwyw{_">
<field name="NUM">0.7</field>
</block>
</value>
</block>
</value>
<value name="ADD2">
<block type="bitbybit.point.pointXYZ" id="s~L:TXu6ynM(+ndQe?@S">
<value name="X">
<block type="math_number" id="(%[|M@zj_h{Mnvg8~Tp^">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="dJS{7ysF54~ER2}D~VCz">
<field name="NUM">4</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="V{u*rAt1X%h,%BLS==#C">
<field name="NUM">1.8</field>
</block>
</value>
</block>
</value>
<value name="ADD3">
<block type="bitbybit.point.pointXYZ" id="i,]CWA1my+;d-tfRecaf">
<value name="X">
<block type="math_number" id="^6Vb`%O=lkcUtdbt]SQh">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="f[VwBqOO!$tt]%=P$2?5">
<field name="NUM">0.5</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="jxxFS@epvOh=77)KCt}M">
<field name="NUM">2.3</field>
</block>
</value>
</block>
</value>
<value name="ADD4">
<block type="bitbybit.point.pointXYZ" id="}.,b5t|4D-L57*o8]F-K">
<value name="X">
<block type="math_number" id="(:cXoszmW:.8ccNPd@Oc">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id=")^B#`_)#p8MpbTUKa[gB">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="6iU795PZ^PdvJaazYI$x">
<field name="NUM">2.8</field>
</block>
</value>
</block>
</value>
<value name="ADD5">
<block type="bitbybit.point.pointXYZ" id="l2M$);P~3E}kT!Y#9sPm">
<value name="X">
<block type="math_number" id="zNb2%($qt;SCRgXB:yp0">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="DsbM-:5SesX.HYB$2`C!">
<field name="NUM">-0.5</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="Dsq7SX9AbyPC)=Q8c4Uw">
<field name="NUM">2.75</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="Closed">
<block type="logic_boolean" id="Ajm_q^_0:R]sgm+E|2^d">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<value name="Angle">
<block type="math_number" id="X%z76]k_oqmHj3*%S!W}">
<field name="NUM">360</field>
</block>
</value>
<value name="Direction">
<block type="bitbybit.point.pointXYZ" id="$q3}bU!BJts8,Sp|7lgP">
<value name="X">
<block type="math_number" id="(e}x3dWN]B6s#m}EC#*h">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="=vJ1%/`SXr$FUZ:S|6J]">
<field name="NUM">-1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="520);?*pBsmxhzR6-/Dn">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Copy">
<block type="logic_boolean" id="=jenIu,z~IixQOv8mXSm">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="tJRZm%8=l,;mJm#f:.-z">
<field name="VAR" id=".Ds#k)qhoT2hzPm:Fwgq">filletBody</field>
<value name="VALUE">
<block type="bitbybit.occt.fillets.filletEdges" id="Cb{^Q;ku%DmSSB@kIyw5">
<value name="Shape">
<block type="bitbybit.occt.operations.makeThickSolidSimple" id="W7Z#~AT.-;r[s`s?u7UH">
<value name="Shape">
<block type="variables_get" id="*!:|[tv^`GLlKI|81!q)">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
</block>
</value>
<value name="Offset">
<block type="math_number" id="DmRcrlkUSL%z9HceDryx">
<field name="NUM">-0.3</field>
</block>
</value>
</block>
</value>
<value name="Radius">
<block type="math_number" id="8k$z{Vvqv}7DO#E,OiLD">
<field name="NUM">0.05</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="$pWouO!MvQeS(dAUm9C2">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
<value name="VALUE">
<block type="bitbybit.occt.shapes.face.getFace" id="[i!LEf,5Nw=$B-#,Hq$=">
<value name="Shape">
<block type="variables_get" id="5y)N,!we}Jcsgl~o_Qi@">
<field name="VAR" id=".Ds#k)qhoT2hzPm:Fwgq">filletBody</field>
</block>
</value>
<value name="Index">
<block type="math_number" id="K7uf,a|Yf!i7]hXK.w-r">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="g0=D2j2X_[3Xe1LQ@ce0">
<field name="VAR" id="(-aYbpD19ERj]mcUD,dL">surface2</field>
<value name="VALUE">
<block type="bitbybit.occt.shapes.face.getFace" id="]u=rA~TRl8WEnNjmR:iH">
<value name="Shape">
<block type="variables_get" id="/uI#j2HaXR}zkmlC?ncT">
<field name="VAR" id=".Ds#k)qhoT2hzPm:Fwgq">filletBody</field>
</block>
</value>
<value name="Index">
<block type="math_number" id="=d5I@)/30%%#nYHt~:1P">
<field name="NUM">7</field>
</block>
</value>
</block>
</value>
<next>
<block type="bitbybit.babylon.scene.enableSkybox" id="PqJ1*{KzE$d;f{Pj_+^/">
<value name="Skybox">
<block type="bitbybit.babylon.enums.skyboxEnum" id=".8tu?||c3a$nmoXO6tVy">
<field name="bitbybit.babylon.enums.skyboxEnum">'city'</field>
</block>
</value>
<value name="Size">
<block type="math_number" id="p1hj!+?8i,A2mo;@3O|l">
<field name="NUM">1000</field>
</block>
</value>
<value name="Blur">
<block type="math_number" id="pmb:Hu#+{9feHZ4c)m)]">
<field name="NUM">0.4</field>
</block>
</value>
<value name="EnvironmentIntensity">
<block type="math_number" id="=6/Gs`V%x#10{$WmpAet">
<field name="NUM">0.8</field>
</block>
</value>
<next>
<block type="base_time_async_context" id=":b%{f~i72I4(!_i(Yv1v">
<statement name="Then">
<block type="variables_set" id="Zmdq*e{TX08W@Z:=3L%i">
<field name="VAR" id="k,H~gD}v8j0Y~?fU*F({">points</field>
<value name="VALUE">
<block type="base_time_await_return" id="r0^n!Jkf/PE:5BHY;2C/">
<value name="Promise">
<block type="bitbybit.occt.shapes.face.subdivideToUV" id="S86C-g*l2=+/GnhJ:JSq">
<value name="Shape">
<block type="variables_get" id="M~JVKR4TPQtzfp:bKRX7">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
</block>
</value>
<value name="NrDivisionsU">
<block type="math_number" id="2,mE#.;!Mz49/Z_)dLTi">
<field name="NUM">7</field>
</block>
</value>
<value name="NrDivisionsV">
<block type="math_number" id="#?!XU?,=x@|ll5pfqXW$">
<field name="NUM">7</field>
</block>
</value>
<value name="ShiftHalfStepU">
<block type="logic_boolean" id="GyNlQ##|M;9J}%gQN6KS">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="RemoveStartEdgeU">
<block type="logic_boolean" id="A{9AIg{M]4qfA;,`%:y[">
<field name="BOOL">FALSE</field>
</block>
</value>
<value name="RemoveEndEdgeU">
<block type="logic_boolean" id="IgA5N[~Ym7d1E,8ORWvD">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="ShiftHalfStepV">
<block type="logic_boolean" id="l1ncdA/88_K,1?=[S5h:">
<field name="BOOL">FALSE</field>
</block>
</value>
<value name="RemoveStartEdgeV">
<block type="logic_boolean" id="-vt{hK#b(xj?^-Zkmj^8">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="RemoveEndEdgeV">
<block type="logic_boolean" id="yevu3vIThbUc9%0B^4#I">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="kh2OI@4eCLWr*Ho:zgVq">
<field name="VAR" id="W#[Iu?l@~/Sb}]zDGpYK">wirePromises</field>
<value name="VALUE">
<block type="lists_create_with" id="-wv0y9$bbf#d|dd:J%u@">
<mutation items="0">
</mutation>
</block>
</value>
<next>
<block type="variables_set" id="gI{+y{1s-1dFYxn^VDtW">
<field name="VAR" id="QIzAHQ$%tL-/cAcRAVlv">wirePromises2</field>
<value name="VALUE">
<block type="lists_create_with" id=";MW7)iT+EyXm0~2lYrhC">
<mutation items="0">
</mutation>
</block>
</value>
<next>
<block type="variables_set" id="9jHstGr%o-6:JcE-N*^p">
<field name="VAR" id="8tdW(W1OCfSsXeKN:Lx5">sphereFace</field>
<value name="VALUE">
<block type="variables_get" id="NMd2|[a_6Lfmz]v`lD96">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
</block>
</value>
<next>
<block type="variables_set" id="~AznF9~axDDIs83XlL=a">
<field name="VAR" id=":fbtRCSr^j]Kc[Q!!_k2">sphereFace2</field>
<value name="VALUE">
<block type="variables_get" id="b3C4hWwj~(eUqc(rXjnB">
<field name="VAR" id="(-aYbpD19ERj]mcUD,dL">surface2</field>
</block>
</value>
<next>
<block type="controls_forEach" id="lNkLAO^$L63^nJ466;vH">
<field name="VAR" id="}jje2))]`Qw7-d-zodM|">j</field>
<value name="LIST">
<block type="variables_get" id="hBK2[#x)SwQD^G,``qz%">
<field name="VAR" id="k,H~gD}v8j0Y~?fU*F({">points</field>
</block>
</value>
<statement name="DO">
<block type="variables_set" id="i!c~%8-4FZ?@T?UsH[4{">
<field name="VAR" id="Zh0GEzVKxr2Jo5G$}~r(">wire2d</field>
<value name="VALUE">
<block type="bitbybit.occt.transforms.translate" id="O@E7cluLJ?#-NrW,|1,z">
<value name="Shape">
<block type="bitbybit.occt.transforms.scale3d" id="3j7x~JmNlG52L}n{p@cX">
<value name="Shape">
<block type="bitbybit.occt.fillets.fillet2d" id="H$^~PJGK~Shq-I13RW8e">
<value name="Shape">
<block type="bitbybit.occt.shapes.wire.createStarWire" id="FhHYA1fv_+UCj8Mn!i)/">
<value name="Center">
<block type="bitbybit.point.pointXYZ" id="G$YT@]XjrayqJ]eZk3d{">
<value name="X">
<block type="math_number" id="p@LT-DSB0P}K]wI@~0[Z">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="UkpSCgdRori8OgqC^B07">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="+-P46pL5W%s;2H4Q$g!W">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Direction">
<block type="bitbybit.point.pointXYZ" id="0o}totJ]rW^_oEUK-FW]">
<value name="X">
<block type="math_number" id="fhP)YcT?cChei;X(]H18">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id=":@o;K1d_zbg9hJE[KMwh">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="Yv~R};Jcjm9+~WbJaEBD">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="NumRays">
<block type="math_number" id="4.D?^ki*Z|J5_o~%oH[S">
<field name="NUM">7</field>
</block>
</value>
<value name="OuterRadius">
<block type="math_number" id="SV.t0R;[_4%Lm^~#pPe/">
<field name="NUM">0.6</field>
</block>
</value>
<value name="InnerRadius">
<block type="math_number" id="LBFQ%d^xc}?e*%4P-9Yy">
<field name="NUM">0.2</field>
</block>
</value>
<value name="Half">
<block type="logic_boolean" id="L7wBubiJJ`5+N7;3[888">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<value name="Radius">
<block type="math_number" id="0|N@IN-*6]?AK+`zj(#n">
<field name="NUM">0.03</field>
</block>
</value>
</block>
</value>
<value name="Scale">
<block type="bitbybit.point.pointXYZ" id="5FDt9LoiYH6OKTeE?cS~">
<value name="X">
<block type="math_number" id="a5;gOI?c5UKHLc_WG.P2">
<field name="NUM">0.2</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="z7sm(!Hjz^X)P#07lHdX">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="{g~1pOAZxW?,e^,luvJ%">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<value name="Center">
<block type="bitbybit.point.pointXYZ" id="!{T-7INq6ibpZf?PA7Le">
<value name="X">
<block type="math_number" id="v6@.*4eT}enMVu#KI4:L">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="%xKz%1EM-LE,^OQ_bwNM">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="e*z`gCd_ddRBwvb^3{)#">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="Translation">
<block type="bitbybit.point.pointXYZ" id="+!{81*KuYTvC8eTkkx@S">
<value name="X">
<block type="lists_getIndex" id="korU/.,g;L;W~rRD%38I">
<mutation statement="false" at="false">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">LAST</field>
<value name="VALUE">
<block type="variables_get" id="S2g:qBs8iMS{$C*u^5Y7">
<field name="VAR" id="}jje2))]`Qw7-d-zodM|">j</field>
</block>
</value>
</block>
</value>
<value name="Y">
<block type="math_number" id="$@geFm)J!^hF[P-uR*H?">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="lists_getIndex" id="/vyxii_]gWpHrD-dqbzc">
<mutation statement="false" at="false">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">FIRST</field>
<value name="VALUE">
<block type="variables_get" id="uN+M5pYqsOP_mxYSOc@%">
<field name="VAR" id="}jje2))]`Qw7-d-zodM|">j</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="u@-*i1q4~W!2HOx4_}/~">
<field name="VAR" id="-y]2mZ-;t6C^$@R{=X=/">wire2d2</field>
<value name="VALUE">
<block type="bitbybit.occt.transforms.translate" id="ORV^7DL?;5imGvvjV%K.">
<value name="Shape">
<block type="bitbybit.occt.transforms.scale3d" id="6hXbF!-JYtmzV+=OH0}`">
<value name="Shape">
<block type="bitbybit.occt.fillets.fillet2d" id="Tz.SzzQ$gBO(Tw4Ohwz%">
<value name="Shape">
<block type="bitbybit.occt.shapes.wire.createStarWire" id="dB2:D#S5uVS~S{T%ii7q">
<value name="Center">
<block type="bitbybit.point.pointXYZ" id="NBV=nO}jI=xjZ?7F2}uS">
<value name="X">
<block type="math_number" id="lZ99^y/%l:U~kSno^tX@">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="U):_X~5J$/IwkZfC6E`v">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="v70268;#c1PRj{~XKp/N">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Direction">
<block type="bitbybit.point.pointXYZ" id="=dluh;kgu{?@=9ymU=O/">
<value name="X">
<block type="math_number" id="/Cv5I^ZX]W$dePi94K2h">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id=".dSr(UfRha4QVJ9C~e-2">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="-EqmF@X~gbd`m(CrD]w8">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="NumRays">
<block type="math_number" id="{W7umg_V;J0z!{COPSE~">
<field name="NUM">7</field>
</block>
</value>
<value name="OuterRadius">
<block type="math_number" id="vY$%B0|4BU$_/Ed6%47H">
<field name="NUM">0.35</field>
</block>
</value>
<value name="InnerRadius">
<block type="math_number" id="Kx/xLBv#^9CZ#f.4LKWs">
<field name="NUM">0.1</field>
</block>
</value>
<value name="Half">
<block type="logic_boolean" id="As?tC-Wp?(KT/o%kch/D">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<value name="Radius">
<block type="math_number" id="4FC]{|BkzwBH2TnHqsTt">
<field name="NUM">0.02</field>
</block>
</value>
</block>
</value>
<value name="Scale">
<block type="bitbybit.point.pointXYZ" id="I-+FTZE4r/{2Cp0:s}U2">
<value name="X">
<block type="math_number" id="e6~0^F}Gi:3H,vIcI7#V">
<field name="NUM">0.2</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="EKKVoC*=,tK{3%dc}*J_">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="=e%0#|rVQR(0ulXja`ha">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<value name="Center">
<block type="bitbybit.point.pointXYZ" id="f$8F]DD+mui$Um~LCx9%">
<value name="X">
<block type="math_number" id="U2;Rw.ff{{zFUlAsTBen">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="7[]kr%av%_vSrT3+n|*N">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="TY)%(rT~Y|oLQOHN1Z2k">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="Translation">
<block type="bitbybit.point.pointXYZ" id="r{VzCCb$]P88{vSvFLDB">
<value name="X">
<block type="lists_getIndex" id="U(ODWmVP92876UV/ee_U">
<mutation statement="false" at="false">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">LAST</field>
<value name="VALUE">
<block type="variables_get" id="kx5{Y/Fsa*@{O6y#I]79">
<field name="VAR" id="}jje2))]`Qw7-d-zodM|">j</field>
</block>
</value>
</block>
</value>
<value name="Y">
<block type="math_number" id="~7c$(^r94yzH;UWPts%9">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="lists_getIndex" id="kv5z$VXF-@A@[{:S-Ll;">
<mutation statement="false" at="false">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">FIRST</field>
<value name="VALUE">
<block type="variables_get" id="*kx0nRjf66b)gI~Shh}u">
<field name="VAR" id="}jje2))]`Qw7-d-zodM|">j</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="lists_setIndex" id="oU}3}:Jxp^SU?5t,x#{~">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="%77iR39HV{xX_7yXI9UP">
<field name="VAR" id="W#[Iu?l@~/Sb}]zDGpYK">wirePromises</field>
</block>
</value>
<value name="TO">
<block type="variables_get" id="e%{p-gDYg!=?AY./UMbe">
<field name="VAR" id="Zh0GEzVKxr2Jo5G$}~r(">wire2d</field>
</block>
</value>
<next>
<block type="lists_setIndex" id="BP+CQWqohl9GjK%{-0*s">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="za_t0zCzc(k4ZwI;_h(%">
<field name="VAR" id="QIzAHQ$%tL-/cAcRAVlv">wirePromises2</field>
</block>
</value>
<value name="TO">
<block type="variables_get" id=",QMI;oyhKogLf(]4IQWv">
<field name="VAR" id="-y]2mZ-;t6C^$@R{=X=/">wire2d2</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="variables_set" id="*X}OybEA#/,,F1Iq5R^:">
<field name="VAR" id="$*|qeRH~a+z~GOqL,Q3N">wires</field>
<value name="VALUE">
<block type="base_time_await_return" id="lH_:fcdSUD6k.aioH]!Y">
<value name="Promise">
<block type="bitbybit.occt.shapes.wire.placeWiresOnFace" id="pB?s@a7}Bdf(i;4K}NBu">
<value name="Wires">
<block type="variables_get" id="iSRXIY=m4tF8Z;,0G4m:">
<field name="VAR" id="W#[Iu?l@~/Sb}]zDGpYK">wirePromises</field>
</block>
</value>
<value name="Face">
<block type="variables_get" id="p^T5LL5$.;2zg+,^m4!!">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="V;}m+|=|#}SY-ejYg%Jc">
<field name="VAR" id="2]CNr_6|[vr^)Lo=jx/`">wires2</field>
<value name="VALUE">
<block type="base_time_await_return" id="#0Z?pcLkV`,xuaun=Uo1">
<value name="Promise">
<block type="bitbybit.occt.shapes.wire.placeWiresOnFace" id="b?9#J1xhacUD_w$k6ud,">
<value name="Wires">
<block type="variables_get" id=".=G5BgJktllKB4_ioK^S">
<field name="VAR" id="QIzAHQ$%tL-/cAcRAVlv">wirePromises2</field>
</block>
</value>
<value name="Face">
<block type="variables_get" id="kUENzrsO**@z?/zfgFox">
<field name="VAR" id="(-aYbpD19ERj]mcUD,dL">surface2</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="pI4vMp=Ckm.5Jz#{J-i3">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
<value name="VALUE">
<block type="lists_create_with" id="G682!Sfm[s)79u_mU-0Q">
<mutation items="0">
</mutation>
</block>
</value>
<next>
<block type="controls_for" id="_E#J-9fgVzuOBh%Eo%u,">
<field name="VAR" id="?lI5a=+:3(eA.gtEz*f[">m</field>
<value name="FROM">
<block type="math_number" id="(2+:KV;BOfo_oOV|t,B%">
<field name="NUM">1</field>
</block>
</value>
<value name="TO">
<block type="lists_length" id="%KO,hr7N$-|Z=]Kgv8f8">
<value name="VALUE">
<block type="variables_get" id="{~Dc5YMl~}^P*![|ik?6">
<field name="VAR" id="$*|qeRH~a+z~GOqL,Q3N">wires</field>
</block>
</value>
</block>
</value>
<value name="BY">
<block type="math_number" id="}04w+ZgbF;LqkCq7R#_o">
<field name="NUM">1</field>
</block>
</value>
<statement name="DO">
<block type="lists_setIndex" id="H~y?8B~8uJobaiVpapgx">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="WY@+}RbV(;;S(JmN|3?I">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
</block>
</value>
<value name="TO">
<block type="bitbybit.occt.operations.loft" id="Q[Y|r$#Nrsw=P2OOZBP8">
<value name="Shapes">
<block type="lists_create_with" id="FT0;B[K}$]vPIw9TdLPA">
<mutation items="2">
</mutation>
<value name="ADD0">
<block type="lists_getIndex" id="}{l@WIQY]d.NWZke1|08">
<mutation statement="false" at="true">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get" id="u/F]^M}P)(FfpHw[3AFk">
<field name="VAR" id="$*|qeRH~a+z~GOqL,Q3N">wires</field>
</block>
</value>
<value name="AT">
<block type="variables_get" id="$):9GyI!jB@G|W7OBs/i">
<field name="VAR" id="?lI5a=+:3(eA.gtEz*f[">m</field>
</block>
</value>
</block>
</value>
<value name="ADD1">
<block type="lists_getIndex" id="zkEYSfI[}z7{i1IyyOko">
<mutation statement="false" at="true">
</mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get" id="B2;n?$|]R3$R!{gEL36i">
<field name="VAR" id="2]CNr_6|[vr^)Lo=jx/`">wires2</field>
</block>
</value>
<value name="AT">
<block type="variables_get" id="t56cG]sy00/|*_Bj9jv0">
<field name="VAR" id="?lI5a=+:3(eA.gtEz*f[">m</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="MakeSolid">
<block type="logic_boolean" id=",qRP^c_vOYoP3SGTxW/^">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="variables_set" id="jk2SE5;JaWDI*IY4uqTa">
<field name="VAR" id="!18kK3r?GXQSOK,3sR;5">splitResult</field>
<value name="VALUE">
<block type="base_time_await_return" id="J}$(bMU*k}c:pe#g,3GI">
<value name="Promise">
<block type="bitbybit.occt.shapes.face.getFaces" id="#GBadx~I|yCSEMl(S9#*">
<value name="Shape">
<block type="bitbybit.occt.operations.splitShapeWithShapes" id="FSl/:r4*^#`ESu=2DWV6">
<value name="Shape">
<block type="variables_get" id="lzY8R}m;[(fK2=Wgo^3f">
<field name="VAR" id="vJ|+dx6pDnDUP7%?$kSe">surface</field>
</block>
</value>
<value name="Shapes">
<block type="variables_get" id="0olT3|EYJNZaQ9ij#Foa">
<field name="VAR" id="$*|qeRH~a+z~GOqL,Q3N">wires</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="g$!%kObqPuW[6_D@u`Xy">
<field name="VAR" id="AwR*39Y!a-{Nn2?IJWqG">splitResult2</field>
<value name="VALUE">
<block type="base_time_await_return" id="6}Rf,AZ(#=ox3uN-L{Ds">
<value name="Promise">
<block type="bitbybit.occt.shapes.face.getFaces" id="Y[H~uGKt]QMKki.gA[1C">
<value name="Shape">
<block type="bitbybit.occt.operations.splitShapeWithShapes" id="5HaW9Q|23p/i8z|U/]V`">
<value name="Shape">
<block type="variables_get" id=":@guz|56oyk?IMl{Qz7?">
<field name="VAR" id="(-aYbpD19ERj]mcUD,dL">surface2</field>
</block>
</value>
<value name="Shapes">
<block type="variables_get" id="_kw.NFz1Ko7N,ga;_4mj">
<field name="VAR" id="2]CNr_6|[vr^)Lo=jx/`">wires2</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="qTum`AdW#av8Wb^vur$!">
<field name="VAR" id="oxnex0S-)iWJ2iOIlFfs">splitFace</field>
<value name="VALUE">
<block type="lists_getIndex" id="`vH~ps%oP6+sM*}?uM42">
<mutation statement="false" at="true">
</mutation>
<field name="MODE">GET_REMOVE</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get" id="4cqFLSd/$u#${eO{g:=b">
<field name="VAR" id="!18kK3r?GXQSOK,3sR;5">splitResult</field>
</block>
</value>
<value name="AT">
<block type="math_arithmetic" id="):7;K;)TY5[FevO[!Zjb">
<field name="OP">MINUS</field>
<value name="A">
<block type="lists_length" id="Mj#%Fz}Z=FK}R;jcu%n;">
<value name="VALUE">
<block type="variables_get" id="YP{(%n_#hs{RwZW+l]HE">
<field name="VAR" id="!18kK3r?GXQSOK,3sR;5">splitResult</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id="%r1}I,tQ]v[e8zqd7}m1">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="lists_setIndex" id="6+A$PqGY`p5Mv]4oSFx*">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="!RK/54]90H.(Zdf,T/fe">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
</block>
</value>
<value name="TO">
<block type="bitbybit.occt.shapes.face.reversedFace" id="O6ij|A%xQEX}4.qD[WSn">
<value name="Shape">
<block type="variables_get" id="#Jrq@M$Q^+0Slchm8$p+">
<field name="VAR" id="oxnex0S-)iWJ2iOIlFfs">splitFace</field>
</block>
</value>
</block>
</value>
<next>
<block type="lists_setIndex" id="[#KWr8}Jm6}ONDb@xtl,">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="*,qm|V_b}(OCqU1lPZI{">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
</block>
</value>
<value name="TO">
<block type="lists_getIndex" id="TQOk!8OQ2f2ck3W;@Tmz">
<mutation statement="false" at="true">
</mutation>
<field name="MODE">GET_REMOVE</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get" id="MG@Dpt_-36G=-Znxq;C}">
<field name="VAR" id="AwR*39Y!a-{Nn2?IJWqG">splitResult2</field>
</block>
</value>
<value name="AT">
<block type="math_arithmetic" id="4,a?IzL^x1|;Rv`19jN#">
<field name="OP">MINUS</field>
<value name="A">
<block type="lists_length" id="n(6@/?._^wcH7e5*[8Q3">
<value name="VALUE">
<block type="variables_get" id="-TVv|II_n.p^m/eY]s9g">
<field name="VAR" id="AwR*39Y!a-{Nn2?IJWqG">splitResult2</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id="=fD5j^7K|u77f4,:~`EP">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="controls_for" id="fYZY0cFNi||Chi#J8qkh">
<field name="VAR" id="eUFMHr[Pw^Tz.[9~I{[V">k</field>
<value name="FROM">
<block type="math_number" id="aH@;43B$0xwat1`;bIDN">
<field name="NUM">1</field>
</block>
</value>
<value name="TO">
<block type="math_number" id=";/b`URK$|Rci{Z~V^{~1">
<field name="NUM">6</field>
</block>
</value>
<value name="BY">
<block type="math_number" id=".gS6Ym9Vdrr{Y,,z1s1?">
<field name="NUM">1</field>
</block>
</value>
<statement name="DO">
<block type="lists_setIndex" id="]h?oE}X5!$4xFH03Qo*M">
<mutation at="false">
</mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="ChQu^Smva@*~I2T92/rF">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
</block>
</value>
<value name="TO">
<block type="bitbybit.occt.shapes.face.getFace" id="54E{8J#+v_/A5Gkp.WeV">
<value name="Shape">
<block type="variables_get" id="pZiaE.p|NPJYfs!C+Awy">
<field name="VAR" id=".Ds#k)qhoT2hzPm:Fwgq">filletBody</field>
</block>
</value>
<value name="Index">
<block type="variables_get" id="2~P5Gt`(sE_SAC$px|FL">
<field name="VAR" id="eUFMHr[Pw^Tz.[9~I{[V">k</field>
</block>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="variables_set" id="kru8o#*W2eg-jaZ)JKk7">
<field name="VAR" id="qLPm%[4]:2|$_=Cmi!Ko">bellModel</field>
<value name="VALUE">
<block type="bitbybit.occt.shapes.solid.fromClosedShell" id="s*[8i4ZF$Rryk|5Im37p">
<value name="Shape">
<block type="bitbybit.occt.shapes.face.reversedFace" id="bb0~db1I*/PIl68g`|XU">
<value name="Shape">
<block type="bitbybit.occt.shapes.shell.sewFaces" id=".?-/{6FB=[=82lbV*LL4">
<value name="Shapes">
<block type="variables_get" id="p)@TBG)DR(|Axe1`NyDT">
<field name="VAR" id="q[fdOm6I+b5D{Bc|,/qo">loftPromises</field>
</block>
</value>
<value name="Tolerance">
<block type="math_number" id="I#Xz}G1)rh{6=bJ/sAY}">
<field name="NUM">1e-7</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="(,*+~%@*fEdZdzX4Xptn">
<field name="VAR" id="CSa,R3C[s;;6;gI$o/o^">drawnMesh</field>
<value name="VALUE">
<block type="bitbybit.draw.drawAnyAsync" id="4LCpdev3)Kmg963[z%Zb">
<value name="Entity">
<block type="variables_get" id="j~CYV+@~~!]r,=6xFTJz">
<field name="VAR" id="qLPm%[4]:2|$_=Cmi!Ko">bellModel</field>
</block>
</value>
<value name="Options">
<block type="bitbybit.draw.optionsOcctShapeMaterial" id="0iT=4!c0r=*N{/huR:_5">
<value name="Precision">
<block type="math_number" id="Pko#CSu.TU6|Z3!dfkWe">
<field name="NUM">0.005</field>
</block>
</value>
<value name="FaceMaterial">
<block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="jn+Bw1c|Lw)}]RW!t?Ic">
<value name="Name">
<block type="text" id="7a;{;,VPloqBy34lFx;x">
<field name="TEXT">Custom Name</field>
</block>
</value>
<value name="BaseColor">
<block type="colour_picker" id="J1OnDti?%c$J,|~1L3$8">
<field name="COLOUR">#6600cc</field>
</block>
</value>
<value name="Metallic">
<block type="math_number" id="M;/eUUeMN|w^c:wmrKTx">
<field name="NUM">1</field>
</block>
</value>
<value name="Roughness">
<block type="math_number" id="*~9+D{K:Td^`PJdL=E2L">
<field name="NUM">0.2</field>
</block>
</value>
<value name="Alpha">
<block type="math_number" id="3+A}pwBu1dw/(^MLiJ/d">
<field name="NUM">1</field>
</block>
</value>
<value name="BackFaceCulling">
<block type="logic_boolean" id="eWJPZM)N*/~`Lrp?%Tn3">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="ZOffset">
<block type="math_number" id="BF.,,S?aFRE7zh3C!ATO">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<value name="DrawEdges">
<block type="logic_boolean" id="l$$[$Z/[/2la`AX7{qd7">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="EdgeColour">
<block type="colour_picker" id="9lORC_qs|-clbWf$~Sue">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="EdgeWidth">
<block type="math_number" id="Z:Ay9:dsODU.M0KKf]6Y">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="base_time_await" id="R$COgUHSu5C1c]j}DA(b">
<value name="Promise">
<block type="variables_get" id="Xj*jz/Te(_,@l7S11x_m">
<field name="VAR" id="CSa,R3C[s;;6;gI$o/o^">drawnMesh</field>
</block>
</value>
<next>
<block type="controls_if" id="%1f=!fXN_3=wRlk5vXWq">
<value name="IF0">
<block type="variables_get" id="OBQ[;%[e5ei/*5PzgeVz">
<field name="VAR" id="_G7Yxl-_GtqM`JWZ{9_R">saveStl</field>
</block>
</value>
<statement name="DO0">
<block type="bitbybit.occt.io.saveShapeStl" id="f+CyW{udSy5PKl#dhWk.">
<value name="Shape">
<block type="variables_get" id="#mAC13]ZW|YS(${YD42(">
<field name="VAR" id="qLPm%[4]:2|$_=Cmi!Ko">bellModel</field>
</block>
</value>
<value name="FileName">
<block type="text" id="bhsj2dcJ:hzM!H[,LLvG">
<field name="TEXT">bitbybit-bell</field>
</block>
</value>
<value name="Precision">
<block type="math_number" id="kBLTnF^nXESXm8skxd}v">
<field name="NUM">0.005</field>
</block>
</value>
<value name="AdjustYtoZ">
<block type="logic_boolean" id="SLM`4;mw.KS}[+uHreOn">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_if" id="J4e)#YHP(SC2fPUIB5jQ">
<value name="IF0">
<block type="variables_get" id="?Wo*j-@34k7.rn18%f%]">
<field name="VAR" id="/1%!K4D,j#vU,V:Ng8e$">saveStep</field>
</block>
</value>
<statement name="DO0">
<block type="bitbybit.occt.io.saveShapeSTEP" id="/+36!Q%PsBJ1g|8U-{@w">
<value name="Shape">
<block type="variables_get" id="8Tua$*Lt*@pxEm`z6UKm">
<field name="VAR" id="qLPm%[4]:2|$_=Cmi!Ko">bellModel</field>
</block>
</value>
<value name="FileName">
<block type="text" id="(,K+PK5(y=!]@zq%2UjE">
<field name="TEXT">bitbybit-bell.step</field>
</block>
</value>
<value name="AdjustYtoZ">
<block type="logic_boolean" id="*i5K_amWO7h`{HIH0SOZ">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_if" id="VZrkrWPn;OWZ[`K^P^8-">
<value name="IF0">
<block type="variables_get" id="$4/{pnK:ep7J%],-a0VV">
<field name="VAR" id="|OC#VJm$P.|+,DA4fTz9">saveGlb</field>
</block>
</value>
<statement name="DO0">
<block type="bitbybit.babylon.io.exportGLB" id="SPX9V.3bI]q8k=c@Ad=E">
<value name="FileName">
<block type="text" id="s|,.m47[8_4q{L(h!xw1">
<field name="TEXT">bell.glb</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>